ogg json 与普通json
1. 标准 JSON(JavaScript Object Notation)
定义:通用的轻量级数据交换格式,基于键值对(Key-Value)结构,独立于任何平台或工具。
特点:语法简单:由 {} 定义对象,[] 定义数组
例如
{ \"name\": \"Alice\", \"age\": 30, \"orders\": [1001, 1002]}
2. OGG JSON(Oracle GoldenGate JSON Format)
定义:Oracle GoldenGate 专用的JSON格式,用于在数据复制过程中传输数据库变更记录(如插入、更新、删除操作)。
特点:结构化事务数据:包含数据库操作元数据(如表名、操作类型、时间戳等),而不仅是业务数据。
示例:
{ \"table\": \"EMPLOYEES\", \"op_type\": \"I\", // I=插入, U=更新, D=删除 \"timestamp\": \"2023-07-24T12:00:00\", \"position\": \"0000000001\", \"before\": null, // 插入操作无旧值 \"after\": { \"id\": 101, \"name\": \"Alice\", \"salary\": 5000 }}
字段固定性:
必须包含 table、op_type、timestamp 等GoldenGate要求的字段。
before 和 after 分别记录变更前/后的数据(适用于CDC,Change Data Capture)。
与OGG流程集成:
Extract进程将数据库日志转换为OGG JSON格式的Trail文件。
Replicat进程读取Trail文件中的OGG JSON并应用到目标数据库。
性能优化:针对高吞吐量数据同步设计,支持批量传输。
何时使用OGG JSON?
需要将数据库的实时变更(如Oracle到Kafka)以JSON格式传输时,OGG JSON是默认选择。
目标系统要求接收带有操作元数据的结构化变更记录(如数据湖、流处理平台)。
何时用标准JSON?
需要与第三方应用(如前端、移动端)交互时。
数据无需关联数据库操作上下文(如静态配置或用户输入)。