bigqueryoperator 气流上的 Bigquery 脚本

Posted

技术标签:

【中文标题】bigqueryoperator 气流上的 Bigquery 脚本【英文标题】:Bigquery Scripting on a bigqueryoperator airflow 【发布时间】:2020-12-18 16:45:48 【问题描述】:

是否可以在气流 BigQueryOperator (airflow 1.10.12) 中执行 bigquery 脚本?有人能做到吗? 我尝试过这样的事情:

test = BigQueryOperator(
task_id='test',
sql="""DECLARE aaa STRING;
SET aaa = 'data';
CREATE OR REPLACE TABLE `project-id.dataset-id.TEST_DDL` as select aaa as TEST;""",
use_legacy_sql = False,
create_disposition=False,
write_disposition=False,
schema_update_options=False,
location='EU')

但我得到的只是“未找到:在 [3:9] 的美国位置未找到数据集”

【问题讨论】:

【参考方案1】:

实际上我发现了这个问题,它与 bigqueryoperator 相关。实际上,在编写脚本时,在 bigquery 插入作业中有 ni 引用的表和目标表。在这种情况下,bigquery 默认将工作地点设置在美国。就我而言,因为我的数据集在欧盟,所以工作失败了。并且 bigqueryoperator 中有一个 location 参数,但是在作业的配置对象中,而不是在作业引用对象中,它被操作员错误地传递了。这使它毫无用处。该问题已在气流 2 中得到纠正。

【讨论】:

以上是关于bigqueryoperator 气流上的 Bigquery 脚本的主要内容,如果未能解决你的问题,请参考以下文章

如何在 BigQueryOperator 上参数化 write_disposition?

BigQueryOperator 可以运行多个 SQL 文件吗?

可以使用气流 BigQueryOperator 制作 DDL bigquery 语句吗?

气流 - 试图循环操作员。执行不是等待实际操作完成

有没有办法在创建后编辑气流操作符?

BigQueryValueCheckOperator 和标准 sql