SOLUTION · REPLICATE TO BIGQUERY

Real-time data replication to BigQuery from your operational databases

Committed changes from your systems of record land in BigQuery continuously, through load jobs staged in Cloud Storage, instead of waiting for the next batch extract.

Gluesync by MOLO17 captures changes from Oracle, SQL Server, PostgreSQL, MySQL, MongoDB, and other heterogeneous sources with a dedicated agent per database. The Google BigQuery agent writes them with the native BigQuery SDK, so no JDBC driver or extra license is involved: batches are staged as Parquet files in Cloud Storage and loaded into your datasets. Core Hub, the Gluesync control plane, runs snapshots and CDC for every pipeline from one web UI and REST API.

WHO THIS IS FOR

Teams that need BigQuery to reflect operations now, not after the nightly extract

  • Analytics engineers who model on BigQuery and need current-state tables keyed like the source, with a primary key on every replicated table so models read the same keys the application uses
  • Data platform leads feeding BigQuery from Oracle, SQL Server, PostgreSQL, or MongoDB who want one Core Hub for every source instead of one connector product per source, backed by best-in-class enterprise support, rated 4.9/5 by customers
  • Architects who want BigQuery ingestion to follow BigQuery's own load model: changes collapsed per key, staged in Cloud Storage, and applied with one load job per table per cycle, with replication that keeps moving through quota windows on its own
  • Engineers running Debezium with a Kafka Connect BigQuery sink, or scheduled extract scripts, who want every source delivered to BigQuery by one product with snapshots and CDC under one control plane

THE PROBLEM

BigQuery data that arrives in batches is already behind

Most BigQuery estates are fed by scheduled extracts: a job queries the source, exports files, and loads them on a timetable. Dashboards and models then reflect the last run, every extract adds read load to the production database, and each source ends up with its own connector and failure mode. Teams looking for real-time BigQuery ingestion or a BigQuery CDC pipeline usually weigh managed ELT services such as Fivetran or Airbyte, a Debezium and Kafka stack with a BigQuery sink, Google Datastream, or scripts they keep running themselves.

Gluesync addresses that with per-agent CDC into BigQuery. A source agent reads each database's native change log or change stream, Core Hub routes the changes, and the Google BigQuery agent applies them through load jobs staged in Cloud Storage. Oracle to BigQuery, PostgreSQL to BigQuery, and MongoDB to BigQuery follow the same model, with the same snapshot, scheduling, and operations.

HOW IT WORKS

How Gluesync writes to BigQuery

The write path: native SDK, Cloud Storage staging, and load jobs

The Google BigQuery agent uses the official Google BigQuery SDK, which Gluesync embeds, so there is no JDBC driver to license or tune. It is a target agent: it applies the change stream from any Gluesync source agent to your datasets in real time, after a snapshot seeds each table.

  • Optimized batches, never row by row: every write is grouped. Changes are gathered into highly optimized batches, with a batch size configurable on the agent, so BigQuery receives a few large operations instead of a stream of single-row calls.
  • Snapshots: batches are loaded with WRITE_TRUNCATE load jobs, which replace the table contents in one atomic refresh. Truncate before snapshot is on by default and can be switched off in the target settings.
  • Through quota windows: when a load job reaches a BigQuery quota, the agent switches to streaming writes for a cool-down window, then returns to load jobs on its own, so replication keeps moving. Google BigQuery agent overview ↗

Native bulk load for snapshots and CDC

Bulk load uses BigQuery's own load jobs and is switched on per entity with two independent settings: Bulk for Snapshot for the initial load and Bulk for CDC for the ongoing change stream. Both can be changed on an existing entity without recreating it.

In each mirroring cycle Core Hub collects the change events and collapses those on the same primary key: an insert followed by a delete is skipped, and consecutive updates become one update. The batch is written as Parquet, uploaded to your Cloud Storage bucket, and loaded into a persistent staging table with a WRITE_TRUNCATE load job. Columns the source log omitted can be backfilled from the live table, then deletes for the changed keys and inserts of their current values are applied in one pass. Each changed key ends as one current row, and staged files are cleared once the load completes.

Snapshot first, then continuous CDC

  • Seed, then stream: each table loads in full first, then follows changes from its source agent as they arrive, in commit order per entity.
  • Scheduled reloads: the Chronos scheduler runs a snapshot, or a snapshot followed by CDC, on a cadence for tables you refresh on a timetable. See schedules and events.
  • Truncate control: a snapshot can replace the table contents with one load job, or leave existing rows in place when truncation is disabled.

Keys, tables, and setup in your Google Cloud project

Gluesync writes to datasets you own. The agent authenticates with a service account that can write to those datasets and read and write a staging bucket in the same project. Full statements are in the Google BigQuery target setup guide ↗.

  1. Create each target table in the dataset with its primary key, for example PRIMARY KEY (ID) NOT ENFORCED. Every replicated table needs one.
  2. Create a Cloud Storage bucket for staging in the same project as the datasets, close to them to keep egress low. An optional folder prefix keeps staged files grouped.
  3. Create a service account with roles/bigquery.dataEditor and roles/bigquery.jobUser on the datasets, and roles/storage.objectAdmin on the staging bucket.
  4. Create a JSON key for that service account and upload it in Core Hub, or mount it into the agent as a volume.
  5. Enter the Google Cloud project ID, the staging bucket, and the dataset location, which defaults to US.

Architecture around Core Hub

Source agents sit close to each database, and Core Hub orchestrates them through its web UI and REST APIs. A pipeline groups a source agent with the BigQuery agent and the tables it replicates. Query Studio, the SQL workbench in Core Hub, opens BigQuery in a read-only session with autocomplete, so you can check landed rows without another client. See Query Studio, and CDC streaming for the wider pattern.

Explore the general CDC streaming architecture →

WRITE OPTIONS

The Google BigQuery target agent: one agent, one load path

BigQuery has one Gluesync target agent. It writes through the native SDK in optimized batches, with native bulk load through Cloud Storage and load jobs for snapshots and CDC.

AgentWrite techniqueVersionsBest for
Google BigQuery agent ↗ Native Google BigQuery SDK; optimized batches, and native bulk load with Parquet files staged in Cloud Storage and WRITE_TRUNCATE load jobs Any Google Cloud region; the dataset location is set per dataset, US by default BigQuery projects fed from operational databases that want no JDBC driver and no extra license. Native bulk load through Parquet files and load jobs covers both snapshots and CDC, switched on per entity.

SOURCES AND TOPOLOGIES

Feed BigQuery from the databases you already run

Any Gluesync source agent can feed BigQuery, each with its own native capture technique. Open the integrations finder with Google BigQuery pre-selected to see every source you can pair with it.

One Core Hub runs Oracle to BigQuery, PostgreSQL to BigQuery, and MongoDB to BigQuery side by side, with the same snapshot, scheduling, and write settings for each. Gluesync keeps pace with your change volume at any scale, and MOLO17 Professional Services can help lay out datasets and staging with your team.

FAIR, HIGH-LEVEL COMPARISON

Where Gluesync fits among BigQuery ingestion approaches

ApproachWhat buyers usually getWhere Gluesync fits
Fivetran and Fivetran HVR Managed ELT with a broad connector catalog and scheduled syncs into BigQuery; HVR adds log-based replication. Packaging differs by product Agents you deploy next to each source, native capture per engine, and staged load jobs into BigQuery under one Core Hub; see warehouse sync
Airbyte Open-source and cloud ELT connectors; incremental and CDC modes vary by source connector, and you run the platform or use the managed service A commercial product with a dedicated capture agent per database and MOLO17 enterprise support behind every pipeline
Debezium, Kafka Connect, and a BigQuery sink connector Open-source capture into Kafka topics, loaded by a sink connector; you run Kafka, Connect, offsets, and schemas, and usually add a step that merges change events into current-state tables Changes applied to current-state BigQuery tables by primary key with no Kafka cluster in the path; read the Debezium alternative comparison
Google Datastream Google's managed change data capture service with BigQuery as a destination, sold within Google Cloud Native capture from heterogeneous sources, including Oracle, IBM i, and SAP HANA, with one Core Hub for all pipelines; see batch ETL vs real-time replication
BigQuery native loading and scheduled transfers Native load jobs and scheduled transfers into BigQuery; getting row changes out of the source database is a component you choose and run Gluesync uses the same load-job primitives for bulk cycles and adds log-based capture from each source database under one Core Hub
DIY scheduled extracts and MERGE scripts Full control; your team owns extract queries, staging files, merge logic, retries, and the load each run puts on production Log-based capture and staged load jobs without extract queries or merge scripts to maintain; see migrating to Gluesync

FAQ

BigQuery replication questions

What does replicating to BigQuery with Gluesync involve?

A source agent captures committed changes from your database through its native change mechanism, Core Hub routes them, and the Google BigQuery agent applies them to BigQuery tables. Each table is seeded with a snapshot first and then follows the change stream.

Does Gluesync bulk load into BigQuery?

Yes, for the initial snapshot and for ongoing CDC, with a separate switch for each on every entity. Batches are written as Parquet, staged in a Cloud Storage bucket, and loaded with BigQuery load jobs through the native Google BigQuery SDK, with no JDBC driver involved.

Which sources can replicate to BigQuery?

Any Gluesync source agent. Oracle, SQL Server, PostgreSQL, MySQL, MongoDB, DynamoDB, and Couchbase can all feed BigQuery, and each one uses its own native capture technique.

How are updates and deletes applied in BigQuery?

Each mirroring cycle combines changes by primary key and loads them into a persistent staging table. The changed keys are deleted from the target first, then their current values are inserted, so each changed row ends as one current row.

Do BigQuery tables need a primary key?

Yes. Every replicated table needs a primary key, declared in BigQuery as PRIMARY KEY with NOT ENFORCED, and the table must exist with that key before replication starts.

What does the service account need in BigQuery and Cloud Storage?

roles/bigquery.dataEditor and roles/bigquery.jobUser on the target datasets, and roles/storage.objectAdmin on the staging bucket. The agent uses the same identity for BigQuery and Cloud Storage.

Which regions and deployments are supported?

Any Google Cloud region. The dataset location is set in the agent configuration and defaults to US, so it should match where your datasets live.

Evaluate Gluesync with your BigQuery project

Start a trial in your Google Cloud project, or talk to MOLO17 about your sources, dataset layout, and the load cadence each table needs.