Move your data from Apache Pulsar to Google BigQuery, continuously

Continuously ingest data from different sources, transform data on-the-fly, and then deliver data to any destinations using RisingWave’s connectors.
Apache Pulsar
→
RisingWave
→
Google BigQuery
Apache Pulsar
↓-
RisingWave
↓-
Google BigQuery
Apache Pulsar
|
CREATE SOURCE IF NOT EXISTS orders_rw (
    order_id INTEGER PRIMARY KEY,
    customer_id INTEGER,
    order_status VARCHAR,
    total_amount DECIMAL,
    last_updated TIMESTAMP)
WITH (
   connector='pulsar',
   topic='demo_topic',
   service.url='pulsar://localhost:6650/',
   oauth.issuer.url='https://auth.streamnative.cloud/',
   oauth.credentials.url='s3://bucket_name/your_key_file.file',
   oauth.audience='urn:sn:pulsar:o-d6fgh:instance-0',
   aws.credentials.access_key_id='aws.credentials.access_key_id',
   aws.credentials.secret_access_key='aws.credentials.secret_access_key',
   scan.startup.mode='latest',
   scan.startup.timestamp.millis='140000000'
) FORMAT PLAIN ENCODE AVRO (
   message = 'message',
   schema.location = 'https://demo_bucket_name.s3-us-west-2.amazonaws.com/demo.avsc'
);
For comprehensive configuration details, please refer to the Pulsar connector documentation.
|
RisingWave
|
CREATE SINK big_query_sink_local AS
SELECT
    order_status,
    COUNT(*) as order_count,
    SUM(total_amount) as total_revenue,
    AVG(total_amount) as avg_order_value,
    MIN(last_updated) as first_order_time,
    MAX(last_updated) as last_order_time
FROM orders_rw
WITH (
    connector = 'bigquery',
    type = 'append-only',
    bigquery.local.path = '/path/to/my/service-account.json',
    bigquery.project = 'my_project_id',
    bigquery.dataset = 'my_dataset',
    bigquery.table = 'my_table',
    force_append_only = 'true'
);
For comprehensive configuration details, please refer to the BigQuery connector documentation.
|
Google BigQuery
The Modern Backbone for Your
Event-Driven Infrastructure
GitHubXLinkedInSlackYouTube
Sign up for our to stay updated.