【发布时间】:2021-12-10 01:09:40
【问题描述】:
我有两个需要合并的来源。假设这些源中的每一个都有大约 100M 行数据,并且我想将针对这些源运行的两个查询的结果连接起来。因此,从概念上讲,连接查询如下所示:
SELECT *
FROM
(query1 against ElasticSearch source -- results are of unknown size)
JOIN
(query2 against BigQuery source -- results are of unknown size)
ON query1.joinkey = query2.joinkey
换句话说,query1 的结果可以是 0 字节/行到 10GB/100M 行之间的任何地方。与query2的结果相同。
Apache Beam 或 Cloud Dataflow 如何处理“未知大小”的联接?例如,在我定义两个运行时查询的情况下。此外,对于上述情况,Apache Beam 是一个很好的资源还是有更好的选择?
我想在这两种尺寸可能是无限尺寸的情况下,最好将连接(至少在概念上)作为:
WITH query1 AS (
es_query -> materialize to BigQuery
)
SELECT *
FROM
query1 JOIN query2 USING (joinkey)
【问题讨论】:
标签: join google-cloud-platform google-cloud-dataflow apache-beam