gpt4 book ai didi

join - 与谷歌数据流的复杂连接

转载 作者:行者123 更新时间:2023-12-04 11:35:47 25 4
gpt4 key购买 nike

我是一个新手,试图了解我们如何将批处理 ETL 过程重写到 Google Dataflow 中。我已经阅读了一些文档,运行了一些示例。

我提议新的 ETL 流程将由业务事件(即源 PCollection)驱动。这些将触发该特定业务实体的 ETL 过程。 ETL 过程将从源系统中提取数据集,然后将这些结果 (PCollections) 传递到下一个处理阶段。处理阶段将涉及各种类型的连接(包括笛卡尔连接和非键连接,例如日期带)。

所以这里有几个问题:

(1) 我提出的方法有效且有效吗?如果不是什么会更好,我还没有看到任何关于使用 Google Dataflow 的现实世界复杂 ETL 过程的演示,只有简单的场景。

是否有更适合的“更高级别”的 ETL 产品?我一直在关注 Spark 和 Flink 一段时间。

我们当前的 ETL 中等复杂,尽管只有大约 30 个核心表(经典的 EDW 维度和事实)和约 1000 个转换步骤。源数据很复杂(大约 150 个 Oracle 表)。

(2) 复杂的非键连接,如何处理?

我显然被 Google Dataflow 所吸引,因为它首先是一个 API,并且并行处理功能似乎非常适合(我们被要求从批处理转移到增量处理)。

用于此用例的 Dataflow 的一个很好的工作示例将真正插入采用!

谢谢,
迈克

最佳答案

听起来 Dataflow 很适合。我们允许您编写一个接受 PCollection 的管道。业务事件并执行 ETL。管道可以是批处理(定期执行)或流(每当输入数据到达时执行)。

大部分连接在 Dataflow 中相对易于表达。对于笛卡尔积,可以使用 side inputs 查看制作 PCollection 的内容可用作另一个 PCollection 中每个元素处理的输入.

你也可以看看使用 GroupByKey CoGroupByKey 实现连接。这些扁平化多个输入,并允许在一个地方使用相同的键访问所有值。您也可以使用 Combine.perKey计算与键关联的所有元素的关联和交换组合(例如,SUM、MIN、MAX、AVERAGE 等)。

日期带状连接听起来很适合 windowing它允许您编写一个消耗数据窗口的管道(例如,每小时窗口、每日窗口、每天滑动的 7 天窗口等)。

编辑:提及 GroupByKeyCoGroupByKey .

关于join - 与谷歌数据流的复杂连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35044083/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com