正在计算什么?
ParDo |
---|
GroupByKey |
Flatten |
Combine |
组合转换 |
侧输入 |
源 API |
指标 |
有状态处理 |
Google Cloud Dataflow | Apache Flink | Apache Spark (基于 RDD/DStream) | Apache Spark 结构化流 (基于数据集) | Apache Samza | Apache Nemo | Hazelcast Jet | Twister2 | Python Direct FnRunner | Go Direct Runner |
---|
是:完全支持 批处理模式使用较大的捆绑大小。流模式使用较小的捆绑大小。 | 是:完全支持 ParDo 本身,作为使用 UDF 的按元素转换,在 Flink 中完全支持批处理和流处理。 | 是:完全支持 ParDo 将按元素转换应用为 Spark FlatMapFunction。 | 部分:在批处理模式中完全支持 ParDo 将按元素转换应用为 Spark FlatMapFunction。 | 是:完全支持 使用按元素转换支持。 | 是:完全支持 | 是:完全支持 | 是:完全支持 | ||
是:完全支持 | 是:完全支持 使用 Flink 的 keyBy 进行键分组。在流处理中按窗口分组(创建窗格)时,Flink 运行器使用 Beam 代码。这保证了对所有窗口化和触发机制的支持。 | 部分:在批处理模式中完全支持 使用 Spark 的 <tt>groupByKey</tt>。在流模式下使用多个触发器触发的 GroupByKey 正在开发中。 | 部分:在批处理模式中完全支持 使用 Spark 的 <tt>groupByKey</tt>。 | 是:完全支持 使用 Samza 的 partitionBy 进行键分组,并使用 Beam 的逻辑进行窗口聚合和触发。 | 是:完全支持 | 是:完全支持 | 是:完全支持 | ||
是:完全支持 | 是:完全支持 | 是:完全支持 | 部分:在批处理模式中完全支持 一些特殊情况,例如对空集合进行扁平化,尚不支持。 | 是:完全支持 | 是:完全支持 | 是:完全支持 | 是:完全支持 | ||
是:高效执行 | 是:完全支持 对批处理和流处理使用组合器进行预聚合。 | 是:完全支持 使用 Spark 的 <tt>combineByKey</tt> 和 <tt>aggregate</tt> 函数。 | 部分:在批处理模式中完全支持 使用 Spark 的 <tt>Aggregator</tt> 和 agg 函数 | 是:完全支持 使用组合器进行高效的预聚合。 | 是:完全支持 批处理模式使用预聚合 | 是:完全支持 批处理模式使用预聚合 | 是:完全支持 | ||
部分:通过内联支持 目前,组合转换在执行过程中会内联。结构后来会从名称中重新创建,但其他转换级信息(如果添加到模型中)将丢失。 | 部分:通过内联支持 | 部分:通过内联支持 | 部分:仅在批处理模式下通过内联支持 | 部分:通过内联支持 | 是:完全支持 | 部分:通过内联支持 | 部分:通过内联支持 | ||
是:流处理中存在一些大小限制 批处理模式支持分布式实现,但流模式可能会强制执行一些大小限制。两种模式都无法将查找直接推送到基于键的源中。 | 是:流处理中存在一些大小限制 批处理模式支持分布式实现,但流模式可能会强制执行一些大小限制。两种模式都无法将查找直接推送到基于键的源中。 | 是:完全支持 使用 Spark 的广播变量。在流模式下,侧输入可能会更新,但仅限于微批次之间。 | 部分:在批处理模式中完全支持 使用 Spark 的广播变量。 | 是:完全支持 使用 Samza 的广播运算符来分发侧输入。 | 是:完全支持 | 部分:存在限制 仅当侧输入源是有限的并且窗口化使用全局窗口时才支持 | 是:完全支持 | ||
是:完全支持 支持包括自动调优功能 (https://cloud.google.com/dataflow/service/dataflow-service-desc#autotuning-features)。 | 是:完全支持 | 是:完全支持 | 部分:仅限有限源 在微批处理模式下使用 Spark 的 DatasourceV2 API(Spark 中的持续流模式被标记为实验性,不支持聚合)。 | 是:完全支持 | 是:完全支持 | 是:完全支持 | 是:完全支持 | ||
部分 不支持 Gauge 指标。支持所有其他指标类型。 | 部分:支持所有指标类型。 仅支持尝试值。指标没有提交值。 | 部分:支持所有指标类型。 仅支持尝试值。指标没有提交值。 | 部分:在批处理模式下支持所有指标类型。 仅支持尝试值。指标没有提交值。 | 部分:支持 Counter 和 Gauge。 仅支持尝试值。指标没有提交值。 | 否:未实现 | 部分:支持所有指标类型,包括批处理和流模式。 不区分提交值和尝试值。 | 否:未实现 | ||
部分:非合并窗口 支持非合并窗口的状态。MapState、SetState 和 MultimapState 状态类型在以下情况下受支持:不使用 Streaming Engine 的 Java 管道;使用 Streaming Engine 且 Java SDK 版本为 2.58.0 或更高版本的 Java 管道。对于使用 Runner v2 的管道,不支持 SetState、MapState 和 MultimapState。 | 部分:非合并窗口 支持非合并窗口的状态。SetState 和 MapState 尚未支持。 | 部分:在批处理模式下完全支持 | 否:未实现 | 部分:非合并窗口 状态由 rocksDb KV 存储或内存中哈希映射支持,并使用变更日志持久化。 | 否:未实现 | 部分:非合并窗口 | 否:未实现 |
最后更新于 2024/10/31
您找到了您要找的一切吗?
所有内容都实用且清晰吗?您想更改什么内容吗?请告诉我们!