etl时要做到数据不丢失,要满足如下条件 * 数据源消费可回溯 * 如kafka,自动控制offset时就可以消费任意数据,程序失败重启时,可以重复消费失败的数据 * 数据持久化后必须可查询 * 查询不确定数据,判断其是否处理完。 ===== 例子 ===== - 从数据源读取消息A - 处理消息A - 将消息A的offset持久化到文件 - 读取消息B - 程序崩溃 - 程序重启 - 读取持久化文件(读取上次完成的位置) - 读取消息B - 判断消息B是否处理完成 - 消息B处理完成,读取消息C... - 消息B未处理完成,处理消息B...