【问题标题】:Google BigQuery data transfer - dataset copyGoogle BigQuery 数据传输 - 数据集副本
【发布时间】:2021-09-28 05:06:47
【问题描述】:

我的 Google 项目 project-everest:evr_dataset 中有一个 BigQuery 数据集,我想将其表数据复制到另一个项目 project-alps:alp_dataset 中的另一个 BigQuery 数据集。

我尝试使用 DTS - 数据传输服务来安排每天的摄取作业,但我没有看到任何从另一个项目中选择目标数据集的选项?谁能告诉我如何启用跨项目 DTS?

【问题讨论】:

    标签: google-bigquery dataset


    【解决方案1】:

    您可以使用下面的python函数来创建大查询数据传输客户端和 通过指定源和目标项目 ID,将数据集从一个项目复制到另一个项目。您还可以安排数据传输。 在下面的方法中,它设置为 24 小时(每天)。

    def copy_dataset(override_values={}):
        # [START bigquerydatatransfer_copy_dataset]
        from google.cloud import bigquery_datatransfer
    
        transfer_client = bigquery_datatransfer.DataTransferServiceClient()
    
        destination_project_id = "my-destination-project"
        destination_dataset_id = "my_destination_dataset"
        source_project_id = "my-source-project"
        source_dataset_id = "my_source_dataset"
        # [END bigquerydatatransfer_copy_dataset]
        # To facilitate testing, we replace values with alternatives
        # provided by the testing harness.
        destination_project_id = override_values.get(
            "destination_project_id", destination_project_id
        )
        destination_dataset_id = override_values.get(
            "destination_dataset_id", destination_dataset_id
        )
        source_project_id = override_values.get("source_project_id", source_project_id)
        source_dataset_id = override_values.get("source_dataset_id", source_dataset_id)
        # [START bigquerydatatransfer_copy_dataset]
        transfer_config = bigquery_datatransfer.TransferConfig(
            destination_dataset_id=destination_dataset_id,
            display_name="Your Dataset Copy Name",
            data_source_id="cross_region_copy",
            params={
                "source_project_id": source_project_id,
                "source_dataset_id": source_dataset_id,
            },
            schedule="every 24 hours",
        )
        transfer_config = transfer_client.create_transfer_config(
            parent=transfer_client.common_project_path(destination_project_id),
            transfer_config=transfer_config,
        )
        print(f"Created transfer config: {transfer_config.name}")
        # [END bigquerydatatransfer_copy_dataset]
        return transfer_config
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多