前言:目前flink cdc+hudi可以直接从类似于mysql的数据源进行数据集成,但是考虑到mysql负载(IO、CPU等),一般情况下,会先将binlog采集到类似于kafka的消息流平台中,后续由flink消费写入hudi表。
本篇文章主要调研将binlog写入到流消息平台的方案,maxwell、canal的采集工具不再本次讨论中。
一、流数据存储方案
1.1、Kafka:分布式消息流平台
● 流数据无法持久化存储(服务和存储一体、存储有限)
● 水平扩展复杂度高
1.2、Pulsar:分布式消息流平台
● 流数据无法持久化存储(存储成本高)
● 灵活的计算存储分离
● pulsar在2.1之后版本拥有分层存储能力,可将历史数据存入hdfs或s3,pulsar sql可以查询
1.3、Pravega:分布式流数据存储平台
● 流数据存储在hdfs、s3的存储系统中
● 二级存储
二、binlog采集方案
1.1、debezium + Pravega:多表和topic对应发送
参考:https://cncf.pravega.io/blog/2022/08/16/change-data-capture-with-pravega-debezium/
1.2、debezium + Pulsar:多表和topic对应发送
https://pulsar.apache.org/docs/3.1.x/io-cdc-debezium/