Google Sheets to BigQuery

Targets, budgets, mappings and manual inputs often live in Google Sheets and need to sit next to the rest of your data. BigQuery can query a sheet directly as an external table, which is free to set up and often enough. Weld copies worksheets and named ranges into native BigQuery tables on a schedule, and can write results back to Sheets.

4.8 on G2
Google SheetsSource
WeldWeld
Google BigQueryWarehouse

Checked against Weld and vendor docs on

Weld · New sync
Google SheetsSourceGoogle SheetsConnected
Tables to sync

Your own tables, picked when you set up the sync.

  • Extract
  • Load
  • Keep in sync
Google BigQueryDestinationGoogle BigQueryReady
google_sheets dataset
  • google_sheets.Synced
  • google_sheets.Syncing
  • google_sheets.Synced
  • google_sheets.Synced

Trusted by data and AI teams

  • Flatpay
  • Holafly
  • eComplete
  • Dishoom
  • Danish Endurance
  • Female Invest
  • Son of a Tailor
  • Onomondo
  • Medik8
  • Pas Normal Studios
Options

Ways to get Google Sheets data into BigQuery

BigQuery reads Google Sheets natively through external tables, so try that first. Connected Sheets is often mentioned in the same breath, but it works in the other direction. The trade-offs are query speed, caching, and what happens when someone edits the sheet mid-query.

B

BigQuery external table over Drive

Best for
Small lookup sheets queried now and then
Effort
Low: create a table from the sheet URL
Freshness
Live: every query reads the sheet
Good to know
Needs the Drive OAuth scope. Google notes external tables can be slower than native tables, results are not cached, every query is charged, and edits during a query can give unexpected results.
C

Connected Sheets

Best for
Analysing BigQuery data inside a spreadsheet
Effort
Low: connect from Sheets
Freshness
On request or on a schedule
Good to know
Runs BigQuery queries from Sheets and saves the results in the spreadsheet. It brings BigQuery data into Sheets, not sheet data into BigQuery.

Weld

Best for
Sheets joined with other sources in native tables
Effort
Low: authorise, pick a spreadsheet, schedule
Freshness
On your sync schedule
Good to know
Syncs worksheets and named ranges into BigQuery tables, with header detection and type handling, and can push models back into a sheet with reverse ETL.
How it works

How to sync Google Sheets to Google BigQuery with Weld.
In the app, with the API or an agent.

Weld · Data warehouse
Google BigQueryData warehouseGoogle BigQueryConnected
Data locationChosen when you connect
CredentialsService account or key, stored encrypted
Data

What lands in Google BigQuery
From Google Sheets to Google BigQuery.

Google Sheets has no fixed schema: what lands in BigQuery is shaped by your spreadsheet. Each worksheet or named range you select becomes its own table.

  • One table per worksheet

    Each tab you select syncs as a table. With the first row as column names, which is the default, your headers become the column names.

  • One table per named range

    Named ranges sync as their own tables, which is the cleaner choice when a tab holds notes, totals or several blocks of data around the part you need.

  • Column types

    Weld detects each column's type from its values. Stringify properties loads every value as text instead, which avoids failures when a column mixes numbers, dates and text.

Example query

Monthly targets from a sheet against actuals from another source.
In Google BigQuery SQL.

Illustrative: replace google_sheets.targets with the table for your worksheet, its month and target columns with your own headers, and analytics.orders with any table of actuals. The cast handles a target column loaded as text with stringify properties.

Google BigQuery · query
1with actuals as (2  select3    date_trunc(date(created_at), month) as month,4    sum(amount) as actual5  from analytics.orders6  group by month7)8select9  date(t.month) as month,10  cast(t.target as numeric) as target,11  a.actual,12  round(safe_divide(a.actual, cast(t.target as numeric)), 3) as attainment13from google_sheets.targets as t14left join actuals as a on a.month = date(t.month)15order by month
Weld MCP server

Ask your agent.
It queries Google BigQuery for you.

Connect Claude, Cursor, ChatGPT or your own agent to Weld over MCP. It reads the Google Sheets context, finds the tables it needs and runs the query in Google BigQuery.

Claude CodeOpus 5
>

Which Google Sheets tables do we have in Google BigQuery, and which is the largest?

Looking up what Weld has synced from Google Sheets.

●weld·search_available_references
⎿raw.google_sheets.*
tables, columns and freshness
●weld·get_reference_schema
⎿columns, types and nullability
●weld·run_query
⎿select count(*) from {{raw.google_sheets.…}}
submitted
●weld·get_query_status
⎿DONE
●weld·get_query_result
⎿rows returned
✓Answered from Google Sheets data in Google BigQuery
>Ask about your Google Sheets data
Under the hood

Things to know.
Before you sync Google Sheets.

Reverse ETL

ELT vs. reverse ETL: Google Sheets and Google BigQuery

ELT (Extract, Load, Transform) moves data from Google Sheets into Google BigQuery for analysis. This is the approach shown on this page, and the one to use for dashboards, reports, and data models.

Reverse ETL works the other direction: it pushes enriched data from Google BigQuery back into Google Sheets. For example, you could sync computed lead scores or customer segments from your warehouse into Google Sheets to personalize outreach.

Weld supports both directions, so you can build a complete data loop between Google Sheets and Google BigQuery.

Google BigQuery to Google Sheets
Headers and layout matter
Weld uses the first row as column names by default, so keep one header row with unique names and the data starting directly below. Tabs with notes or totals around the data are better synced through a named range.
Mixed types in a column
Spreadsheets let a column hold numbers, dates and text side by side. If automatic type detection causes problems, turn on stringify properties to load values as text and cast them in SQL.
External tables trade speed and cost for zero setup
Google says querying Drive data is slower than querying native tables, results from external sources other than Cloud Storage are not cached, and each query is billed even if repeated. For sheets queried again and again, Google suggests writing the data to a permanent table instead.
OAuth or service account
The OAuth connector reads sheets as the Google user who authorised it. The service account connector reads only the sheets shared with its email address, and Weld recommends reusing one service account connection rather than creating many.
FAQ

Common questions.
About Google Sheets to Google BigQuery.

Start syncing Google Sheets to Google BigQuery.

Set up your Google Sheets data pipeline in minutes. No credit card required. Free for 14 days.

Google SheetsSource
WeldWeld
Google BigQueryWarehouse