我们在流模式中有一个用例,我们希望跟踪bigtable上的一个计数器,该计数器来自需要增量操作的管道(一些#项已完成处理)。从看https://cloud.google.com/bigtable/docs/dataflow-hbase,我看到这个客户端不支持hbase api的追加/增量操作。所述原因是批处理模式下的重试逻辑,但如果dataflow只保证一次,为什么支持它是个坏主意,因为我确定增量只调用了一次?我想知道我错过了什么。
还有,是吗 CloudBigTableIO
在流模式下可用还是仅与批处理模式绑定?我想我们可以在管道中直接使用bigtable hbase客户机,但是连接器似乎有一些很好的属性,比如我们想要利用的连接池,这就是问题所在。
2条答案
按热度按时间2wnc66cl1#
数据流(和其他系统)在出现故障和重试时提供一次执行的外观的方式是要求副作用(比如改变bigtable)是幂等的。“write”是幂等的,因为它在重试时被重写。通过包含一个确定性的“insert id”来消除插入的重复,可以使插入成为幂等的。
对于增量,情况并非如此。不支持它,因为重试时它不是幂等的,所以不支持一次执行。
qxgroojn2#
cloudbigtableio在流模式下可用。为了通过dataflowsdk支持这一点,我们必须实现dofn而不是sink。