Working with transfers

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

  1. Go to the BigQuery web UI.

    Go to the BigQuery web UI

  2. Click Transfers.

  3. On the Transfers page, click the appropriate transfer in the list.

  4. The transfer configuration appears on the properties page above the Run History. The following example shows the configuration properties for a Google Ads transfer.

    Transfer configuration

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:

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

  1. Go to the BigQuery web UI.

    Go to the BigQuery web UI

  2. 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

  1. Go to the BigQuery web UI.

    Go to the BigQuery web UI

  2. Click Transfers.

  3. On the Transfers page, click the appropriate transfer in the list.

  4. On the properties page, the run history appears below the transfer properties.

    Run history

  5. (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
Run success icon The transfer run was successful.
Run failure icon The transfer run failed.
Run warning icon 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

  1. Go to the BigQuery web UI.

    Go to the BigQuery web UI

  2. Click Transfers.

  3. On the Transfers page, click the appropriate transfer in the list.

  4. On the properties page, the run history appears below the transfer properties. Click a run to examine the details.

  5. 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.

    Run details

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

  1. Go to the BigQuery web UI.

    Go to the BigQuery web UI

  2. Click Transfers.

  3. On the Transfers page, click the appropriate transfer in the list.

  4. Click Edit to update the transfer configuration.

  5. 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 and network_id
    • Google Ad Manager: bucket and network_code
    • Google Merchant Center: merchant_id
    • Google Play: bucket and table_suffix
    • Search Ads 360: agency_id, advertiser_id, include_removed_entities, table_filter, and custom_floodlight_variables
    • YouTube Channel: page_id and table_suffix
    • YouTube Content Owner: content_owner_id and table_suffix
  • 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.

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
  • 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
  • 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

  1. Go to the BigQuery web UI. BigQuery web UI
  2. Click Transfers.
  3. On the Transfer page, click the appropriate transfer.
  4. Click Schedule Backfill.

    Schedule backfill

  5. 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.

    Schedule backfill

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

  1. Go to the BigQuery web UI. BigQuery web UI
  2. Click Transfers.
  3. On the Transfer page, click the appropriate transfer.
  4. Click Update credentials.
  5. Click OK when prompted.
  6. 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

  1. Go to the classic BigQuery web UI.

    Go to the classic BigQuery web UI

  2. Click Transfers.

  3. Click the transfer you're disabling.

  4. On the transfer properties page, click Disabled.

    Disable transfer

  5. 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

  1. Go to the BigQuery web UI.

    Go to the classic BigQuery web UI

  2. Click Transfers.

  3. Click the transfer you're editing.

  4. On the transfer properties page, click Delete.

  5. 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:

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.

Var denne siden nyttig? Si fra hva du synes:

Send tilbakemelding om ...

BigQuery Data Transfer Service