我想知道是否有任何方法可以在ksqlDB表中实现键的原子性?因此,基本上我的用例是,我正在接收关于kafka主题的多个消息,并且我希望将它们原子地应用于表,以便物化视图是一致的,例如,我以稀疏格式在ksqlDB表中存储层次结构的用例:

现在假设k1和k2是table的组合键,在kafka topic上发布了以下两条消息:
{k1: k11, k2: 'All', v1: v111, v2: v211},
{k1: k11, k2: k21, v1: v121, v2: v221}现在,我希望确保这些消息以原子方式应用到ksqlDB表中,也就是说,要么两个消息都应用,要么都不应用,这样我的表总是一致的--有可能做到这一点吗?
发布于 2020-07-30 03:13:38
简短的回答很可能是否定的。
我并不是真的在跟表1中给出的稀疏格式的例子一样。
ksqlDB单独处理并应用每个接收到的事件。它没有任何机制来自动应用多个事件。
我不知道有什么流引擎可以自动应用两个事件。根据定义,流是无限的。引擎如何知道哪些事件需要原子应用,哪些不需要?
如果您可以生成必须在一条消息中一起原子应用的所有更新,那么ksqlDB将来可能会通过使用EXPLODE来支持原子应用,就像这里建议的那样:Is there a guarantee that all exploded rows in a stream will get updated into table at once?。
https://stackoverflow.com/questions/62814204
复制相似问题