Die*_*rro 5 python google-bigquery google-cloud-platform
在 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))
Run Code Online (Sandbox Code Playgroud)
有什么办法可以用Python客户端来完成这个任务吗?谢谢!
仔细查看文档后,我得出结论,在 Python 脚本中选择时区是不可能的。
在API和参考文档中,您可以在transfer_config中找到您计划的查询的所有可能的参数。调度参数描述为:
数据传输时间表。如果数据源不支持自定义计划,则该字段应为空。如果为空,则将使用数据源的默认值。指定时间采用 UTC 时间。有效格式示例:每月的第一个、第三个星期一 15:30,一月、六月的每周三、星期五 13:15,以及季度的第一个星期日 00:00。
因此,在控制台中,所选时区仅用于显示目的,因为时间会转换为UTC 时间以便运行计划的查询。
此外,作为额外信息,我想指出,在 App Engine 中,您可以使用cron.yaml选择计划作业的时区。您可以在此处查看时区参数。
我希望它能澄清你对此的疑问。
| 归档时间: |
|
| 查看次数: |
2232 次 |
| 最近记录: |