如何将 BigQuery 脚本的结果写入 table?
How to write the result of a BigQuery script to a table?
我有一个 BigQuery SQL 脚本,如下所示:
DECLARE my_dates STRING;
SET report_dates = (
SELECT month FROM my_dataset.my_date_able)
);
EXECUTE IMMEDIATE format("""
SELECT * from
( select x,
y,
month,
sum(things) as num_things
FROM my_dataset.my_data
GROUP BY 1,2,3
)
PIVOT
(
sum(num_things) AS s
FOR month in %s
)
""", my_dates);
我想做的是找到一种简单的方法来执行此脚本并将结果写入另一个 table 但我无法弄清楚。看来我可能需要从模式创建一个 table,然后分别将每个调用插入 EXECUTE IMMEDIATE
- 肯定有更直接的东西吗?
您可以使用CREATE TABLE AS SELECT
语句:
DECLARE my_dates STRING;
SET report_dates = (
SELECT month FROM my_dataset.my_date_able)
);
EXECUTE IMMEDIATE format("""
CREATE TABLE `<yourproject>.<yourdataset>.<target_table_name>` AS
SELECT * from
( select x,
y,
month,
sum(things) as num_things
FROM my_dataset.my_data
GROUP BY 1,2,3
)
PIVOT
(
sum(num_things) AS s
FOR month in %s
)
""", my_dates);
BigQuery 将从源 table 推断架构,在所需位置创建 table 并填充查询结果。
我有一个 BigQuery SQL 脚本,如下所示:
DECLARE my_dates STRING;
SET report_dates = (
SELECT month FROM my_dataset.my_date_able)
);
EXECUTE IMMEDIATE format("""
SELECT * from
( select x,
y,
month,
sum(things) as num_things
FROM my_dataset.my_data
GROUP BY 1,2,3
)
PIVOT
(
sum(num_things) AS s
FOR month in %s
)
""", my_dates);
我想做的是找到一种简单的方法来执行此脚本并将结果写入另一个 table 但我无法弄清楚。看来我可能需要从模式创建一个 table,然后分别将每个调用插入 EXECUTE IMMEDIATE
- 肯定有更直接的东西吗?
您可以使用CREATE TABLE AS SELECT
语句:
DECLARE my_dates STRING;
SET report_dates = (
SELECT month FROM my_dataset.my_date_able)
);
EXECUTE IMMEDIATE format("""
CREATE TABLE `<yourproject>.<yourdataset>.<target_table_name>` AS
SELECT * from
( select x,
y,
month,
sum(things) as num_things
FROM my_dataset.my_data
GROUP BY 1,2,3
)
PIVOT
(
sum(num_things) AS s
FOR month in %s
)
""", my_dates);
BigQuery 将从源 table 推断架构,在所需位置创建 table 并填充查询结果。