开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

咨询一下,Flink CDC读取Mysql binlog的时候是在哪里将binlog的数据转换成?

问题1:咨询一下,Flink CDC读取Mysql binlog的时候是在哪里将binlog的数据转换成RowData的呢,想看看varchar等字符型数据的编码转换逻辑?
问题2:这里的转换和io.debezium.connector.mysql.MySqlValueConverters里的转换有什么关联吗?

展开
收起
真的很搞笑 2023-08-01 14:36:53 151 0
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    Flink CDC 使用 Debezium 来读取 MySQL binlog 数据,并将其转换为 Flink 中的 RowData 格式。Debezium 是一个开源的 CDC 工具,它使用 MySQL Connector/J 驱动程序来连接 MySQL 数据库,并将 binlog 数据转换为 JSON 格式的记录。然后,Debezium 通过 Kafka 将这些 JSON 记录发送到 Flink 中,Flink 再将其转换为 RowData 格式进行处理。

    在 Flink 中,将 JSON 格式的记录转换为 RowData 格式的逻辑是由 Flink CDC 提供的内置反序列化器实现的。反序列化器将 JSON 格式的记录转换为 Flink 中的 RowData 格式,具体的编码转换逻辑在内置反序列化器中实现。如果您想查看具体的编码转换逻辑,可以查看 Flink CDC 中内置反序列化器的源代码。

    需要注意的是,Flink CDC 内置反序列化器默认使用 UTF-8 编码来处理 varchar 等字符型数据。如果您需要使用其他编码,可以通过指定 Debezium 数据库连接器的 "database.server.name" 配置项来覆盖默认设置。具体的配置方法,请参考 Flink CDC 官方文档中 "Debezium MySQL Connector" 部分的说明。

    2023-08-01 23:09:51
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    PolarDB-X 2.0 全局 Binlog 与备份恢复能 立即下载