[英]How to create BigQuery Data Transfer w/ Python + Service Account?
[英]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.