After creating a transfer using the BigQuery Data Transfer Service, you can:
- Get information about a transfer configuration
- List transfer configurations
- View a transfer's run history
- View transfer run details such as log messages
- Update a transfer
- Set up a backfill
- Update credentials
- Disable a transfer
- Delete a transfer
Getting information about transfers
After you create a transfer, you can get information about the transfer's configuration. The configuration includes the values you supplied when you created the transfer.
Required permissions
Getting information about a transfer requires bigquery.transfers.get
permissions. The following predefined Cloud IAM roles include
bigquery.transfers.get
permissions:
bigquery.admin
bigquery.user
A user granted the bigquery.transfers.get
permissions can view information
about all transfers in a project.
For more information on Cloud IAM roles in BigQuery Data Transfer Service, see Access control reference.
Getting information about a transfer
To get information about a transfer configuration:
Classic UI
Go to the BigQuery web UI.
Click Transfers.
On the Transfers page, click the appropriate transfer in the list.
The transfer configuration appears on the properties page above the Run History. The following example shows the configuration properties for a Google Ads transfer.
CLI
Enter the bq show
command and provide the transfer configuration's
resource name. The --format
flag can be used to control the output format.
bq show \
--format=prettyjson \
--transfer_config resource_name
Where:
- resource_name is the transfer's Resource Name (also referred to
as the transfer configuration). If you do not know the transfer's Resource
Name, issue the
bq ls --transfer_config --transfer_location=location
command to list all transfers.
For example, enter the following command to display transfer configuration
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7
.
bq show \
--format=prettyjson \
--transfer_config projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7
API
Use the projects.locations.transferConfigs.get
method and supply the transfer configuration using the name
parameter.
Listing transfer configurations
Required permissions
Listing transfer configurations in a project requires bigquery.transfers.get
permissions. The following predefined Cloud IAM roles include
bigquery.transfers.get
permissions:
bigquery.admin
bigquery.user
A user granted the bigquery.transfers.get
permissions can list all transfers
in a project.
For more information on Cloud IAM roles in BigQuery Data Transfer Service, see Access control reference.
Listing transfers
To list transfer configurations in a project:
Classic UI
Go to the BigQuery web UI.
Click Transfers. The transfer configurations appear on the Transfers page grouped by location.
CLI
To list all transfer configurations for a project by location, enter the
bq ls
command and supply the --transfer_location
and --transfer_config
flags. You can also supply the --project_id
flag to specify a particular
project. If --project_id
isn't specified, the default project is used.
The --format
flag can be used to control the output format.
To list transfer configurations for particular data sources, supply the
--filter
flag.
To view a particular number of transfer configurations in
paginated format, supply the --max_results
flag to specify the number of
transfers. The command returns a page token you supply using the
--page_token
flag to see the next n configurations.
bq ls \ --transfer_config \ --transfer_location=location \ --project_id=project_id \ --max_results=integer \ --filter=dataSourceIds:data_sources
Where:
- location is the location of the transfer configurations. The location is specified when you create a transfer.
- project_id is your project ID.
- integer is the number of results to show per page.
- data_sources is one of the following: <<../_shared/_cli-transfer-types.md>>
Examples:
Enter the following command to display all transfer configurations in the
US for your default project. The output is controlled using the --format
flag.
bq ls \
--format=prettyjson \
--transfer_config \
--transfer_location=us
Enter the following command to display all transfer
configurations in the US for project ID myproject
.
bq ls \
--transfer_config \
--transfer_location=us \
--project_id=myproject
Enter the following command to list the 3 most recent transfer configurations.
bq ls \
--transfer_config \
--transfer_location=us \
--project_id=myproject \
--max_results=3
The command returns a next page token. Copy the page token and supply it in
the bq ls
command to see the next 3 results.
bq ls \
--transfer_config \
--transfer_location=us \
--project_id=myproject \
--max_results=3 \
--page_token=AB1CdEfg_hIJKL
Enter the following command to list Ads and Campaign Manager transfer
configurations for project ID myproject
.
bq ls \
--transfer_config \
--transfer_location=us \
--project_id=myproject \
--filter=dataSourceIds:dcm_dt,adwords
API
Use the projects.locations.transferConfigs.list
method and supply the project ID using the parent
parameter.
Viewing the run history
As your scheduled transfers are run, a run history is kept for each transfer configuration that includes successful transfer runs and transfer runs that fail. Transfer runs more than 90 days old are automatically deleted from the run history.
Required permissions
Viewing the run history for a transfer configuration requires
bigquery.transfers.get
permissions. The bigquery.user
predefined
Cloud IAM role includes bigquery.transfers.get
permissions.
For more information on Cloud IAM roles in BigQuery Data Transfer Service, see Access control reference.
Viewing a run history
To view the run history for a transfer configuration:
Classic UI
Go to the BigQuery web UI.
Click Transfers.
On the Transfers page, click the appropriate transfer in the list.
On the properties page, the run history appears below the transfer properties.
(Optional) Uncheck Show only latest run per day to see all transfer runs.
The state of the transfer run is indicated graphically and is detailed in the State column:
Icon | State |
---|---|
![]() |
The transfer run was successful. |
![]() |
The transfer run failed. |
![]() |
The transfer run was successful, but warnings were encountered. The run is not considered problematic unless the resulting tables appear abnormal. |
CLI
To list transfer runs for a particular transfer configuration, enter the bq
ls
command and supply the --transfer_run
flag. You can also supply the
--project_id
flag to specify a particular project. If resource_name
doesn't contain project information, the --project_id
value is used. If
--project_id
isn't specified, the default project is used. The --format
flag can be used to control the output format.
To view a particular number of transfer runs, supply the --max_results
flag. The command returns a page token you supply using the
--page_token
flag to see the next n configurations.
To list transfer runs based on run state, supply the --filter
flag.
bq ls \ --transfer_run \ --max_results=integer \ --transfer_location=location \ --project_id=project_id \ --filter=states:state, ... \ resource_name
Where:
- integer is the number of results to return.
- location is the location of the transfer configurations. The location is specified when you create a transfer.
- project_id is your project ID.
- state, ... is one of the following or a comma-separated list:
SUCCEEDED
FAILED
PENDING
RUNNING
CANCELLED
- resource_name is the transfer's Resource Name (also referred to as the
transfer configuration). If you do not know the transfer's Resource Name,
issue the
bq ls --transfer_config --transfer_location=location
command to list all transfers.
Examples:
Enter the following command to display the 3 latest runs for
transfer configuration
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7
.
The output is controlled using the --format
flag.
bq ls \
--format=prettyjson \
--transfer_run \
--max_results=3 \
--transfer_location=us \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7
The command returns a next page token. Copy the page token and supply it in
the bq ls
command to see the next 3 results.
bq ls \
--format=prettyjson \
--transfer_run \
--max_results=3 \
--page_token=AB1CdEfg_hIJKL \
--transfer_location=us \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7
Enter the following command to display all failed runs for
transfer configuration
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7
.
bq ls \
--format=prettyjson \
--transfer_run \
--filter=states:FAILED \
--transfer_location=us \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7
API
Use the projects.locations.transferConfigs.list
method and specify the project ID using the parent
parameter.
Viewing transfer run details and log messages
When a transfer run appears in the run history, you can view the run details including log messages, warnings and errors, the run name, and the start and end time.
Required permissions
Viewing transfer run details requires bigquery.transfers.get
permissions.
The bigquery.user
predefined Cloud IAM role includes
bigquery.transfers.get
permissions.
For more information on Cloud IAM roles in BigQuery Data Transfer Service, see Access control reference.
Viewing details for a transfer run
To view transfer run details:
Classic UI
Go to the BigQuery web UI.
Click Transfers.
On the Transfers page, click the appropriate transfer in the list.
On the properties page, the run history appears below the transfer properties. Click a run to examine the details.
In the run details, note the Run Name and any error messages. This information is needed if you contact Google Cloud Support. The run details also include log messages and warnings.
CLI
To view transfer run details, enter the bq show
command and provide the
transfer run's Run Name using the --transfer_run
flag. The --format
flag
can be used to control the output format.
bq show \ --format=prettyjson \ --transfer_run run_name
Where:
- run_name is the transfer run's Run Name. You can retrieve the
Run Name by using the
bq ls
command.
Example:
Enter the following command to display details for transfer run
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g
.
bq show \
--format=prettyjson \
--transfer_run \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g
To view transfer log messages for a transfer run, enter the bq ls
command
with the --transfer_log
flag. You can filter log messages by type using
the --message_type
flag.
To view a particular number of log messages, supply the --max_results
flag. The command returns a page token you supply using the
--page_token
flag to see the next n messages.
bq ls \ --transfer_log \ --max_results=integer \ --message_type=messageTypes:message_type \ run_name
Where:
- integer is the number of log messages to return.
- message_type is the type of log message to view (a single value
or a comma-separated list):
INFO
WARNING
ERROR
- run_name is the transfer run's Run Name. You can retrieve the
Run Name using the
bq ls
command.
Examples:
Enter the following command to view the first 2 log messages for transfer
run
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g
.
bq ls \
--transfer_log \
--max_results=2 \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g
The command returns a next page token. Copy the page token and supply it in
the bq ls
command to see the next 2 results.
bq ls \
--transfer_log \
--max_results=2 \
--page_token=AB1CdEfg_hIJKL \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g
Enter the following command to view only error messages for transfer run
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g
.
bq ls \
--transfer_log \
--message_type=messageTypes:ERROR \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g
API
Use the projects.transferConfigs.runs.transferLogs.list
method and supply the transfer run's Run Name using the parent
parameter.
Updating a transfer
Once the transfer is added, you can edit the transfer. You can edit any of the fields populated during transfer creation except for the Source:
- Destination dataset
- Display name
- Any of the parameters specified for the specific transfer type
- Run notification settings
Required permissions
Updating a transfer requires bigquery.transfers.update
permissions. The
bigquery.admin
predefined Cloud IAM role includes
bigquery.transfers.update
permissions.
For more information on Cloud IAM roles in BigQuery Data Transfer Service, see Access control reference.
Updating a transfer
To update a transfer:
Classic UI
Go to the BigQuery web UI.
Click Transfers.
On the Transfers page, click the appropriate transfer in the list.
Click Edit to update the transfer configuration.
When you have finished making changes, click Save.
CLI
Enter the bq update
command, provide the transfer configuration's
Resource Name using the --transfer_config
flag, and supply the
--display_name
, --target_dataset
, --refresh_window_days
, or --params
flags.
bq update \ --display_name='name' \ --target_dataset=dataset \ --params='parameters' \ --refresh_window_days=integer \ --transfer_config \ resource_name
Where:
- name is the display name for the transfer configuration.
- dataset is the target dataset for the transfer configuration.
- parameters contains the parameters for the transfer configuration
in JSON format. For example:
--params='{"param":"param_value"}'
. The following parameters are editable:- Google Ads:
customer_id
- Campaign Manager:
bucket
andnetwork_id
- Google Ad Manager:
bucket
andnetwork_code
- Google Merchant Center:
merchant_id
- Google Play:
bucket
andtable_suffix
- Search Ads 360:
agency_id
,advertiser_id
,include_removed_entities
,table_filter
, andcustom_floodlight_variables
- YouTube Channel:
page_id
andtable_suffix
- YouTube Content Owner:
content_owner_id
andtable_suffix
- Google Ads:
- integer is a value from 0 to 30. For information on setting the refresh window, see the documentation for your transfer type.
- resource_name is the transfer's Resource Name (also referred to as the
transfer configuration). If you do not know the transfer's Resource Name,
issue the
bq ls --transfer_config --transfer_location=location
command to list all transfers.
Examples:
Enter the following command to update the display name, target dataset,
refresh window, and parameters for Google Ads transfer
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7
.
bq update \
--display_name='My changed transfer' \
--target_dataset=mydataset2 \
--params='{"customer_id":"123-123-5678"}' \
--refresh_window_days=3 \
--transfer_config \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7
API
Use the projects.transferConfigs.patch
method and supply the transfer's Resource Name using the
transferConfig.name
parameter. If you do not know the transfer's Resource
Name, issue the
bq ls --transfer_config --transfer_location=location
command to list all transfers or call the
projects.locations.transferConfigs.list
method and supply the project ID using the parent
parameter.
Setting up backfills and refresh runs
Refreshing
Note that backfills are not available for these types of transfers. However, you can set up a refresh run.
- Cloud Storage transfers
- Copying datasets
Backfilling
You can manually initiate data backfills at any time. In addition to source limits, the BigQuery Data Transfer Service supports a maximum of 180 days per backfill request. Simultaneous backfill requests are not supported.
When backfilling large date ranges, break your backfill requests into 180 day chunks and wait for the previous backfill request to finish before creating another one.
For information on how much data is available for backfill, see the documentation for your data source:
- Campaign Manager
- Google Ad Manager
- Google Ads
- When you set up a backfill for Google Ads, snapshots of Match Tables
are taken once a day and stored in the partition for the latest run date.
When you schedule a backfill, Match Table snapshots for the following tables
are NOT updated:
- Ad
- AdGroup
- AgeRange
- Audience
- BidGoal
- Budget
- Campaign
- Criteria
- Customer
- Gender
- Keyword
- LocationBasedCampaignCriterion
- ParentalStatus
- Placement
- Video
- When you set up a backfill for Google Ads, snapshots of Match Tables
are taken once a day and stored in the partition for the latest run date.
When you schedule a backfill, Match Table snapshots for the following tables
are NOT updated:
- Google Merchant Center (beta)
- Google Play (beta)
- Search Ads 360
- When you set up a backfill for Search Ads 360, snapshots of Match Tables
are taken once a day and stored in the partition for the latest run date.
When you schedule a backfill, Match Table snapshots for the following tables
are NOT updated:
- Account
- Ad
- Advertiser
- AdGroup
- AdGroupTarget
- BidStrategy
- Campaign
- CampaignTarget
- FeedItem
- FloodlightActivity
- Keyword
- NegativeAdGroupKeyword
- NegativeAdGroupTarget
- NegativeCampaignKeyword
- NegativeCampaignTarget
- ProductAdvertised
- ProductGroup
- ProductLeadAndCrossSellFloodlightStats
- Video
- Placement
- Video
- When you set up a backfill for Search Ads 360, snapshots of Match Tables
are taken once a day and stored in the partition for the latest run date.
When you schedule a backfill, Match Table snapshots for the following tables
are NOT updated:
- YouTube - Channel Reports
- YouTube - Content Owner Reports
Note that backfills are not available for Cloud Storage (beta) transfers. However, you can set up a refresh run of a Cloud Storage transfer.
Required permissions
Scheduling a backfill requires bigquery.transfers.update
permissions. The
bigquery.admin
predefined Cloud IAM role includes
bigquery.transfers.update
permissions.
For more information on Cloud IAM roles in BigQuery Data Transfer Service, see Access control reference.
Scheduling a backfill
To schedule a backfill:
Classic UI
- Go to the BigQuery web UI. BigQuery web UI
- Click Transfers.
- On the Transfer page, click the appropriate transfer.
Click Schedule Backfill.
In the Schedule Run dialog:
- For Data Start Date, enter or choose the appropriate date in MM/DD/YYYY format.
- For Data End Date, enter or choose the appropriate date in MM/DD/YYYY format.
- Click Ok.
CLI
Enter the bq mk
command, supply the --transfer_run
flag, and specify the
--start_time
and --end_time
.
bq mk \ --transfer_run \ --start_time='start_time' \ --end_time='end_time' \ resource_name
Where:
start_time and end_time are timestamps that end in Z or contain a valid time zone offset. For example:
2017-08-19T12:11:35.00Z
2017-05-25T00:00:00+00:00
resource_name is the transfer's Resource Name (also referred to as the transfer configuration). If you do not know the transfer's Resource Name, issue the
bq ls --transfer_config --transfer_location=location
command to list all transfers.
Examples:
Enter the following command to schedule a backfill for transfer
configuration
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7
.
bq mk \
--transfer_run \
--start_time 2017-05-25T00:00:00Z \
--end_time 2017-05-25T00:00:00Z \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7
API
Use the projects.locations.transferConfigs.scheduleRuns
method and provide the transfer configuration resource using the parent
parameter.
Updating credentials
A transfer uses the credentials of the user that created it. If you need to change the user attached to a transfer configuration, you can update the transfer's credentials. This is useful if the user who created the transfer is no longer with your organization.
Required permissions
Updating credentials requires bigquery.transfers.update
permissions. The
bigquery.admin
predefined Cloud IAM role includes
bigquery.transfers.update
permissions.
For more information on Cloud IAM roles in BigQuery Data Transfer Service, see Access control reference.
Updating a transfer's credentials
To update the credentials for a transfer:
Classic UI
- Go to the BigQuery web UI. BigQuery web UI
- Click Transfers.
- On the Transfer page, click the appropriate transfer.
- Click Update credentials.
- Click OK when prompted.
- Sign into your Google account and click Allow to give
the BigQuery Transfer Service permission to view your
reporting data and to access and manage the data in
BigQuery. You must allow pop-ups from
bigquery.cloud.google.com
to view the permissions window.
CLI
Enter the bq update
command, provide the transfer configuration's
Resource Name using the --transfer_config
flag, and supply the
--update_credentials
flag.
bq update \ --update_credentials=boolean \ --transfer_config \ resource_name
Where:
- boolean is a boolean value indicating whether the credentials should be updated for the transfer configuration.
- resource_name is the transfer's Resource Name (also referred to
as the transfer configuration). If you do not know the transfer's Resource
Name, issue the
bq ls --transfer_config --transfer_location=location
command to list all transfers.
Examples:
Enter the following command to update the credentials for Google Ads
transfer
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7
.
bq update \
--update_credentials=true \
--transfer_config \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7
API
Use the projects.transferConfigs.patch
method and supply the authorizationCode
and updateMask
parameters.
Disabling a transfer
When you disable a transfer, disabled is added to the transfer name. When the transfer is disabled, no new transfer runs are scheduled, and no new backfills are allowed. Any transfer runs in progress are completed.
Disabling a transfer does not remove any data already transferred to BigQuery. Data previously transferred incurs standard BigQuery storage costs until you delete the dataset or delete the tables.
Required permissions
Disabling a transfer requires bigquery.transfers.update
permissions. The
bigquery.admin
predefined Cloud IAM role includes
bigquery.transfers.update
permissions.
For more information on Cloud IAM roles in BigQuery Data Transfer Service, see Access control reference.
Disabling a transfer
To disable a transfer:
Classic UI
Go to the classic BigQuery web UI.
Click Transfers.
Click the transfer you're disabling.
On the transfer properties page, click Disabled.
After disabling the transfer, click Save.
CLI
Disabling a transfer is not supported by the CLI.
API
Use the projects.locations.transferConfigs.patch
method and set disabled
to true
in the
projects.locations.transferConfig
resource.
Deleting a transfer
When a transfer is deleted, no new transfer runs are scheduled. Any transfer runs in progress are stopped.
Deleting a transfer does not remove any data already transferred to BigQuery. Data previously transferred incurs standard BigQuery storage costs until you delete the dataset or delete the tables.
Required permissions
Deleting a transfer requires bigquery.transfers.update
permissions. The
bigquery.admin
predefined Cloud IAM role includes
bigquery.transfers.update
permissions.
For more information on Cloud IAM roles in BigQuery Data Transfer Service, see Access control reference.
Deleting a transfer
To delete a transfer:
Classic UI
Go to the BigQuery web UI.
Click Transfers.
Click the transfer you're editing.
On the transfer properties page, click Delete.
When prompted, click Ok to remove the transfer.
CLI
Enter the bq rm
command and provide the transfer configuration's resource
name. You can use the -f
flag to delete a transfer config without
confirmation.
bq rm \
-f \
--transfer_config \
resource_name
Where:
- resource_name is the transfer's Resource Name which is also
referred to as the transfer configuration). If you do not know the
transfer's Resource Name, issue the
bq ls --transfer_config --transfer_location=location
command to list all transfers.
For example, enter the following command to delete transfer configuration
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7
.
bq rm \
--transfer_config \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7
API
Use the projects.locations.transferConfigs.delete
method and supply the resource you're deleting using the name
parameter.