我有一些查询想以顺序方式运行。是否可以在“大查询”中的一个预定查询下预定多个查询?谢谢
tack.imgur.com/flUN4.jpg
答案 0 :(得分:1)
如果您不需要所有中间表,仅对最终输出感兴趣,请考虑使用CTE。
NULL
您可以根据需要将所有这些链接在一起。
如果确实需要实现所有这些中间表,那么您将尝试使用ETL和编排工具(with first as (
select *, current_date() as todays_date from <table1>
),
second as (
select current_date(), concat(field1,field2) as new_field, count(*) as ct
from first
group by 1,2
)
select * from second
,dbt
等),或者需要编写自定义脚本来依次执行多个命令
答案 1 :(得分:0)
目前还不是,但是4月份Google Cloud Next宣布了一个BigQuery中的脚本支持Alpha程序。您可以遵循relevant feature request for updates。同时,您可以考虑使用Cloud Composer执行多个顺序查询,或者使用App Engine cron和一些代码来定期执行顺序执行。
答案 2 :(得分:0)
我不确定100%是否是您要的内容,但我有信心您不需要为此编排很多查询。使用INSERT...SELECT
语法可能很简单,如下所示:
INSERT INTO
YourDataset.AdServer_Refine
SELECT
Placement_ExtID,
COALESCE(m.New_Ids,a.Placement_ExtID) AS New_Ids,
m.Labels,
CONCAT(Date," - ",New_Ids) AS Concatenated,
a.Placement_strategy,
a.Campaign_Id,
a.Campaign,
a.Cost,
a.Impressions,
a.Clicks,
a.C_Date AS Current_date,
a.Date
FROM
YourDataset.AdServer AS a
LEFT JOIN
YourDataset.Matching AS m
USING(Placement_ExtID)
WHERE
a.Date = CURRENT_DATE()
这将插入查询的SELECT
部分输出的所有行(您可以通过运行SELECT
轻松地测试输出)。
另一种选择是创建一个计划查询,该查询将从上面查询的SELECT部分输出到所需的表。
如果这没有达到您的期望,请澄清问题并发表评论,我很乐意尝试完善答案。