Flink CDC系列之:Kafka JSON 序列化类型枚举

枚举概述

bash 复制代码
public enum JsonSerializationType

这个枚举定义了 Kafka Sink 支持的 JSON 序列化格式类型,主要用于配置选择不同的序列化器实现。

枚举值详解

DEBEZIUM_JSON - Debezium JSON 格式

bash 复制代码
/** Use {@link DebeziumJsonSerializationSchema} to serialize. */
DEBEZIUM_JSON("debezium-json")

对应的序列化器:DebeziumJsonSerializationSchema

Debezium 格式特点:

  • 标准格式:遵循 Debezium 的 CDC 数据格式标准
  • 完整元数据:包含丰富的源数据库元信息
  • Schema 信息:可选包含表结构信息
  • 广泛兼容:被很多数据集成工具原生支持

示例输出:

java 复制代码
{
  "before": null,
  "after": {
    "id": 1001,
    "name": "张三",
    "email": "zhangsan@example.com"
  },
  "source": {
    "version": "1.9.7.Final",
    "connector": "mysql",
    "name": "mysql-server-1",
    "ts_ms": 1700812800000,
    "snapshot": "false",
    "db": "inventory",
    "table": "users",
    "server_id": 223344,
    "gtid": null,
    "file": "mysql-bin.000003",
    "pos": 10567,
    "row": 0,
    "thread": 7,
    "query": null
  },
  "op": "c",
  "ts_ms": 1700812800123,
  "transaction": null
}

CANAL_JSON - Canal JSON 格式

java 复制代码
/** Use {@link CanalJsonSerializationSchema} to serialize. */
CANAL_JSON("canal-json")

对应的序列化器:CanalJsonSerializationSchema

Canal 格式特点:

  • 阿里巴巴标准:遵循阿里巴巴 Canal 的 CDC 数据格式
  • 简洁格式:数据结构相对简洁
  • 国内生态:与阿里系数据工具更好集成
  • 性能优化:针对大数据场景优化

在 Flink CDC 中的配置使用
Flink CDC Pipeline 配置

java 复制代码
mysql-sync-database \
--database source_db \
--sink-conf connector=kafka \
--sink-conf properties.bootstrap.servers=kafka-broker:9092 \
--sink-conf value.format=json \
--sink-conf json.type=debezium-json  # 或 canal-json

总结:这个 JsonSerializationType 枚举提供了灵活的 JSON 序列化格式选择,让用户能够根据具体的技术栈、性能要求和集成需求选择合适的 CDC 数据格式。通过统一的配置接口,简化了不同序列化器之间的切换和使用。

相关推荐
最笨的羊羊16 小时前
Flink CDC系列之:数据接收器工厂类DorisDataSinkFactory
doris·flink cdc系列·数据接收器工厂类·datasinkfactory
最笨的羊羊7 天前
Flink CDC系列之:Apache Flink CDC 项目的各个模块作用
flink cdc系列·各个模块作用
最笨的羊羊1 年前
Flink CDC系列之:学习理解核心概念——Data Sink
flink cdc系列·学习理解核心概念·data sink
最笨的羊羊1 年前
Flink CDC系列之:学习理解核心概念——Data Source
flink cdc系列·data source·学习理解核心概念
最笨的羊羊1 年前
Flink CDC系列之:学习理解核心概念——Data Pipeline
flink cdc系列·学习理解核心概念·data pipeline
最笨的羊羊1 年前
Flink CDC系列之:学习理解standalone模式
flink cdc系列·学习理解·standalone模式
最笨的羊羊1 年前
Flink CDC系列之:理解学习YARN模式
flink cdc系列·理解学习yarn模式
最笨的羊羊1 年前
Flink CDC系列之:理解学习Kubernetes模式
flink cdc系列·理解学习·kubernetes模式
最笨的羊羊1 年前
Flink CDC系列之:学习理解核心概念——Transform
transform·flink cdc系列·学习理解核心概念