gpt4 book ai didi

apache-flink - Flink 动态表 vs Kafka Stream Ktable?

转载 作者:行者123 更新时间:2023-12-03 18:34:46 24 4
gpt4 key购买 nike

我正在阅读 kafka 流中连接的当前几个限制,例如 Ktable KTable 非键连接或 KTable GlobalKTable ....

我发现 Flink 似乎支持所有这些。从我读到的,动态表听起来像 KTable。

我想知道首先它们是否是相同的概念,然后 Flink 是如何实现这一点的,我找不到有关底层基础设施的文档。例如,我没有发现 GlobalKtable 发生的广播连接的概念。底层基础设施是否实现了动态表分布式??

最佳答案

Flink的动态表和Kafka的KTable不一样。

在 Flink 中,动态表是一个非常通用和广泛的概念,即随时间演化的表。这包括任意更改( INSERTDELETEUPDATE )。动态表不需要主键或唯一属性,但它可能有一个。

  • 一个 KStream是一种特殊类型的动态表,即只接收INSERT的动态表。变化,即一个不断增长的,只能追加的表。
  • 一个 KTable是另一种类型的动态表,即具有唯一键并随INSERT变化的动态表。 , DELETE , 和 UPDATE键上的变化。

  • Flink 支持以下 types of joins在动态表上。请注意,对 Kafka 连接的引用可能不是 100% 准确(很高兴修复错误!)。
  • Time-windowed joins应该对应KSQL的KStream - KStream加入
  • Temporal table joins类似于 KSQL 的 KStream - KTable加入。需要在查询中明确指定两个表之间的时间关系,以便能够对批处理/离线数据运行具有相同语义的相同查询。
  • Regular joins比 KSQL 的更通用 KTable - KTable连接,因为它们不需要输入表具有唯一键。此外,Flink 不区分主键或外键连接,但要求连接是等连接,即至少有一个相等谓词。此时,流式 SQL 规划器不支持广播转发连接(我认为这应该大致对应于 KTable - GlobalKTable 连接)。
  • 关于apache-flink - Flink 动态表 vs Kafka Stream Ktable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57118053/

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