BigQuery

Write data back to a Google BigQuery table. Use SignalSmith to materialize model results, audience memberships, or enriched data into BigQuery datasets.

Prerequisites

  • A Google Cloud project with BigQuery enabled
  • A service account or OAuth credentials with BigQuery Data Editor role
  • A BigQuery dataset to write to

Authentication

BigQuery supports two authentication methods:

Service Account

  1. Create a service account in your GCP project
  2. Grant it the BigQuery Data Editor role on the target dataset
  3. Download the JSON key file
  4. Upload or paste the JSON key in SignalSmith

OAuth

  1. Click Connect with OAuth in SignalSmith
  2. Sign in with your Google account
  3. Authorize BigQuery access

Configuration

FieldTypeRequiredDescription
Project IDTextYesYour Google Cloud project ID
DatasetTextYesThe BigQuery dataset to write to
LocationSelectNoDataset location (e.g., US, EU). Default: US

Target Settings

FieldTypeRequiredDescription
Target TableTextYesThe target table name within the dataset

Supported Operations

Sync Modes: Upsert, Insert, Update, Mirror

Audience Sync Modes: Add, Remove, Mirror, Upsert

Features

  • Field Mapping: Yes
  • Schema Introspection: Yes — SignalSmith reads table schemas from the BigQuery API

How It Works

SignalSmith uses BigQuery’s DML capabilities for efficient data writing:

  1. Data is loaded into a staging table using the BigQuery Storage Write API
  2. A MERGE statement is executed against the target table
  3. The staging table is cleaned up after the sync

BigQuery identifiers are lowercased to match its case-sensitive quoting behavior.

Troubleshooting

Service account permissions

The service account needs bigquery.tables.create, bigquery.tables.updateData, and bigquery.jobs.create permissions. The BigQuery Data Editor role includes these.

Dataset not found

Verify the dataset exists in the specified project and location. Dataset names are case-sensitive in BigQuery.

Location mismatch

The dataset location must match between your source and destination datasets. Cross-region operations are not supported.

Quota exceeded

BigQuery enforces DML statement quotas. For high-frequency syncs, consider batching or reducing sync frequency.