如何使用BigQuery\u datatransfer Python客户端创建Adwords BigQuery传输和传输运行?

2024-10-03 21:24:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经能够成功地进行身份验证,并列出传输和传输运行。但我一直遇到无法创建传输的问题,因为传输配置不正确。你知道吗

以下是我尝试过的传输配置:

transferConfig = {
    'data_refresh_window_days': 1,
    'data_source_id': "adwords",
    'destination_dataset_id': "AdwordsMCC",
    'disabled': False,
    'display_name': "TestR",
    'name': "TestR",
    'schedule': "every day 07:00",
    'params': {
        "customer_id": "999999999" -- Changed Number
    }
}

response = client.create_transfer_config(parent, transferConfig)
print(response)

这就是我得到的错误:

Traceback (most recent call last):
File "./create_transfer.py", line 84, in <module>
    main()
File "./create_transfer.py", line 61, in main
    response = client.create_transfer_config(parent, transferConfig)
File "/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/google/cloud/bigquery_datatransfer_v1/gapic/data_transfer_service_client.py", line 438, in create_transfer_config
    authorization_code=authorization_code)
ValueError: Protocol message Struct has no "customer_id" field.
DDIS:bigquery siddharthsudheer$ ./create_transfer.py
Traceback (most recent call last):
File "./create_transfer.py", line 84, in <module>
    main()
File "./create_transfer.py", line 61, in main
    response = client.create_transfer_config(parent, transferConfig)
File "/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/google/cloud/bigquery_datatransfer_v1/gapic/data_transfer_service_client.py", line 438, in create_transfer_config
    authorization_code=authorization_code)
ValueError: Protocol message Struct has no "customer_id" field.

Tags: inpyclientidconfigdatamainresponse
1条回答
网友
1楼 · 发布于 2024-10-03 21:24:01

通过将params定义为类google.protobuf.struct_pb2.Struct,我成功地通过API设置了数据传输。你知道吗

请尝试添加以下内容:

from google.protobuf.struct_pb2 import Struct

params = Struct()
params["customer_id"] = "999999999"

然后将transferConfig更改为:

transferConfig = {
    'data_refresh_window_days': 1,
    'data_source_id': "adwords",
    'destination_dataset_id': "AdwordsMCC",
    'disabled': False,
    'display_name': "TestR",
    'name': "TestR",
    'schedule': "every day 07:00",
    'params': params
    }
}

相关问题 更多 >