【发布时间】:2021-01-21 16:30:18
【问题描述】:
我有一个谷歌云 postgres 实例,我正在尝试使用运行联合查询的脚本将所有表从架构复制到单独的谷歌 bigquery 表中,该脚本将安排在某个时间间隔运行。我正在使用来自 information_schema 的数据,因为我希望脚本也能够选择新添加的表。
假设分析架构有 4 个表。
analytics.table1
analytics.table2
analytics.table3
analytics.table4
下面的示例代码生成分析架构中所有表的列表,并将其设置为变量名称“table_name”。
DECLARE table_name ARRAY<STRING>;
SET table_name=(
SELECT * FROM EXTERNAL_QUERY("<your_connection_id>",
"select table_schema||'.'||table_name as table_name from information_schema.tables
where table_schema='analytics';");
);
我对这个脚本的意图是使用以下查询创建四个单独的 bigquery 表
CREATE TABLE analytics.table1 AS
SELECT * FROM EXTERNAL_QUERY("<your_connection_id>", "SELECT * FROM analytics.table1");
CREATE TABLE analytics.table2 AS
SELECT * FROM EXTERNAL_QUERY("<your_connection_id>", "SELECT * FROM analytics.table2");
CREATE TABLE analytics.table3 AS
SELECT * FROM EXTERNAL_QUERY("<your_connection_id>", "SELECT * FROM analytics.table3");
CREATE TABLE analytics.table4 AS
SELECT * FROM EXTERNAL_QUERY("<your_connection_id>", "SELECT * FROM analytics.table4");
循环遍历我的表“table_name”列表以使用单独的 sql 语句创建这些表的最佳方法是什么?
【问题讨论】:
标签: postgresql google-bigquery dynamic-sql