Google Cloud BigQuery Data Transfer Service: Automatic Deliveries into Your Data Warehouse

Google Cloud BigQuery Data Transfer Service: Automatic Deliveries into Your Data Warehouse

A beginner-friendly, book-style guide to BigQuery Data Transfer Service, the managed Google Cloud service that loads data from advertising platforms, SaaS tools, other clouds, databases and files into BigQuery on a schedule, with no pipeline code to write.

Imagine a restaurant that needs fresh vegetables, bread and fish every morning. The owner could drive to three different markets every day, load the car, and carry everything inside. Or the owner could sign up for a delivery service that collects each order from each supplier on a fixed timetable and places it on the kitchen counter before opening time. BigQuery Data Transfer Service is that delivery service for data, and BigQuery is the kitchen.

This guide assumes you know nothing about data loading or data warehouses. Every new word is explained the first time it appears, with a simple comparison from daily life. By the end you will understand what the service is, which sources it supports, how a transfer runs, how to schedule and repair transfers, how to keep them secure and watched, how pricing works, and when to use a different tool.

1What Is BigQuery Data Transfer Service and Why Does It Exist?

It automates the movement of data into BigQuery on a regular, managed schedule.

The problem of getting data in

BigQuery is Google Cloud’s data warehouse, a place where huge amounts of data can be stored and analyzed with SQL. But a warehouse is only useful when it is full of data, and that data lives somewhere else. Advertising numbers sit inside advertising platforms. Customer records sit inside a sales application. Log files sit in cloud storage on another provider. Orders sit in a database. Someone has to carry all of this into BigQuery, and keep carrying it every day as new data appears.

The old way: custom pipelines

Traditionally, an engineer wrote a program for each source. The program called the source’s interface, handled logins, dealt with limits, converted formats, loaded the result and retried when something failed. Each program had to be scheduled, monitored and repaired whenever the source changed its interface. A company with twenty sources ended up with twenty fragile programs and a team busy keeping them alive.

What the service does

BigQuery Data Transfer Service, often shortened to DTS, replaces those programs with configuration. You pick a source, give it permission to read, choose a destination dataset in BigQuery and set a schedule. From then on the service loads data automatically on that schedule. It can also backfill, meaning re-load a past period to recover from outages or gaps. It is a one-way street: it loads data into BigQuery and cannot be used to move data out.

Simple Analogy

Instead of hiring a driver for every supplier, you sign one contract with a delivery company. You say what you want, from whom, and when. The company handles the routes, the keys at each door and the retries when a supplier is closed.

30+
supported sources, from advertising to databases to files
0
pipeline servers or programs for you to run
1 way
data flows into BigQuery only
i
Good to Know

DTS is built for scheduled batch loads. It is not a tool for streaming individual events as they happen, and it does not run ad hoc analysis. Think of it as the supply line, not the kitchen.

2Core Concepts in Plain English

Twelve words you will meet in every DTS conversation.

Term 1

Data source

The kind of system the data comes from, such as Google Ads, Amazon S3 or a database. DTS offers one connector per data source.

Term 2

Transfer configuration

The saved setup of one transfer: its source, destination, schedule, parameters and identity. It is the main thing you create.

Term 3

Transfer run

One execution of a transfer configuration, for a particular time window. A daily transfer creates one run per day.

Term 4

Destination dataset

The BigQuery dataset, which is like a folder of tables, where the loaded data lands.

Term 5

Schedule

The timetable that says when runs start, such as every day at a certain hour, or in response to an event.

Term 6

Backfill

A request to re-run a transfer for past dates, to fill gaps or recover from an outage.

Term 7

Connector

The ready-made piece of DTS that knows how to talk to one data source and shape its data into BigQuery tables.

Term 8

Scheduled query

A SQL query that runs on a timetable and saves its result into a table. DTS runs these too.

Term 9

Dataset copy

A transfer that copies a BigQuery dataset to another dataset, in the same or another location.

Term 10

Run notification

A message sent when a run finishes, by email or to a Pub/Sub topic, so people and systems know the result.

Term 11

Service account

A non-human identity that a transfer can use, so it does not depend on one person’s login.

Term 12

Batch loading

Moving data in groups at set times, in contrast to streaming, which moves each event as it happens.

Hold on to the picture: a transfer configuration is the standing order, each run is one delivery, and the dataset is the shelf where deliveries are put.

3Where DTS Fits in a Data Platform

The first stop of a data journey, before cleaning and analysis.

A modern data platform has stages. First data is ingested, meaning brought into the warehouse. Then it is transformed, which means cleaned, joined and reshaped. Finally it is analyzed and shared through reports and models. DTS lives in the first stage. It lands raw data into BigQuery in a reliable, repeatable way, so that later stages can start from a trustworthy base.

flowchart LR
SRC["Sources: ads, SaaS, clouds, databases, files"] --> DTS["BigQuery Data Transfer Service"]
DTS --> RAW["Raw datasets in BigQuery"]
RAW --> TRF["Transform with SQL or Dataform"]
TRF --> MART["Clean tables and views"]
MART --> BI["Dashboards, reports and machine learning"]
        
FIG 1 — DTS as the ingestion stage of a warehouse pipeline

ELT, not ETL

Older systems extracted data, transformed it on a separate machine and then loaded the result, which is called ETL. With a powerful warehouse such as BigQuery, it is often better to load first and transform inside the warehouse with SQL, called ELT. DTS follows the ELT idea. It loads data in a form close to the source, and you shape it afterwards with queries.

Simple Analogy

A supermarket receives goods at its loading dock, unpacks and shelves them, and customers pick what they want. DTS is the loading dock. Transformation is stocking the shelves, and dashboards are the customers walking the aisles.

i
Tip

Keep raw transferred data in its own datasets, and build cleaned tables in separate ones. When a source changes, or a mistake is found, you can rebuild the clean layer from the untouched raw layer.

4Architecture and Components

The few objects you create, and the work Google does behind them.

From your side, DTS has a small number of objects. You enable the service in a project, create a destination dataset, and create a transfer configuration for each source. Behind the scenes, the service reaches the source using the credentials you gave, retrieves the data, stages it, loads it into BigQuery tables and records the result. You never see or manage the machines that do this.

flowchart TD
CFG["Transfer configuration: source, schedule, identity"] --> RUN1["Run: Monday window"]
CFG --> RUN2["Run: Tuesday window"]
CFG --> RUN3["Run: Backfill of earlier dates"]
RUN1 --> DS["Destination dataset in BigQuery"]
RUN2 --> DS
RUN3 --> DS
RUN1 --> LOG["Run history and logs"]
RUN2 --> LOG
RUN3 --> LOG
RUN1 --> NOTE["Notifications by email or Pub/Sub"]
        
FIG 2 — One configuration, many runs, one destination
Object 1

Data transfer API

The programming interface and console pages used to create, list, update and monitor transfers.

Object 2

Transfer configuration

Holds all the settings of one recurring transfer. Changing the schedule or destination means editing this object.

Object 3

Transfer runs and logs

Each run records its status, timing and messages, which is the first place to look when something fails.

Object 4

Destination tables

Tables are created and updated inside the chosen dataset, often partitioned by date to keep queries efficient.

Simple Analogy

A standing order with a florist has a contract, a delivery slip for each visit, and a shelf at home where the flowers go. The configuration is the contract, runs are the slips and the dataset is the shelf.

5Supported Data Sources

A growing list of connectors, grouped by what kind of system they read from.

DTS offers connectors for many systems. Some are generally available and covered by full support, while others are in preview, meaning they are still maturing and may change. The list grows over time, so always check the current documentation for the exact sources and their status.

Google marketing

Google Ads, Campaign Manager, Display and Video 360, Search Ads 360, Ad Manager

Advertising performance, campaign settings and reporting data from Google’s advertising products.

Google services

Google Analytics 4, YouTube, Google Play, Merchant Center

Website and app analytics, video channel and content owner reports, app store reports and shopping data.

Cloud storage

Cloud Storage, Amazon S3, Azure Blob Storage

Files such as CSV, JSON and other formats, loaded from buckets and containers on a schedule.

Databases and warehouses

MySQL, PostgreSQL, Oracle, SQL Server, Teradata, Amazon Redshift, Snowflake, Hive

Tables from operational databases and other warehouses, useful for migration and ongoing replication of batch data.

SaaS applications

Salesforce, ServiceNow, HubSpot, Shopify, Mailchimp, Klaviyo and others

Customer, sales, service and marketing data from business applications.

Marketing and payments

Facebook Ads, Salesforce Marketing Cloud, Stripe, PayPal

Advertising from other platforms, campaign reports and payment records.

!
Check the Status

A connector in preview may change its tables, behavior or price when it becomes generally available, and preview features come without the usual service commitments. For critical reporting, prefer generally available connectors, or plan for change.

Simple Analogy

A delivery company has routes it has served for years and new routes it is trying out. The old routes are dependable, and the new ones are still being tested. Know which is which before you promise a customer a time.

6Three Jobs Done by DTS: Loads, Dataset Copies and Scheduled Queries

The service does more than load files, and the other jobs are easy to overlook.

Job 1

Loading from external sources

The main job. Connectors pull data from outside systems and load it into BigQuery tables on a schedule.

Job 2

Dataset copies

Copies a dataset to another dataset, in the same project or another, and in the same or a different location. Useful for sharing and for disaster recovery.

Job 3

Scheduled queries

Runs SQL on a timetable and writes results to a table, which is a simple way to build summary tables without extra tools.

Scheduled queries in more detail

Many teams meet DTS first through scheduled queries without realizing it. You write a SQL query, choose how often it should run, and choose a destination table. Each run executes the query and either replaces or adds to the table. This is a tidy way to build a daily summary, a weekly snapshot or a cleaned copy of raw data, with no external scheduler.

Dataset copies in more detail

A dataset copy transfer duplicates tables from a source dataset to a destination dataset. It can be repeated on a schedule to keep the copy fresh. Teams use it to give another team its own copy, to move data closer to users in another region, or to keep a backup in a separate project.

Daily summary table

A scheduled query reads yesterday’s raw orders and writes a small table of totals by region, ready for dashboards.

Cross-region copy

A dataset copy places a replica of key tables in another location, so analysts nearby query it faster and a copy exists if one location has trouble.

Project to project sharing

A central data team copies curated tables into a department’s project, where the department controls cost and access.

Simple Analogy

A newspaper delivery company also offers a service to photocopy a magazine for another office, and to prepare a daily summary sheet. Different jobs, one reliable timetable.

7Internal Working: Life of a Transfer Run

What happens between the schedule firing and the data appearing in your table.

sequenceDiagram
participant S as Scheduler
participant D as DTS Service
participant X as Source System
participant B as BigQuery
participant N as Notifications
S->>D: Time reached, start a run
D->>D: Check identity and permissions
D->>X: Connect and read data for the window
X-->>D: Return data
D->>D: Stage and shape into table format
D->>B: Load into destination tables
B-->>D: Load result
D->>N: Send success or failure message
        
FIG 3 — The path of a single transfer run
1

The schedule fires

At the configured time, or when an event arrives, a run is created for a specific time window.

2

Identity is checked

The service uses the credentials of the transfer, either a user’s authorization or a service account, to prove it may read the source and write the destination.

3

Data is read from the source

The connector fetches only what belongs to the window, such as yesterday’s report or newly arrived files.

4

Data is staged and shaped

It is converted into the table layout that the connector defines, in the same location as the destination dataset.

5

Data is loaded

Rows are written into BigQuery tables, adding to them or replacing parts, depending on the source and settings.

6

The result is recorded

The run is marked succeeded, failed or cancelled, logs are written, and notifications are sent if configured.

Simple Analogy

A courier collects a parcel from the sender, checks the ID at pickup, sorts it at the depot, delivers it to your door and sends you a message saying it arrived. DTS does the same with data.

i
Tip

Because each run covers a window, you can reason about it clearly: this run is for this day. When something goes wrong, you re-run only the affected windows, not the whole history.

8Scheduling, Event-Driven Runs and Backfills

Choosing when data arrives, and repairing the past when it does not.

Time based schedules

Most transfers run on a repeating timetable, such as every day at a chosen hour, or every hour for sources that support it. The right frequency depends on how fresh the data must be and how often the source updates. Loading hourly something that changes once a day wastes effort and cost.

Event-driven transfers

For files, waiting for a clock is not always ideal. Some transfers can instead be triggered by an event, such as a new file arriving in a Cloud Storage bucket, using a Pub/Sub notification. This brings the data into BigQuery soon after it appears, without polling on a timer.

Backfills

Pipelines break. A source is down, a password expires, a quota is hit, and a few days of data are missing. A backfill lets you ask DTS to run the transfer again for a range of past dates. Not every source supports backfill in the same way, and some can only return a limited history, so check what your connector allows.

StyleWhen it runsBest for
Daily scheduleOnce a day at a set timeReports and sources that update daily
Hourly or more frequent scheduleSeveral times a day, where supportedFresher file loads and near-real-time dashboards
Event-drivenWhen a new file or message arrivesLanding files as soon as they appear
On demandWhen you press runTesting and one-off loads
BackfillFor chosen past datesRecovering after outages and gaps
1

Find the gap

Check run history and tables to see which dates are missing or wrong.

2

Fix the cause

Repair credentials, quotas or source issues before re-running, or the backfill will fail again.

3

Run the backfill

Request runs for the missing range, in manageable chunks.

4

Verify the result

Compare row counts or totals with the source to confirm the gap is closed, and make sure nothing is duplicated.

!
Common Mistake

Backfilling without checking how the connector writes data. Some transfers replace the day’s partition, which is safe to repeat, while others append, which can create duplicates. Learn the behavior of your source before repairing.

9Loading Files from Cloud Storage, Amazon S3 and Azure

The most common use: files in buckets, turned into queryable tables.

Many data sources export files, such as daily log files, partner data drops or exports from other systems. DTS can pick these up from Cloud Storage, Amazon S3 and Azure Blob Storage, and load them into BigQuery. You give a location and a file pattern, and the service finds matching files, loads them and tracks which it has already handled.

Setting 1

File location and pattern

A path with wildcards describes which files belong to the transfer, such as all files for a given date.

Setting 2

File format

Common formats such as CSV, JSON, Avro, Parquet and ORC are supported, with options for headers and delimiters.

Setting 3

Destination table and naming

Table names can include runtime values, such as the run date, so each run writes to the right table or partition.

Setting 4

Write behavior

Choose whether to add rows to the table or to mirror the files, replacing the table with the latest data.

Setting 5

Schema handling

Let BigQuery detect the schema, or supply it, so columns have the right names and types.

Setting 6

Error tolerance

Decide how many bad rows to allow before a run fails, so one broken line does not block everything.

flowchart LR
S3["Amazon S3 bucket"] --> DTS["DTS transfer"]
AZ["Azure Blob container"] --> DTS
GCS["Cloud Storage bucket"] --> DTS
DTS --> BQ["BigQuery table, partitioned by date"]
        
FIG 4 — Files from three storage systems landing in BigQuery

Cross-cloud loads

Moving data from another cloud involves network transfer between providers, and the source provider may charge for data leaving its network. Hourly loads from Amazon S3 are available for fresher data. Credentials for the other cloud are stored in the transfer configuration, so treat them with the same care as any secret, and use limited, read-only keys.

Simple Analogy

A mailroom collects letters from several post boxes on a schedule, ignores the ones it has already collected, and files them in the right drawer by date. Pattern matching is the rule for which post box and which letters.

i
Tip

Write files into dated folders or with dated names, and avoid overwriting files in place. Predictable file layouts make transfers reliable and backfills simple.

10Advertising and Analytics Connectors

Turning campaign and website data into tables that analysts can join with the rest of the business.

Marketing teams live in advertising and analytics products, each with its own reports and interface. Their data becomes much more valuable when it sits next to sales, product and customer data in one warehouse. DTS connectors for Google Ads, Campaign Manager, Display and Video 360, Search Ads 360 and Google Analytics 4 deliver this data into a standard set of BigQuery tables, so it can be joined and analyzed with SQL.

Cost per customer acquired

Advertising spend from Google Ads is joined with orders from the sales database, showing which campaigns bring profitable customers.

Full funnel analytics

Website behavior from Analytics 4 is combined with advertising impressions and clicks, so teams can follow a user journey across channels.

Custom reports

For some connectors, you can ask for a custom report using the source’s own query language, pulling only the fields you need and reducing volume.

Historical archives

Advertising platforms keep data only for a limited time, so transferring it to BigQuery builds a long-term history for trends and year-over-year comparisons.

QuestionWhat to know
Who authorizes the transfer?An account with access to the advertising or analytics data, or a service account where supported
How fresh is the data?Usually daily, and reports may be updated for several days after the date, as platforms finalize numbers
Can I load older data?Backfills are possible within the limits of the source platform
What do the tables look like?A set of tables defined by the connector, often partitioned by date, with documented columns
!
Common Mistake

Treating yesterday’s advertising numbers as final. Platforms often adjust figures for days after the event, so connectors refresh recent windows. Build reports that expect small changes in the latest few days.

11Databases, Warehouse Migrations and SaaS Applications

Bringing tables from operational systems and other warehouses into BigQuery.

Database and warehouse connectors

For databases such as MySQL, PostgreSQL, Oracle and SQL Server, and for warehouses such as Teradata, Amazon Redshift and Snowflake, DTS can copy tables into BigQuery. This is widely used for migration, where an organization moves its analytics away from an older warehouse. It also supports ongoing batch replication, so reporting can run in BigQuery without burdening the operational database. For some warehouse sources, DTS can also help with schema conversion and moving data and history.

SaaS application connectors

For applications such as Salesforce, ServiceNow, HubSpot and Shopify, connectors read the application’s objects, such as accounts, tickets or orders, and load them as tables. Some of these connectors are offered through Google Cloud Marketplace as third party transfers. They are enrolled and configured in the console, and support comes from the provider of the connector.

Pattern 1

One-time migration

A single large copy of tables to move a warehouse, followed by switching reports to BigQuery.

Pattern 2

Recurring replication

Scheduled copies of operational tables, so analysts always work from a fresh but separate copy.

Pattern 3

Parallel run

Old and new warehouses run side by side while results are compared, before the old one is retired.

Pattern 4

Application data hub

Several business applications feed one set of tables, giving a unified view of customers.

Simple Analogy

Moving a library to a new building means carrying the books, then keeping the new shelves up to date while the old building is still open. Warehouse migration and recurring replication are those two steps.

i
Tip

For databases that must be mirrored with changes within seconds, consider a change data capture service instead. DTS is best for scheduled batch copies. The comparison chapter explains the difference.

12Locations, Regions and Data Residency

Where your data is processed and stored matters for law, speed and cost.

BigQuery datasets live in a location, which can be a multi-region such as a large geographic area, or a single region. DTS follows the destination dataset. The transfer configuration is set to the same location as the destination dataset, and the service processes and stages data in that same location. The source can be anywhere, since DTS supports transfers from the source’s region to any destination location, but the destination location decides where processing happens.

flowchart TD
SRC["Source in any region or cloud"] --> DTS["DTS processes and stages in destination location"]
DEST["Destination dataset: chosen location"] --> DTS
DTS --> OUT["Tables stored in the destination location"]
        
FIG 5 — The destination dataset decides where processing happens
SituationWhat to do
Data must stay in a country or regionCreate the destination dataset in an allowed location before creating the transfer
Source and analysts are in different regionsChoose the destination near the analysts, and consider cost of moving data
Need data in two locationsUse a dataset copy to replicate to a second location
Wrong location chosenCreate a new dataset in the right location, and recreate the transfer, since a dataset’s location cannot be changed
Simple Analogy

Deliveries are unpacked in the warehouse where they are going to be stored. The delivery truck can come from anywhere, but the unpacking happens at the destination.

!
Common Mistake

Creating the dataset in a default location without checking residency rules. Data that was loaded into the wrong location may need to be deleted and reloaded, which is costly and may already breach policy.

13Identity, Security and Access Control

A transfer holds the keys to both the source and the warehouse, so protect it carefully.

Whose identity does the transfer use?

A transfer can run with the authorization of a person, or, for many sources, with a service account. A transfer tied to a person breaks when that person leaves the company, changes their password or loses access. A service account is a stable identity for the transfer itself, which is the better choice for production. Service account support has been added for many sources over time, so check which your connector supports.

Permissions you need

The person creating a transfer needs permission to manage transfers in the project, and to edit the destination dataset. The identity running the transfer needs access to the source data and permission to write to the destination. For third party sources, you also need whatever permissions the external system requires. Grant roles on specific datasets rather than on the whole project where possible.

Control 1

Service accounts

Run production transfers as service accounts, so they survive staff changes.

Control 2

Least privilege

Give the identity access only to the needed source data and destination dataset.

Control 3

Encryption

Data is encrypted in transit and at rest, and customer-managed keys are supported for several transfer types.

Control 4

Workforce identity federation

Supported for most sources, allowing external identity providers to be used for authorization.

Control 5

Credentials for other clouds

Use read-only keys limited to the needed bucket, and rotate them regularly.

Control 6

Audit logging

Administrative actions are recorded, so you can see who created or changed transfers.

Simple Analogy

A delivery contract signed by a named employee is a problem when that employee leaves. A contract signed by the company’s own account office continues smoothly. Service accounts are the company’s own account office.

!
Common Mistake

Leaving critical transfers authorized by an individual’s personal account. When the credential expires or the person leaves, the data silently stops arriving. Move important transfers to service accounts.

14Monitoring, Notifications and Troubleshooting

A pipeline that fails quietly is worse than one that fails loudly.

Every run records its status and logs, which you can inspect in the console. You can also configure run notifications. Pub/Sub notifications send a message to a topic when a run finishes as succeeded, failed or cancelled, which suits automation. Email notifications tell people when a run fails. If a transfer uses a service account, the email may not reach a real person, so Pub/Sub notifications are recommended in that case.

flowchart LR
RUN["Transfer run finishes"] --> ST{"Status"}
ST -->|"Succeeded"| OK["Pub/Sub message: downstream jobs can start"]
ST -->|"Failed"| FAIL["Pub/Sub and email: alert the team"]
ST -->|"Cancelled"| CAN["Pub/Sub message: investigate"]
OK --> NEXT["Start transformation workflow"]
FAIL --> TKT["Create ticket or page on-call"]
        
FIG 6 — Using run notifications to drive alerts and downstream work
Problem 1

Permission denied

The identity lacks access to the source or destination. Check roles on the dataset and the source system.

Problem 2

Authorization expired

A personal authorization has expired or been revoked. Reauthorize, or move to a service account.

Problem 3

No data found

The file pattern or window matches nothing, or the source has not published the data yet. Check paths and timing.

Problem 4

Schema mismatch

The source changed a column or type. Update the schema settings and fix downstream queries.

Problem 5

Quota or rate limits

The source or BigQuery limited the request. Spread the schedule or request an increase.

Problem 6

Location mismatch

A dataset or resource is in a different location than the transfer expects. Align locations.

1

Open the run history

Find the failed run and read its status and error message.

2

Check credentials and permissions

Most failures are about access: expired authorization, missing roles or changed keys.

3

Check the source

Confirm the source is available and that the data for the window exists.

4

Fix and re-run

Run the failed window again, or backfill a range, then verify the result.

i
Tip

Add a data freshness check in your reports, such as a visible last updated date. People will notice a stale table long before they would notice a missing notification.

15Reliability, SLOs and Compute Resources

What Google promises, and what depends on other people’s systems.

Google describes a data delivery objective for scheduled transfers from sources within Google Cloud. For transfers from third party or non-Google sources, the objective does not apply, because outages and limits at those sources can affect the transfer. In practice, treat transfers from outside sources as dependent on those sources, and design reports to tolerate delay.

Slots and processing

BigQuery does its work using units of compute capacity called slots. Jobs started by DTS use the slots of a reservation only if the project, folder or organization is assigned to a reservation for the relevant job types. Otherwise they use the default on-demand arrangements. Teams with reservations should check how transfer jobs are assigned, so that loading data does not compete with business queries, or the other way around.

TopicWhat to know
Data delivery objectiveApplies to scheduled transfers from sources within Google Cloud, not to third party sources
Dependency on the sourceSource outages, limits and late data can delay transfers
Preview connectorsCome without the usual service commitments
ReservationsControl whether transfer jobs use reserved slots, depending on job type assignment
QuotasLimits exist on transfers, runs and loads, so check the quotas page for large setups
Simple Analogy

A delivery company can promise to bring parcels from its own depots on time, but cannot promise that a supplier’s warehouse opens on time. Build your timetable with that in mind.

!
Common Mistake

Starting the morning dashboard refresh at the exact minute the transfer is scheduled to begin. Chain downstream jobs to the success notification instead, so reports build only after the data has really arrived.

16Understanding Cost and Pricing

The transfer fee is only one part of what loading data costs.

DTS pricing has been evolving. Google announced a consumption-based model for third party SaaS and database connectors that takes effect when each connector becomes generally available, with connectors free while in preview. More recently, the orchestration fee has been removed for many Google sources, object storage and migration connectors. Because terms change, use the official pricing page for the current picture of which transfers are free and which are charged.

Whatever the transfer fee is, other costs remain. Once data has landed, normal BigQuery storage and query pricing applies. Cross-cloud transfers can involve network charges from the source provider. Pub/Sub notifications incur Pub/Sub charges. Source systems may also bill for exports or API usage.

Transfer fee
varies by connector and status, and has been changing
Storage and queries
standard BigQuery pricing applies to the loaded data
Network
other clouds may charge for data leaving them
Cost driverWhy it growsHow to control it
Transfer feesCharged connectors billed by consumptionCheck which connectors are charged, and load only needed objects
BigQuery storageRaw history accumulatesUse partition expiration and archive or delete old raw data
Queries on raw dataAnalysts scan large unpartitioned tablesPartition and cluster tables, and query only needed columns and dates
Too frequent schedulesMore runs than the data needsMatch frequency to how often the source changes
Cross-cloud egressLarge files leaving another cloudCompress, filter at the source and transfer only new data
NotificationsMany messagesSubscribe only where useful
!
Cost Reminder

A free transfer can still lead to a large bill if you load everything and query it carelessly. The cost of data is mostly in how much you store and how much each query reads, so design tables with partitions from day one.

i
Tip

Compare the total cost of DTS with building and running your own pipeline, including engineers’ time and monitoring. For many teams, the managed service is cheaper once people are counted.

17Real-World and Industry Examples

Where scheduled loading quietly powers decisions.

These are common patterns rather than named customer stories, because specific designs and contracts change over time.

Retail and e-commerce

Orders from a store database, advertising data from several platforms and shipment files from carriers are loaded daily, so one dashboard shows revenue, ad spend and delivery performance.

Marketing agencies

An agency loads advertising data for many client accounts into separate datasets, and automates monthly reports that used to be built by hand in spreadsheets.

Software as a service companies

Product usage logs from storage, customer data from a sales application and support tickets from a service tool are brought together to find customers at risk of leaving.

Financial services

Daily files from partners and transaction exports are loaded under strict controls, with service accounts, regional datasets and audit logs.

Media and publishing

Video platform reports, advertising revenue and audience analytics are combined to see which content earns the most.

Warehouse modernization

A company moves from an older on-premises warehouse to BigQuery, using database and warehouse connectors to copy history, then keeps loading deltas until the cutover.

Multicloud analytics

Log files in another cloud’s storage are loaded hourly into BigQuery, so security and operations teams analyze all environments in one place.

18Advantages, Disadvantages and Trade-offs

Convenience and reliability, in return for less flexibility than custom code.

Advantages

  • No code or servers needed to load data on a schedule
  • Many ready-made connectors, maintained by Google or partners
  • Built-in scheduling, backfills, run history and notifications
  • Handles authorization, retries and file tracking for you
  • Works with scheduled queries and dataset copies in one tool
  • Integrates with BigQuery security, locations and encryption

Disadvantages / Trade-offs

  • Loads data into BigQuery only, with no way to move data out
  • Batch and scheduled, so not suited to streaming events
  • Connector tables and options are fixed, with limited custom transformation
  • Some connectors are in preview, with less commitment and possible change
  • Depends on third party source availability and limits
  • Pricing has been changing, so costs need watching
Simple Analogy

A standard delivery service is reliable and cheap, but it follows fixed routes and timetables. For an unusual item that needs a special route, you hire a custom courier, and then you carry the responsibility too.

“The best pipeline is the one that you never have to think about, until you need to.”

19Design Patterns and Anti-patterns

Habits that keep data arriving, and habits that let it silently disappear.

Patterns that work

Strong teams separate raw and cleaned datasets. They run production transfers with service accounts, and they send run notifications to a topic that triggers downstream work and alerts. They partition tables by date and set expiry on raw data. They name transfers clearly, record the owner of each, and keep the configuration under infrastructure as code, so setups can be reviewed and rebuilt. They test backfills before they need them, and they monitor freshness.

ANTI-PATTERN-01 Avoid
Problem

Production transfers run under a personal account of the engineer who created them.

Why It’s Harmful

When the person leaves, changes a password or loses access, transfers stop, often without anyone noticing until a report looks empty.

Correct Approach

Use service accounts where supported, document ownership, and monitor for failed runs.

ANTI-PATTERN-02 Avoid
Problem

Nobody receives failure notifications, and run history is checked only when someone complains.

Why It’s Harmful

Gaps in data last for days or weeks, and decisions are made on stale or incomplete numbers.

Correct Approach

Configure Pub/Sub or email notifications, route failures to an owned channel, and add freshness checks to reports.

ANTI-PATTERN-03 Avoid
Problem

Analysts query the raw transferred tables directly, and business logic is copied into every report.

Why It’s Harmful

When a source changes its columns, every report breaks, and definitions drift apart between teams.

Correct Approach

Build a cleaned layer with views or tables that define business logic once, and have reports use that layer.

ANTI-PATTERN-04 Avoid
Problem

Downstream jobs start at a fixed clock time, assuming the transfer is finished by then.

Why It’s Harmful

When a transfer is late, reports are built on partial data and nobody knows it.

Correct Approach

Trigger downstream jobs from the success notification, and fail loudly when data is missing.

ANTI-PATTERN-05 Avoid
Problem

Every table is loaded at the highest frequency, with no expiry, and never partitioned.

Why It’s Harmful

Storage and query costs climb steadily, queries become slow, and the cost of data far exceeds its value.

Correct Approach

Match schedules to needs, partition and cluster tables, and expire or archive old raw data.

20Best Practices and Common Mistakes

A checklist to keep your data deliveries dependable, secure and affordable.

1

List your sources and needs

Know what data you need, how fresh, and which connectors cover it, and their status.

2

Plan datasets and locations first

Create destination datasets in the correct location, with raw and clean layers separated.

3

Use service accounts and least privilege

Give transfers stable identities with only the access they need.

4

Choose schedules that match the data

Avoid over-frequent runs, and consider event-driven loading for file arrivals.

5

Turn on notifications and freshness checks

Send results to a topic, alert owners on failure and show freshness in reports.

6

Partition, cluster and expire

Design tables for efficient queries and controlled storage from the start.

7

Understand backfill behavior

Test how your connector re-writes data, so repairs never create duplicates.

8

Keep configuration as code and review costs

Manage transfers with infrastructure as code, and review pricing and usage regularly as terms change.

Mistakes beginners make most often

The first is using a personal authorization for production transfers. The second is ignoring notifications. The third is forgetting dataset location rules. The fourth is treating preview connectors as fully supported. The fifth is starting downstream jobs by the clock instead of by completion. The sixth is backfilling without understanding write behavior. The seventh is leaving raw data unpartitioned and unexpired.

i
Document Each Transfer

Keep a short record for every transfer: owner, source, schedule, destination, identity and what to do when it fails. When a run breaks at an awkward time, this page saves everyone from guessing.

21DTS Compared with Other Ingestion Tools

Google Cloud has several ways to get data into BigQuery, each with its own sweet spot.

ToolWhat it doesBest fit
BigQuery Data Transfer ServiceManaged scheduled batch loads from supported sourcesMarketing, SaaS, file and database batch loads with no code
DatastreamChange data capture, streaming database changesNear-real-time replication from operational databases
DataflowCustom batch and streaming pipelinesComplex processing, custom logic and streaming events
BigQuery load jobs and the Storage Write APIDirect loading by your own programsCustom applications that produce data
Pub/Sub with BigQuery subscriptionsStreams messages straight into tablesEvent streams
Storage Transfer ServiceMoves files between storage systemsBulk file movement, not loading into tables
Dataform and scheduled queriesTransform data already in BigQueryThe step after ingestion
Partner integration toolsThird-party platforms with many connectorsSources that DTS does not cover
flowchart TD
Q1{"Is a supported connector available for your source?"} -->|Yes| Q2{"Is scheduled batch loading enough?"}
Q2 -->|Yes| DTS["Use BigQuery Data Transfer Service"]
Q2 -->|"No, need changes in seconds"| DS["Consider Datastream or streaming tools"]
Q1 -->|No| Q3{"Need custom logic or streaming events?"}
Q3 -->|Yes| DF["Consider Dataflow or Pub/Sub"]
Q3 -->|No| LJ["Consider load jobs or a partner tool"]
        
FIG 7 — A simple path for choosing an ingestion tool
Simple Analogy

A scheduled courier is perfect for daily parcels. A live conveyor belt suits a constant flow, and a custom truck suits unusual cargo. Pick the transport that matches how and what you are moving.

These tools are often combined. A company may use DTS for marketing and file loads, Datastream for key databases, and Dataflow for event streams, all landing in the same BigQuery warehouse.

22Frequently Asked Questions

Q1What is BigQuery Data Transfer Service in one sentence?

It is a managed Google Cloud service that automatically loads data into BigQuery on a schedule from supported sources such as advertising platforms, SaaS applications, databases and cloud storage, with no pipeline code to write.

Q2Can it move data out of BigQuery?

No. DTS loads data into BigQuery. To export data, use other tools such as export jobs or other services.

Q3Is it real time?

No. It is built for scheduled batch loads, with some sources supporting hourly runs and some file sources supporting event-driven triggers. For changes within seconds, use change data capture or streaming tools.

Q4What is a backfill?

A request to run a transfer again for past dates, so gaps caused by outages or errors can be filled. How far back you can go depends on the source.

Q5Which identity should a transfer use?

For production, a service account where the connector supports it, so the transfer does not depend on a person’s account. Check each connector’s documentation.

Q6How do I know when a transfer fails?

Configure run notifications. Pub/Sub notifications report succeeded, failed and cancelled runs and suit automation, while email notifications report failures to people.

Q7Where is my data processed?

In the location of the destination dataset. The transfer configuration and staging happen there, while the source can be in any region or cloud.

Q8What else can DTS do besides loading from sources?

It also runs scheduled queries and copies datasets between locations or projects, on a schedule.

Q9Does it cost money?

It depends on the connector and its status. Preview connectors have been free, many Google sources have had fees removed, and some third party connectors use consumption-based pricing once generally available. Storage and queries in BigQuery are billed separately. Check the official pricing page.

Q10Can I transform data during the transfer?

Only lightly, through connector options. For real transformation, load the data first and use SQL, scheduled queries or Dataform inside BigQuery.

Q11What if my source is not supported?

Look for a partner connector, export files to cloud storage and load them with DTS, or build a pipeline with Dataflow or custom load jobs.

Q12How do I avoid duplicate data when re-running?

Understand whether the connector replaces date partitions or appends rows. Prefer replace-style writes, load into partitioned tables, and verify counts after a backfill.

23Summary and Key Takeaways

BigQuery Data Transfer Service is Google Cloud’s managed way to bring data into BigQuery on a schedule. You create a transfer configuration for a source, a destination dataset and a timetable, and the service runs, retries, logs and notifies, while also offering backfills, scheduled queries and dataset copies. It covers advertising and analytics products, storage in several clouds, databases, warehouses and SaaS applications. Success comes from stable identities, correct dataset locations, sensible schedules, notifications tied to downstream work, partitioned tables and attention to changing connector status and pricing.

Key Takeaways

  • Managed batch ingestion — DTS loads data into BigQuery on a schedule with no code or servers, and cannot move data out.
  • Configuration, runs and datasets — a transfer configuration creates runs for time windows that land in a destination dataset.
  • Many sources, varied maturity — marketing, files, databases and SaaS connectors exist, and preview ones come without the usual commitments.
  • Backfill with care — know whether a connector replaces or appends before repairing gaps.
  • Use service accounts — keep production transfers independent of any one person’s account, with least privilege access.
  • Notify and chain — send run results to Pub/Sub, alert on failure and start downstream jobs from success, not from the clock.
  • Mind location and cost — the destination dataset sets where data is processed, and storage, queries and changing pricing deserve regular review.