Skip to main content
Use BigQuery as a destination (load data in) or a source (read into other systems).

Supported sync modes


Connection details


Setting up a service account

Use a dedicated service account so long-running jobs do not depend on a user login.

Step 1 — Create a service account

In the Google Cloud Console:
  1. Go to IAM & Admin → Service Accounts
  2. Click Create Service Account
  3. Name it zwiron-agent and click Create
  4. Skip optional steps and click Done

Step 2 — Grant permissions

Assign these IAM roles to the service account:

Step 3 — Create a key

  1. Click the service account → Keys → Add Key → Create new key
  2. Choose JSON
  3. Download the key file
Paste the contents of the JSON key file into the Service Account JSON field in the Zwiron connection form.

How Zwiron writes to BigQuery

For high-throughput writes, Zwiron uses the BigQuery Storage Write API (default) or LOAD DATA jobs:
  • Append mode — rows are appended to the table
  • Upsert mode — rows are loaded to a staging table, then merged using MERGE INTO based on the primary key
  • Replace mode — table is truncated and replaced with new data
Zwiron creates tables automatically if they don’t exist.

Schema mapping


Partitioning and clustering

When Zwiron creates a table in BigQuery, you can configure:
  • Partitioning by a timestamp column (e.g. created_at) — reduces query cost significantly
  • Clustering by a frequently-filtered column — improves query performance
Configure these in the job’s advanced destination settings.

Troubleshooting

Ensure the service account has BigQuery Data Editor on the specific dataset, or BigQuery Admin on the project. Dataset-level permissions are separate from project-level IAM.
Double-check the Project ID (not the project name). The project ID is visible in the Cloud Console header and in the service account JSON file under "project_id".
BigQuery has per-project and per-day quotas for load jobs. For very high-frequency pipelines, contact Google to increase quotas or use streaming inserts instead.
Last modified on August 13, 2026