数据同步链路

196 阅读1分钟

基于flink搭建流批一体的数据同步链路。

对来自mysql、离线数据、用户点击事件等数据同步到ES引擎,供业务方检索。这类需求可以归纳为两类:流处理和批处理。该系统分3部分构成:事件源产生、数据组装、数据写入。

事件源产生

①mysql

使用dts服务,监听增量数据变更,产生mq。

②odps

离线历史数据,用读文件的方式,发送mq。

以上全量+增量的方式,实现完整的业务数据源监听。

③用户行为

用户点击出价等行为,一样也发出mq。

事件源产生,将离线数据的批处理 转为mq,和流处理统一输出。对应flink的source

数据组装

根据配置的规则,对订阅的消息进行数据组装,主要是泛化调用dubbo,由业务方组装数据

数据组装是根据配置,用配置的方式泛化调用dubbo接口,使业务变更修改无需开发。对应flink的filterMap

  • 数据写入

数据组装结果写入多个数据源。对应flink的sink

成果

稳定性

有guava限流服务,对于生产过快发生任务堆积时,用mq削峰填谷。消费者调并行度来水平扩容。

高可用

对于中间节点发生异常,flink的checkpoint机制保障任务重试到成功为止。对于脏数据,批处理的方式,重跑。