现在我已经通过 BQ 界面安排了查询。它们工作但不能很好地扩展或迁移(跨开发和生产 gcp 项目)。因此,我尝试以可重现、可扩展和可迁移的方式进行预定查询。
'
我的查询很复杂,因此我很难通过命令运行它"
并通过 github 操作进行调度。'''
bq
这是最复杂的查询:
declare bq_last_id int64;
declare external_sql string;
set bq_last_id = (select max(id) from bq_dataset.bq_table);
set external_sql = '"select * from mysql_table where id > ('|| bq_last_id ||')"';
execute immediate 'select * from external_query("my-gcp-project.my-region.my-connection-name",'|| external_sql || ');'
总共有 20 个必须安排的查询。这是唯一一个增量或其他是删除和重新创建表的唯一一个,因此它们不像这个那么复杂。
我到目前为止所尝试的:
- 在 BQ 界面中创建按需查询,然后使用
bq mk
命令以时间戳作为变量运行它,如本答案所示。它的问题是我仍然必须手动创建按需查询,并且我必须在开发和生产项目中分别进行。 bq
我无法找到使用cmd创建按需查询的方法。- 我无法
bq query
运行查询(根本不是创建 bq 预定查询)。然后通过 gihub 操作安排它们。
任何有关正确语法或更好建议的帮助对我来说都非常有帮助。
谢谢。