用户工具


etl时要做到数据不丢失,要满足如下条件

  • 数据源消费可回溯
    • 如kafka,自动控制offset时就可以消费任意数据,程序失败重启时,可以重复消费失败的数据
  • 数据持久化后必须可查询
    • 查询不确定数据,判断其是否处理完。

例子

  1. 从数据源读取消息A
  2. 处理消息A
  3. 将消息A的offset持久化到文件
  4. 读取消息B
  5. 程序崩溃
  6. 程序重启
  7. 读取持久化文件(读取上次完成的位置)
  8. 读取消息B
  9. 判断消息B是否处理完成
    1. 消息B处理完成,读取消息C…
    2. 消息B未处理完成,处理消息B…