Google BigQuery 数据传输 - 数据集复制

问题描述 投票:0回答:1

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

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

google-bigquery dataset
1个回答
0
投票

您可以使用下面的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
© www.soinside.com 2019 - 2024. All rights reserved.