#apache flink:数据管理用例

57hvy0tb  于 2021-06-25  发布在  Flink
关注(0)|答案(1)|浏览(487)

我正在尝试构建数据管理(dm)解决方案,包括大容量数据摄取、传递一些数据域规则、替换(充实)、在将错误数据发送到下游系统之前标记错误数据。规则检查和值替换可以是一些简单的事情,比如数据元素应该满足的允许阈值数值,也可以是一些更复杂的事情,比如用主数据查找域值池。
你认为apache flink可以作为这种处理的一个很好的候选者吗?是否可以定义flink操作符来对流经它的每个元组进行查找(使用主数据)?我认为使用apache flink解决后一个问题有一些缺点:1)查找可能是一个阻塞操作,这会降低吞吐量;2)如果操作符函数必须从其他地方获取主数据,则无法执行检查点和持久化操作符状态。
你有什么想法?在上述用例中是否有其他最佳工具?
谢谢

col17t5w

col17t5w1#

简单的回答是“是”。你可以使用flink来完成你提到的所有事情,包括数据查找和扩展,需要注意的是,对于由操作符(如更新外部状态)引起的副作用,您最多只能保证一次或仅保证一次。您可以在特定操作符上使用更高的并行度来解决外部查找的额外延迟。
在没有更多信息的情况下,不可能给出准确的答案,例如,在您的情况下,什么是“高容量数据”、您的每事件延迟要求是什么、您有什么其他限制条件等等。但是,在一般意义上,在您承诺使用flink之前,您应该先看看spark流媒体和ApacheStorm并进行比较。spark和storm都有更大的社区和更多的文档,所以它可能会为您节省一些长期的痛苦。撰写本文时stackoverflow上的标记:spark streaming x 1746、apache storm x 1720、apache flink x 421
更重要的是,spark streaming与flink具有相似的语义,但可能会为您提供更好的批量数据吞吐量。或者,storm在概念上类似于flink(喷口/螺栓vs操作符),实际上在大多数情况下性能/吞吐量较低,但只是一个更成熟的框架。

相关问题