Google Sheets Google Sheets BigQuery Google BigQuery Tutorial

How to Connect Google Sheets to Google BigQuery

Juan Bello

Juan Bello

Founder, Porter Metrics

Jan 30, 2026
15 min read

To connect Google Sheets to Google BigQuery:

  1. 1

    Log in with Google on portermetrics.com.

  2. 2

    Select Google BigQuery as destination.

  3. 3

    Select Google Sheets as data source and name your connection.

  4. 4

    Authorize your Google account to access your Spreadsheets.

  5. 5

    Authenticate BigQuery via Google login or Service Account.

  6. 6

    Select Project ID, Dataset location, Dataset, and Table name (or create new).

  7. 7

    Select metrics (e.g., Value) and dimensions (e.g., Category).

  8. 8

    Optionally, prompt custom fields (e.g., Total, Count).

  9. 9

    Set date range (e.g., this month to date).

  10. 10

    Schedule refreshes in natural language (e.g., “daily at 8am”).

  11. 11

    Set write mode (overwrite, append, or update).

  12. 12

    Send and monitor execution logs.

Four free and paid ways to connect Google Sheets to Google BigQuery

2. General ETL/ELT tools

Data integration platforms for data engineers. Examples: Fivetran, Stitch, Airbyte.

Export raw tables that mirror the source schema: one table per sheet tab, preserving your original column structure. Each table contains all fields. The data engineer writes SQL JOINs to relate tables, selects fields, transforms data, and uses dbt or Python for preprocessing before visualization.

3. Google BigQuery Data Transfer Service

Free native Google integration for data engineers.

Setup requirements:

  • Enable Google Sheets API in Google Cloud Console.
  • Set up OAuth 2.0 credentials or Service Account.
  • Share the spreadsheet with your service account email.
  • Rate limits: 300 requests/minute per project.
  • Use BigQuery external tables or scheduled queries to import.

What you get:

  • Direct access to spreadsheet data.
  • Can query Sheets as external BigQuery tables.
  • Scheduled refresh available via Cloud Functions.

Limitations:

  • Not true ETL: external tables query live data (slower).
  • Schema changes break queries: column changes cause errors.
  • Size limits: Sheets has 10M cell limit.
  • Performance: large sheets slow to query from BigQuery.

4. Manual CSV export

Download from Google Sheets manually. No automation.

How it works:

Limitations:

  • No automation: repeat manually for each update.
  • No row limit beyond the spreadsheet’s cell capacity (10 million cells).
  • No scheduled refreshes.
  • Manual upload to BigQuery required.

How to Connect Google Sheets to Google BigQuery for Marketers (No Code)

Porter is an AI-native connector. Configure everything with natural language, not SQL or forms. Custom fields, filters, scheduling—all prompted in plain English. No coding, no data engineering required.

  • Data preview is always live. As you select metrics, dimensions, filters, and date ranges, Porter shows your data in real-time. Verify everything before sending to BigQuery.
  • Data arrives transformed, blended, and ready to visualize. No SQL transformations needed after.

In this tutorial, we’ll show you how to send your Google Sheets data to Google BigQuery with Porter. We’ll send custom spreadsheet data with any fields you define, and custom calculations like totals, ratios, and custom segmentations.

Set a connection

Log in to portermetrics.com with Google. Click “Create” and select “Google BigQuery” as destination. Name your connection (e.g., “Google Sheets Campaign Performance”). Select Google Sheets as data source.

Select your BigQuery projects interface

Connect your Google Sheets accounts

Connect your Google account and grant access to your Spreadsheets. Select the specific sheets you want to import. Select the Sheets you want to connect.

Connect Google Sheets to Google BigQuery

Multi-account

Consolidate dozens or hundreds of spreadsheets in a single report.

Required permissions

Viewer or above on the Google Sheet.

Tokens never expire

Your Google connection stays active unless you revoke access from your Google Account settings.

Connect your BigQuery destination

Authenticate with Google login or Service Account. Select Project ID, Dataset location, Dataset, and Table name.

Select your BigQuery projects interface
  • Google login (recommended): Porter lists your projects in a dropdown. Easiest option.
  • Service Account JSON: for companies with strict permissions management on Google Workspace. Copy a JSON text from your project details to connect.
  • Dataset location: US, EU, or your preferred region.
  • Auto-update schema: if you change your query later, Porter updates the schema automatically and rewrites it in your BigQuery table, unlike other tools.

New to BigQuery? Create your first project:

Go to console.cloud.google.com. In the Navigation Menu (top left), select BigQuery → Studio. On the left panel, you’ll see your projects.

  1. Create a Project: select or create a new project (e.g., “Marketing Data”). Choose a name, type, and organization. BigQuery creates a folder for it.
  2. Create a Dataset: expand your project folder, click the ellipsis, and select “Create Dataset.” Name it (e.g., “sheets_data”) and select a location (US or EU).
  3. Create a Table: inside your dataset, you can create a table (e.g., “google_sheets”). Or let Porter create it automatically when you send your first query.

The Project ID, Dataset name, and Table name you set here are the same values you’ll enter in Porter’s BigQuery configuration.

Verify your data in BigQuery:

When you select a table, BigQuery shows the Schema view first. This is the metadata: field names, field types, and modes. To see your exported data, go to the Preview tab. Once your query executes, you’ll see the complete table with your data.

Google BigQuery dataset preview

Choose metrics

In the metrics dropdown, search and select: e.g., Revenue, Units Sold, Leads, Conversions.

Select Google Sheets metrics to transfer to Google BigQuery
+500 Fields Available: Porter brings most fields from the Google Sheets API. Expect the exact same data you see in the platform. See all Google Sheets fields

Choose dimensions

To segment your data, in the dimensions dropdown, search and select: e.g., Category, Date.

Select Google Sheets dimensions to transfer to Google BigQuery
  • Other dimensions: Campaign, Date.
  • Time dimensions: Date, Week, Month, Quarter, Year available for trending analysis.
  • Full field list: Check the Porter documentation for all available fields and dimensions.

See all Google Sheets fields

Create custom fields

For custom metrics, add a new metric, prompt your formula in natural language, and check the formula generated and a preview of the query. Choose the format of your metric (number, currency, percentage). For this example: Custom = “column_a / column_b”.

Create custom metrics with natural language interface

For custom dimensions, prompt your formula to segment data based on naming conventions. If your naming conventions include objective, funnel stage, or products, prompt a formula like: “If category contains ‘Product A’, tag as ‘Product A’. If contains ‘Product B’, tag as ‘Product B’. Else ‘Other’.” In the preview, see how Porter transforms conditionals into regex for custom segmentations.

Create custom dimensions interface

Create your own metrics or dimensions so no SQL or transformation is needed in BigQuery. Your data is ready to be connected to Looker Studio. Supported operations: math (sum, subtract, divide, multiply), conditionals (if/then/else), regex (pattern matching). Same capabilities as Looker Studio calculated fields.

Set date range

Select a date range from the dropdown. For this example: last 30 days.

Set a date range interface
  • Dynamic ranges: today, yesterday, last 7/14/28/30/90 days, this week/month/quarter/year to date, last week/month/quarter/year.
  • Fixed ranges: specific start and end dates.
  • Auto-update: data refreshes automatically based on dynamic range.

Add filters

We’ll apply a filter to focus on the rows relevant to your analysis.

For this example:

  • Condition: Exclude
  • Field: Amount Spent
  • Operator: equals
  • Value: 0
Create a filter interface

This excludes all rows without activity, so your query only returns rows with data.

  • Available operators: equals, contains, not contains, greater than, less than, starts with, ends with.
  • Value detection: Porter detects if the field is a number or text automatically.
  • Combine filters: add AND/OR logic within the same condition or create multiple filters in one query.

Schedule refresh

Prompt your schedule in natural language. For this example: “every day at 8am”.

Schedule data refreshes with AI interface
  • Examples: “Every Monday at 5am”, “Weekdays at 7pm”, “Every hour”, “Every Tuesday and Friday at 9am”.
  • Auto-convert: Porter converts prompts into cron expressions.
  • Timezone: detected automatically from your browser.
  • Minimum frequency: every minute. No extra cost for frequent refreshes.

Choose write mode

Select how Porter writes data to BigQuery. For this example: Overwrite.

Data refresh mode interface
  • Overwrite (recommended): deletes existing table and writes fresh data. No duplicates.
  • Append: adds new rows below existing data. Risk of duplicates if same date range runs twice.
  • Update: matches rows by dimension and updates values. For data with changing values.

Send, monitor, and organize

Click “Save” to save your query and click “Send” to deliver the data to Google BigQuery. The transfer takes a few seconds depending on the volume of data. Once finished, you can refresh it or create more queries.

Manage your data interface

To create more queries: go back to the query manager inside your connection, or go to Porter Metrics → Account → Reports → Connections. In the Queries tab, you’ll see all queries running from your account with their associated connection, name, data sources, last run time, latest status, and option to run manually.

To monitor executions: click the ellipses icon and select “History.” You’ll see logs with exact date and time, execution type (manual or scheduled), and status. If an error occurs, you’ll see the specific error message.

To organize your data: manage connections and queries within them. Name connections by campaign (e.g., “Black Friday”), by client, or by data source. Within each connection, create as many queries or tables as needed and rename them. You can enable/disable queries or connections, and update any query anytime—Porter refreshes and updates the schema on BigQuery automatically.

How to Connect Your BigQuery Table to Google Looker Studio

First, verify your data in BigQuery:

Go to console.cloud.google.com/bigquery. In the left menu, under Products, find BigQuery → Studio. This is where you manage your tables.

BigQuery hierarchy:

  • Project (e.g., “Marketing Data”): your top-level container.
  • Dataset (e.g., “Sheets_Data”): a collection of tables within a project.
  • Table (e.g., “Google Sheets”): your actual data.

In BigQuery Studio, go to “Classic Explorer” and select your project. Click the ellipsis to create a new dataset if needed (set a name and location, e.g., US or Europe). Navigate to your dataset and table. In “Schema,” see the list of fields and their types. In “Preview,” see your actual data. To refresh data, go back to Porter and resend—Porter overwrites the table.

Connect BigQuery to Looker Studio:

Go to Looker Studio. Click “Create” and select “Report” to start a blank report. Looker Studio will prompt you to add a data source. Search for “BigQuery” and connect your Google account.

You’ll see options: Recent Projects, My Projects, Shared Projects, Custom Query, Public Datasets.

Select “My Projects” and navigate to your project, dataset, and table. In this example: Project “Marketing Data” → Dataset “Sheets_Data” → Table “Google Sheets”. Click “Add” to connect.

Once connected, Looker Studio loads the fields from your table. Create a chart, add your dimensions (e.g., date) and metrics (e.g., Value). Make sure to set a date range that matches your query in Porter.

Looker Studio BigQuery connection
Rename fields for readability: BigQuery field names use underscores (e.g., “google_sheets_spend”). To rename them, go to Resource → Manage added data sources → Actions → Edit. Double-click on each field name to change it (e.g., “google_sheets_spend” → “Spend”). This makes fields more readable for end users.

Your BigQuery data is now connected to Looker Studio.

Why Marketers Move Google Sheets Data to BigQuery

  • Connect any reporting tool: BigQuery connects to Looker Studio, Power BI, Tableau, or any BI tool. One warehouse, every destination.
  • Multi-touch attribution: Join Google Sheets with raw GA4 event data. Trace the full user path from ad click to conversion.
  • Source of truth: Define what “conversion” means for your company. Compare Meta vs. GA4 vs. HubSpot. Pick one source for CAC, ROAS, and CPA. End the “which number is right” debate.
  • Company-wide access without platform permissions: Managing permissions across platforms is a pain. With BigQuery, anyone can access marketing data without accounts or roles in each platform. One permission model, all data.
  • Make data available for AI: AI needs clean, structured data with context. Every AI tool feels siloed. Integrating sources is complicated. With BigQuery as your universal warehouse, any AI tool can access your marketing data. No custom integrations. No complicated setup.
  • Data blending: Combine Google Sheets with CRM, GA4, Shopify, Google Ads in one warehouse. Measure real profit, not platform ROAS. Calculate blended CAC across all channels.

What’s Next

Now that your Google Sheets data is in BigQuery:

  • Connect to BigQuery: learn Google BigQuery for marketers and read tutorials to connect other data sources.
  • Connect to Looker Studio: Build dashboards that load in seconds. Use Porter templates or create your own.
  • Connect to Google Sheets: Export BigQuery data to Sheets for quick analysis, sharing with clients, or custom calculations.
  • Blend data from multiple sources: Add Google Ads, GA4, Shopify, CRM to the same connection. Porter auto-maps equivalent fields. Create cross-channel reports without SQL joins.
  • Create AI workflows: Automate alerts and reports with natural language. Example: “Every Monday at 9am, get Google Sheets data for last 7 days, analyze performance with AI, send summary to Slack.”
  • Use templates: Start with pre-built Looker Studio templates. Campaign performance, creative analysis, audience breakdowns—ready to connect.
  • Explore other destinations: Send Google Sheets data to PostgreSQL, or other warehouses. Same setup process.

Browse all Google Sheets templates

Ready to connect Google Sheets to BigQuery?

Start your free trial and get your marketing data flowing in minutes.

Book a call →