» google_bigquery_data_transfer_config

Represents a data transfer configuration. A transfer configuration contains all metadata needed to perform a data transfer.

To get more information about Config, see:

» Example Usage - Scheduled Query

data "google_project" "project" {}

resource "google_project_iam_member" "permissions" {
  role = "roles/iam.serviceAccountShortTermTokenMinter"
  member = "serviceAccount:service-${data.google_project.project.number}@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com"
}

resource "google_bigquery_data_transfer_config" "query_config" {

  depends_on = [google_project_iam_member.permissions]

  display_name = "my-query"
  location = "asia-northeast1"
  data_source_id = "scheduled_query"
  schedule = "first sunday of quarter 00:00"
  destination_dataset_id = "${google_bigquery_dataset.my_dataset.dataset_id}"
  params = {
    destination_table_name_template = "my-table"
    write_disposition = "WRITE_APPEND"
    query = "SELECT name FROM tabl WHERE x = 'y'"
  }
}

resource "google_bigquery_dataset" "my_dataset" {

  depends_on = [google_project_iam_member.permissions]

  dataset_id = "my_dataset"
  friendly_name = "foo"
  description = "bar"
  location = "asia-northeast1"
}

» Argument Reference

The following arguments are supported:

  • display_name - (Required) The user specified display name for the transfer config.

  • destination_dataset_id - (Required) The BigQuery target dataset id.

  • data_source_id - (Required) The data source id. Cannot be changed once the transfer config is created.

  • params - (Required) These parameters are specific to each data source.


  • schedule - (Optional) Data transfer schedule. If the data source does not support a custom schedule, this should be empty. If it is empty, the default value for the data source will be used. The specified times are in UTC. Examples of valid format: 1st,3rd monday of month 15:30, every wed,fri of jan, jun 13:15, and first sunday of quarter 00:00. See more explanation about the format here: https://cloud.google.com/appengine/docs/flexible/python/scheduling-jobs-with-cron-yaml#the_schedule_format NOTE: the granularity should be at least 8 hours, or less frequent.

  • data_refresh_window_days - (Optional) The number of days to look back to automatically refresh the data. For example, if dataRefreshWindowDays = 10, then every day BigQuery reingests data for [today-10, today-1], rather than ingesting data for just [today-1]. Only valid if the data source supports the feature. Set the value to 0 to use the default value.

  • disabled - (Optional) When set to true, no runs are scheduled for a given transfer.

  • location - (Optional) The geographic location where the transfer config should reside. Examples: US, EU, asia-northeast1. The default value is US.

  • project - (Optional) The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

» Attributes Reference

In addition to the arguments listed above, the following computed attributes are exported:

  • name - The resource name of the transfer config. Transfer config names have the form projects/{projectId}/locations/{location}/transferConfigs/{configId}. Where configId is usually a uuid, but this is not required. The name is ignored when creating a transfer config.

» Timeouts

This resource provides the following Timeouts configuration options:

  • create - Default is 4 minutes.
  • update - Default is 4 minutes.
  • delete - Default is 4 minutes.

» Import

Config can be imported using any of these accepted formats:

$ terraform import google_bigquery_data_transfer_config.default {{name}}

» User Project Overrides

This resource supports User Project Overrides.