我们在Memsql下运行了一个Spark Cluster,我们运行了不同的管道,ETL设置如下。
我有些疑惑:
如果作业在转换阶段失败,那么从Kafka调查的消息会发生什么 - Memsql是否负责再次加载该消息 - 或者,数据是丢失的
如果数据丢失,我该如何解决这个问题,是否需要对此进行配置更改?
答案 0 :(得分:0)
目前,至少有一次语义在MemSQL Ops中不可用。它位于路线图上,将出现在Ops的未来版本中。
答案 1 :(得分:0)
如果还没有,你应该查看MemSQL 5.5 Pipelines。 http://blog.memsql.com/pipelines/
这个不是基于spark,(并且转换的方式有点不同,所以你可能需要重写代码),但我们现在有本地的kafka流。
我们使用原生版本获得一次的方式很简单;将数据库中的偏移量存储为与实际数据相同的原子事务。如果某些内容失败且交易未提交,则不会提交偏移,因此我们会自然地自动重试该分区偏移范围。