首页 文章

使用连接从BigQuery读取批量数据

提问于
浏览
0

我有一个用例,我必须通过在20个不同的BQ表上应用左连接来读取BigQuery中的选定数据,对该数据应用转换,然后最终转储到最终的BQ表中 .

我有两种方法可以实现这一点,我尝试了样本数据(从20个表中共计10到12百万行)并获得如下结果:

方法1 - 为整个过程编写BQ兼容查询,并通过Apache Beam(使用BigQueryIO.readTableRows())触发相同的查询,最后将数据转储到目标BigQuery表 .

  • 使用n1-standard-4机器类型完成作业,作业在6:24分钟内完成 .

方法2 - 在Apache Beam中写入整个过程,避免在BQ中占用大量插槽 .

  • 使用n1-standard-4机器类型完成作业,作业在14:50分钟内完成 .

这里需要考虑的重要事项是,随着时间的推移,要加入的20个源表将继续增长,并且可能在不久的将来我们将拥有TB的数据 .

考虑到我们将来会有的数据增长,哪种方式更有效?

1 回答

  • 1

    有两个步骤 . 您是否尝试为第一个视图(处理20个表)创建视图,然后使用简单查询(甚至从UI)创建第二个步骤并将其保存到最终表中?

相关问题