簡體   English   中英

如何使用 Python 創建 BigQuery 數據傳輸服務

[英]How to create BigQuery Data Transfer Service using Python

我嘗試使用 bigquery_datatransfer 創建數據傳輸服務。 我使用了以下python庫,

pip install --upgrade google-cloud-bigquery-datatransfer

使用的方法

create_transfer_config(父,transfer_config)

我已經為data_source_id定義了 transfer_config 值:amazon_s3

transfer_config = {
    "destination_dataset_id": "My Dataset",
    "display_name": "test_bqdts",
    "data_source_id": "amazon_s3",
    "params": {
        "destination_table_name_template":"destination_table_name",
        "data_path": <data_path>,
        "access_key_id": args.access_key_id,
        "secret_access_key": args.secret_access_key,
        "file_format": <>
    },
    "schedule": "every 10 minutes"
}

但是在運行腳本時出現以下錯誤,

ValueError: Protocol message Struct has no "destination_table_name_template" field.

無法識別參數中給出的字段。 另外,我找不到要在“params”結構中定義的字段是什么

要成功創建數據傳輸作業,在 transfer_config 的“params”中定義哪些字段?

正如您在文檔中所見,您應該嘗試將代碼放入google.protobuf.json_format.ParseDict()函數中。

transfer_config = google.protobuf.json_format.ParseDict(
    {
        "destination_dataset_id": dataset_id,
        "display_name": "Your Scheduled Query Name",
        "data_source_id": "scheduled_query",
        "params": {
            "query": query_string,
            "destination_table_name_template": "your_table_{run_date}",
            "write_disposition": "WRITE_TRUNCATE",
            "partitioning_field": "",
        },
        "schedule": "every 24 hours",
    },
    bigquery_datatransfer_v1.types.TransferConfig(),
)

如果對您有幫助,請告訴我

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM