如何在不复制行的情况下将具有相同模式的两个数据集连续合并在一起?

时间:2019-05-06 02:18:07

标签: sql google-bigquery

在Google Cloud Platform上,我有多个结算帐户。对于每个结算帐户,我创建了一个计划导出到BigQuery的文件,该导出每天要执行多次。

不过,我想对我所有的结算帐户进行概述。我想创建一个包含所有帐单帐户的主数据表。

所有数据表都具有完全相同的架构。一些示例字段:

cost:FLOAT
sku:STRING
service:STRING

我已经通过JOIN查询成功连接了我的两个数据表:

SELECT * FROM `TABLE 1`
UNION ALL 
  SELECT * FROM `TABLE 2`

查询后,单击“保存结果”->“ BigQuery表”。但是,我相信这只是一次出口。

我想定期更新(例如,每3小时更新一次),而不必重复输入。

如何在确保没有重复行的同时连续合并这些数据表?换句话说,对于同时出现在两个表中的新条目,我如何仅将那些新条目追加到新的主表中?

1 个答案:

答案 0 :(得分:1)

使用视图:

create view v_t as
    select * from `TABLE 1`
    union all
    select * from `TABLE 2`;

这将始终是最新的,因为查询表时会引用这些表。

注意:您可以通过运行查询并选择“创建视图”,使用BQ查询界面创建视图。实际上,您不需要运行查询,但是我总是这样做只是为了确保。