在 BigQuery 中安排一系列 DML 语句

Posted

技术标签:

【中文标题】在 BigQuery 中安排一系列 DML 语句【英文标题】:Schedule a sequence of DML statements in BigQuery 【发布时间】:2019-03-24 13:01:36 【问题描述】:

我创建了一个 BQ 表,需要在其上安排一系列 DML 语句(插入和合并)。我正在尝试复制 Oracle PL/SQL 功能,您可以在其中将 DML 语句分组到可以调度的单个过程中。

因此,目标是 (i) 将一系列 DML 语句组合成一个脚本,以及 (ii) 安排脚本的执行。提前感谢您的帮助。

【问题讨论】:

嗨 Denim,据我所知,燕鸥 PL/SQL 不是 BigQuery 术语。无论如何,在 BigQuery 中你有一个合并命令,你在使用它吗?在link 中可以找到一些示例。如果这没有帮助,您能否提供 SQL 示例以更好地阐明什么不起作用 谢谢塔米尔。我指的是 Oracle PL/SQL 功能。问题是如何将需要按顺序运行的 DML 语句分组到一个简单的脚本中并执行它。 唯一的方法是使用一个 API 来包装你的 SQL 代码,尽管我觉得这不是你想要做的。如果确实如此,您将需要向 Bigquery 团队提交更改请求 请留意未来的发行说明。 BigQuery 脚本和存储过程支持是即将推出的功能。 您可以使用Magnus 轻松完成此操作。 Try It now。根据需要添加尽可能多的 BigQuery 任务,并使用预定义的时间表或使用石英 cron 语法进行微调来安排结果工作流 【参考方案1】:

现在计划查询支持脚本。但是,脚本查询在计划时暂时不支持设置目标表。您仍然需要使用 DDL/DML 来更改现有表。

CREATE OR REPLACE destinationTable AS
SELECT *
FROM sourceTable
WHERE date >= maxDate

【讨论】:

以上是关于在 BigQuery 中安排一系列 DML 语句的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery INSERT DML 语句限制

在BigQuery中封装复杂代码

Bigquery DML - SQL 输出

如何使用 DML 语法在 BigQuery 中插入带有 RECORD 字段的记录?

BigQuery - 分区表上的 DML 支持

MYSQL学习系列--DML语句