如何在 BigQuery 中安排脚本?
Posted
技术标签:
【中文标题】如何在 BigQuery 中安排脚本?【英文标题】:How can I schedule a script in BigQuery? 【发布时间】:2019-10-17 08:10:45 【问题描述】:BigQuery 终于支持使用 ;在查询中,所以我可以在一个“块”中编写多个查询,如果我用分号分隔它们。 如果我手动运行代码,它可以工作。但我无法安排。
当我想安排时,我有两个选择:
-
(新)Web UI:我必须给出一个目标表。如果我不这样做,我将无法保存预定的查询。但是我所有的查询都是使用不同的“目标表”进行更新和插入。像这些:
更新project.exampledataset.a
设置日期 = current_date()
何时为真
;
插入project.otherdataset.b
选择 c,d
FROM project.otherdataset.c
所以我什至无法在 Web UI 中进行调度。
-
Classic UI:我试过这个,因为官方纪录片说我应该将“目标表”留空,Classic UI 允许。我可以设置调度,但它不运行,什么时候应该运行。我在电子邮件中收到错误消息“错误状态:查询中指定的数据集 ('') 与目标数据集 'exampledataset' 不一致。”
AIK 脚本(并使用分号)是 BigQuery 中的一项非常新的功能,但我希望有人可以帮助我。 是的,我知道我可以一个一个地安排每个查询,但我想用一个大脚本来解决它。
【问题讨论】:
这是一个错误。请关注issuetracker.google.com/issues/142639061,以便在问题解决时得到通知。 我知道了,谢谢云! 【参考方案1】:现在计划查询支持脚本。但是,脚本查询在计划时暂时不支持设置目标表。您仍然需要使用 DDL/DML 来更改现有表。
例如:
CREATE OR REPLACE TABLE destinationTable AS
SELECT *
FROM sourceTable
WHERE date >= maxDate
【讨论】:
【参考方案2】:看起来预定查询是之前定义的,目标数据集使用 APPEND/TRUNCATE 类型事务定义。将同一计划查询更新为 DML 查询时,GUI 不显示要更新为 NULL 的数据集字段/表名称。因此,考虑到计划查询中先前设置的数据集和表名,会出现此错误。
因此解决方法是删除预定查询并使用 DML 查询选项从头开始创建它。它对我有用。
【讨论】:
以上是关于如何在 BigQuery 中安排脚本?的主要内容,如果未能解决你的问题,请参考以下文章