gpt4 book ai didi

python - 如何在具有时区支持的 BigQuery 中设置计划查询(通过 Python SDK)

转载 作者:行者123 更新时间:2023-12-02 09:42:05 26 4
gpt4 key购买 nike

在 BigQuery UI 中,我可以安排特定时区的查询(如下面的屏幕截图所示)。

通过这些设置,我可以在正确的本地时间安排查询,但是当我尝试使用 Python 自动执行此过程时,我看不到任何指定时区的选项 ( https://cloud.google.com/bigquery/docs/scheduling-queries )

def create_scheduled_query(project_id, dataset_id, query_string, dest_table, write_disposition=WriteDisposition.WRITE_TRUNCATE):
parent = client.project_path(project_id)

transfer_config = google.protobuf.json_format.ParseDict(
{
"destination_dataset_id": dataset_id,
"display_name": dest_table,
"data_source_id": "scheduled_query",
"params": {
"query": query_string,
"destination_table_name_template": dest_table,
"write_disposition": write_disposition,
"partitioning_field": "",
},
"schedule": "every day 06:00", # How can add timezones here?
},
bigquery_datatransfer_v1.types.TransferConfig(),
)

response = client.create_transfer_config(
parent, transfer_config, authorization_code=authorization_code
)

print("Created scheduled query '{}'".format(response.name))

有什么方法可以使用 Python 客户端来完成此任务吗?谢谢!

最佳答案

仔细查看文档后,我得出结论,在 Python 脚本中选择时区是不可能的。

APIs and Reference document内,您可以在 transfer_config 中找到您计划查询的所有可能参数。 schedule 参数描述为:

Data transfer schedule. If the data source does not support a custom schedule, this should be empty. If it is empty, the default value for the data source will be used. The specified times are in UTC. Examples of valid format: 1st,3rd monday of month 15:30, every wed,fri of jan,jun 13:15, and first sunday of quarter 00:00.

因此,在控制台中,所选时区仅用于显示目的,因为时间会转换为UTC时间以便运行您的计划查询。

此外,作为额外信息,我想指出,在 App Engine 中,您可以使用 cron.yaml 为您的预定作业选择时区。您可以看到时区参数here .

希望它能解答您的疑问。

关于python - 如何在具有时区支持的 BigQuery 中设置计划查询(通过 Python SDK),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59767487/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com