Skip to main content

BigQuery Destination

Prerequisites

  • A Google Cloud Platform (GCP) account with billing enabled
  • A GCP project where you want to store your data
  • Permission to create service accounts and grant IAM roles in the project

Step 1: Create a Service Account

  1. Go to the Google Cloud Console
  2. Select your project from the project picker in the top navigation bar
  3. Navigate to IAM & Admin > Service Accounts in the left sidebar
  4. Click Create Service Account
  5. Enter a name (e.g., landed-bigquery) and description
  6. Click Create and Continue

Step 2: Grant Required IAM Roles

On the "Grant this service account access to project" step, add these roles:

RolePurpose
BigQuery Data Editor (roles/bigquery.dataEditor)Create and write to tables and datasets
BigQuery Job User (roles/bigquery.jobUser)Run load jobs to insert data

Click Continue, then Done.

Note: If you prefer tighter scoping, you can grant BigQuery Data Editor on a specific dataset instead of the whole project. However, the service account still needs BigQuery Job User at the project level.

Step 3: Create a JSON Key

  1. In the Service Accounts list, click on the service account you just created
  2. Go to the Keys tab
  3. Click Add Key > Create new key
  4. Select JSON format
  5. Click Create -- a JSON file will download to your computer
  6. Keep this file secure. You will paste its contents into Landed.

Step 4: Configure in Landed

In the Landed destination setup form, enter:

FieldValue
Project IDYour GCP project ID (e.g., my-project-123456). Found in Cloud Console > Dashboard > Project info.
DatasetThe BigQuery dataset name (e.g., landed_data). Landed will create it if it doesn't exist.
Dataset LocationThe region for your dataset (e.g., US, EU, us-central1). Must match your existing dataset's region. Cannot be changed after creation.
Service Account JSONPaste the entire contents of the JSON key file you downloaded.

Step 5: Network Access

BigQuery is a fully managed service accessible over the internet. No firewall or IP allowlisting is required.

Common Errors

ErrorCauseFix
403 Access DeniedMissing IAM rolesVerify the service account has BigQuery Data Editor and BigQuery Job User roles
404 Dataset not foundDataset location mismatchEnsure the dataset location matches the region of your existing dataset
Invalid JSONMalformed credentialsMake sure you pasted the entire JSON key file, including the curly braces
Project not foundWrong project IDUse the project ID (e.g., my-project-123456), not the project name or number

What Landed Creates

Landed will create tables in your dataset with the naming pattern <connector>__<stream> (e.g., stripe__customers, hubspot__contacts). Each table includes metadata columns:

  • _landed_synced_at -- timestamp of when the record was last synced
  • _landed_active -- whether the record is currently active
  • _landed_deleted_at -- timestamp if the record was deleted at source
  • _landed_source -- the connector that produced this record
  • _landed_sync_id -- unique ID of the sync run