---
title: "How to load data into BigQuery: methods and when to use"
canonical: "https://www.owox.com/blog/articles/loading-data-into-bigquery"
updated: "2026-10-12"
---

# How to load data into BigQuery: every method and when to use it

BigQuery takes data in six ways: batch load jobs, the BigQuery Data Transfer Service, streaming, change data capture, external tables over files in Drive or Cloud Storage, and third-party connectors. This guide maps each method to the sources it fits, what it costs and where it breaks.

[Google BigQuery](/blog/topics/bigquery) · Updated October 6, 2026 · [Ievgen Krasovytskyi](/team/ievgen-krasovytskyi) · [Vadym Kramarenko](/team/vadym-kramarenko) · 5 min read

![How to load data into BigQuery: every method and when to use it](https://cdn.owox.ai/www/webflow/696644403ae2d8397782adc0_TRANSFER-DATA-FROM-_-INTO-BIGQUERY-1.png/public)

There is no single best way to load data into BigQuery. The right one depends on **where the data is and how fresh it has to be**. This table is the short answer; the sections below explain each row.

| Your data is in | Use | Fresh |
| --- | --- | --- |
| a file on your computer | upload in the console (up to 100 MB) | once |
| files in Cloud Storage | a batch load job or `LOAD DATA` | on a schedule |
| Google Ads, GA4, YouTube and other Google services | BigQuery Data Transfer Service | daily |
| Google Drive or Google Sheets | an external table | live, on every query |
| MySQL, PostgreSQL, Oracle, SQL Server | Data Transfer Service or Datastream (CDC) | scheduled or near real time |
| an app or message queue | streaming (Pub/Sub, Storage Write API) | seconds |
| ad platforms and SaaS tools not covered above | a connector | scheduled |

The methods are Google’s, from its [introduction to loading data](https://cloud.google.com/bigquery/docs/loading-data), checked on 6 October 2026.

**_Note:_** _Originally published in July 2023. Fully rewritten in October 2026 against Google’s current documentation._

## Batch load: files into tables

A load job reads files and writes them into a table. It suits data that changes rarely or arrives in batches. Supported formats are **Avro, CSV, JSON, ORC and Parquet**.

*   From your computer: the console’s **Create table** dialog, the `bq load` command or the API. In the console a local file **cannot exceed 100 MB**; anything larger goes through Cloud Storage. The step-by-step is in [how to upload data to BigQuery](/blog/articles/upload-data-to-bigquery).
*   From Cloud Storage: a load job, or the `LOAD DATA` SQL statement.

**Batch loading is free** when it uses the shared slot pool. You pay for storage once the data is in. Google recommends Avro or Parquet over CSV for large loads, because they can be read in parallel.

## BigQuery Data Transfer Service

The Data Transfer Service loads data from a set of supported sources **on a schedule, with no code**, and can backfill gaps. It only moves data in; it cannot export from BigQuery.

The sources Google lists, as of October 2026:

*   **Google services:** Google Ads, Google Analytics 4, Campaign Manager, Display & Video 360, Search Ads 360, Google Ad Manager, Google Play, YouTube Channel and YouTube Content Owner.
*   **Marketing and SaaS:** Facebook Ads, Salesforce, Salesforce Marketing Cloud, ServiceNow; HubSpot, Klaviyo and Mailchimp in preview.
*   **Databases and warehouses:** MySQL, PostgreSQL, Oracle, Amazon Redshift, Snowflake, Teradata; Microsoft SQL Server in preview.
*   **Cloud storage:** Cloud Storage, Amazon S3, Azure Blob Storage.

**What it costs.** On Google’s pricing page the transfers from Google’s own sources, object storage and the migration connectors carry no orchestration charge. The other connectors are billed for the compute they use, in slot-hours. Check the [pricing page](https://cloud.google.com/bigquery/pricing) for the current split before you rely on a transfer being free.

**Where it stops.** The list of sources is fixed, and each transfer delivers the schema Google defined. If a source is not on the list, or you need different fields or a different grain, you need another route.

## The Turning Point

OWOX Data Marts

See your first report built in real time. _15 minutes._

1.  Connect your data warehouse
2.  Pick your metrics
3.  Get a live Google Sheets report

In the time it takes to write a ticket. Then imagine never writing that ticket again.

[Book a Demo](/book-a-call)

We'll use your actual use case

## Google Drive and Google Sheets: external tables

For a file in Drive you do not have to load anything. BigQuery can create an **external table** over a Drive file in CSV, newline-delimited JSON, Avro or **Google Sheets** format, and read it at query time. You give it the file’s URL and, for a sheet, the tab and range.

This is the quickest way to make a spreadsheet queryable, and it stays current, because every query reads the sheet as it is at that moment. The trade-offs follow from that: queries are slower than on a native table, the result depends on whoever last edited the sheet, and the account running the query needs access to the file. For anything a report depends on, copy the external table into a native table on a schedule.

More in [how to connect Google Sheets to BigQuery](/blog/articles/bigquery-sheets-connector).

## Databases: transfers and change data capture

For operational databases there are two documented options. The Data Transfer Service copies tables on a schedule from MySQL, PostgreSQL, Oracle and, in preview, SQL Server. **Datastream** uses change data capture to replicate row-level changes in near real time.

Choose the scheduled transfer when a daily or hourly copy is enough. Choose CDC when reports need to follow the database within minutes, and accept the extra moving parts.

## Streaming

For events that must be queryable seconds after they happen, BigQuery offers a **Pub/Sub BigQuery subscription**, Dataflow for streams that need processing first, and the **Storage Write API** for writing directly. Unlike batch loads, streaming is charged. Use it when the freshness is worth it, not by default.

## Ad platforms and other SaaS sources

Most marketing teams hit the edge of the Data Transfer Service here: it covers Google’s own platforms and Facebook Ads, and not TikTok, LinkedIn, Microsoft Ads, X or Reddit.

For those, the options are a connector tool or your own code against each API. [OWOX Data Marts](https://www.owox.com/app-signup) has open-source connectors for ad platforms and several other sources. Each one is set up as a Data Mart that loads the source’s data into your warehouse on a schedule: Google BigQuery, Snowflake, AWS Redshift, AWS Athena or Databricks. Worked examples: [Facebook Ads](/blog/articles/free-facebook-ads-to-bigquery-connector), [TikTok Ads](/blog/articles/free-tiktok-ads-to-bigquery-connector) and [LinkedIn Ads](/blog/articles/free-linkedin-ads-to-bigquery-connector) to BigQuery.

Google Analytics 4 is a separate case: it has its own native export, described in [how to connect GA4 to BigQuery](/blog/articles/google-analytics-4-to-bigquery-guide).

## How to choose

1.  **Is the source on the Data Transfer Service list?** Start there. It is managed and, for Google sources, the cheapest.
2.  **Is it a file?** Load it, or put an external table over it if it lives in Drive and changes often.
3.  **Is it a database?** Scheduled transfer, or Datastream if minutes matter.
4.  **Is it an ad platform or SaaS tool not on the list?** A connector.
5.  **Does it have to be real time?** Only then, streaming.

Whichever you choose, load into a [table partitioned by date](/blog/articles/bigquery-partitioned-tables). It is the cheapest decision to make now and the most expensive to change later.

## Loading is half the job

Every method above ends the same way: raw tables, one set per source, each with its own column names, time zones and idea of what a campaign is. Nobody can report on that directly. Someone has to write the queries that join spend to revenue and decide what the numbers mean.

That second half is what a Data Mart is for. In OWOX Data Marts, the queries you write over the loaded tables are saved with a description and an owner, run in your warehouse, and delivered as reports to the [spreadsheets](/product/spreadsheets) and [dashboards](/product/dashboards) people already use. OWOX does not transform the data for you. It keeps your queries, their schedule and their runs in one place, next to the connectors that feed them.

## Your New Normal

Turn your data into decisions.

Governed data marts give you the clean foundation ML needs to actually work.

*   No AI hallucinations
*   Analyst-governed definitions
*   Every number traces to SQL

[Get started free](https://www.owox.com/app-signup)

## FAQ

## Frequently Asked Questions

How do I load ad platform data that the Data Transfer Service does not cover?

With a connector or your own code against the platform's API. OWOX Data Marts has open-source connectors for ad platforms that load into your warehouse on a schedule, set up as Data Marts.

How do I load a large CSV file into BigQuery?

Put it in Cloud Storage and load it with a load job or the LOAD DATA statement. The console accepts local files only up to 100 MB. Avro and Parquet load faster than CSV because they can be read in parallel.

What does the BigQuery Data Transfer Service support?

Google services such as Google Ads, Google Analytics 4, Campaign Manager, Search Ads 360 and YouTube; Facebook Ads, Salesforce and ServiceNow; databases including MySQL, PostgreSQL, Oracle, Amazon Redshift and Snowflake; and Cloud Storage, Amazon S3 and Azure Blob Storage, as of October 2026. It only loads data into BigQuery.

Is loading data into BigQuery free?

Batch loading through the shared slot pool is free; you pay for storage afterwards. Streaming is charged. Data Transfer Service transfers from Google's own sources and object storage carry no orchestration charge, and other connectors are billed in slot-hours, per Google's pricing page as of October 2026.

What are the ways to load data into BigQuery?

Batch load jobs for files, the BigQuery Data Transfer Service for supported sources on a schedule, streaming through Pub/Sub or the Storage Write API, change data capture with Datastream for databases, external tables over files in Drive or Cloud Storage, and third-party connectors.

What is the easiest way to get Google Sheets or Google Drive data into BigQuery?

An external table. BigQuery can read a Drive file in CSV, JSON, Avro or Google Sheets format at query time, from its URL. Nothing is loaded, so the data stays current, but queries are slower and depend on whoever last edited the file. Copy it into a native table on a schedule for reporting.

## Who wrote this

![Ievgen Krasovytskyi](https://cdn.owox.ai/www/webflow/68404586b341508a789a4aa5_.png/public)

[Ievgen Krasovytskyi](/team/ievgen-krasovytskyi) · Head of Marketing

Ievgen Krasovytskyi is the Head of Marketing at OWOX, leading strategy across content, SEO, product marketing, and AI-powered automation. With deep expertise in analytics infrastructure, data warehouses, and marketing technology, he builds systems that connect marketing performance to business outcomes. Ievgen writes about SaaS growth, analytics workflows, and the future of AI in marketing operations.

[LinkedIn](https://www.linkedin.com/in/ievgen-krasovytskyi-a38a1253/) · [All articles](/team/ievgen-krasovytskyi)

![Vadym Kramarenko](https://cdn.owox.ai/www/webflow/6798e703afdf787334941cde_Vadym-Kramarenko.png/public)

[Vadym Kramarenko](/team/vadym-kramarenko) · Growth Marketing Manager

Vadym Kramarenko is a Growth Marketing Manager at OWOX, where he drives user acquisition and product-led growth strategies. He hosts the OWOX podcast, interviewing analytics professionals about data-driven marketing, attribution, and reporting best practices. Vadym specializes in turning complex analytics concepts into practical, actionable marketing frameworks.

[LinkedIn](https://www.linkedin.com/in/vadim-kramarenko/) · [All articles](/team/vadym-kramarenko)

[Google BigQuery](/blog/topics/bigquery)

## Related articles

[Google BigQuery · Create and Delete Tables in BigQuery: A 2025 DDL Guide · July 3, 2024](/blog/articles/bigquery-create-drop-tables-data-definition-language)

[Google BigQuery · BigQuery Numbering Functions: Enhance Data Analysis Skills · March 7, 2025](/blog/articles/bigquery-numbering-functions)

[Google BigQuery · How to connect GA4 to BigQuery: setup, limits and first queries · October 6, 2026](/blog/articles/google-analytics-4-to-bigquery-guide)

[See all articles →](/blog/articles)

## Book a call

You are booked. The invitation is on its way to , with the calendar invite and the meeting link.

[Reschedule](#)

[Cancel](#)

## Links

Pages this page links to, on this site and on docs.owox.com. Where the page has a Markdown twin, its address follows the link.

- [Google BigQuery](https://www.owox.com/blog/topics/bigquery) — /blog/topics/bigquery.md
- [Ievgen Krasovytskyi](https://www.owox.com/team/ievgen-krasovytskyi) — /team/ievgen-krasovytskyi.md
- [Vadym Kramarenko](https://www.owox.com/team/vadym-kramarenko) — /team/vadym-kramarenko.md
- [how to upload data to BigQuery](https://www.owox.com/blog/articles/upload-data-to-bigquery) — /blog/articles/upload-data-to-bigquery.md
- [Book a Demo](https://www.owox.com/book-a-call) — /book-a-call.md
- [how to connect Google Sheets to BigQuery](https://www.owox.com/blog/articles/bigquery-sheets-connector) — /blog/articles/bigquery-sheets-connector.md
- [OWOX Data Marts](https://www.owox.com/app-signup)
- [Facebook Ads](https://www.owox.com/blog/articles/free-facebook-ads-to-bigquery-connector) — /blog/articles/free-facebook-ads-to-bigquery-connector.md
- [TikTok Ads](https://www.owox.com/blog/articles/free-tiktok-ads-to-bigquery-connector) — /blog/articles/free-tiktok-ads-to-bigquery-connector.md
- [LinkedIn Ads](https://www.owox.com/blog/articles/free-linkedin-ads-to-bigquery-connector) — /blog/articles/free-linkedin-ads-to-bigquery-connector.md
- [how to connect GA4 to BigQuery](https://www.owox.com/blog/articles/google-analytics-4-to-bigquery-guide) — /blog/articles/google-analytics-4-to-bigquery-guide.md
- [table partitioned by date](https://www.owox.com/blog/articles/bigquery-partitioned-tables) — /blog/articles/bigquery-partitioned-tables.md
- [spreadsheets](https://www.owox.com/product/spreadsheets) — /product/spreadsheets.md
- [dashboards](https://www.owox.com/product/dashboards) — /product/dashboards.md
- [Google BigQuery · Create and Delete Tables in BigQuery: A 2025 DDL Guide · July 3, 2024](https://www.owox.com/blog/articles/bigquery-create-drop-tables-data-definition-language) — /blog/articles/bigquery-create-drop-tables-data-definition-language.md
- [Google BigQuery · BigQuery Numbering Functions: Enhance Data Analysis Skills · March 7, 2025](https://www.owox.com/blog/articles/bigquery-numbering-functions) — /blog/articles/bigquery-numbering-functions.md
- [See all articles →](https://www.owox.com/blog/articles) — /blog/articles.md
