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.
Checked against Weld and vendor docs on
Your own tables, picked when you set up the sync.
- Extract
- Load
- Keep in sync
- google_sheets.Synced
- google_sheets.Syncing
- google_sheets.Synced
- google_sheets.Synced
Trusted by data and AI teams
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.
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.
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 to sync Google Sheets to Google BigQuery with Weld.
In the app, with the API or an agent.
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.
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.
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 monthAsk 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.
Which Google Sheets tables do we have in Google BigQuery, and which is the largest?
Looking up what Weld has synced from Google Sheets.
Things to know.
Before you sync Google Sheets.
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.
Keep reading.
Guides, docs and schema.
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.