出口CloudEvents
CloudEvents是一种规范,描述事件数据的一种常见方法。其目的是提供互操作性在服务、平台和系统。开云体育官方注册网址Debezium允许您配置MongoDB, MySQL、PostgreSQL或SQL Server连接器发出更改事件记录,符合CloudEvents规范。
支持CloudEvents处于酝酿状态。这意味着精确语义、配置选项和其他细节在未来可能会改变根据反馈修改。请让我们知道您的具体要求或如果你遇到任何问题在使用这个特性。 |
CloudEvents规范定义了:
一套标准化的事件属性
规则定义自定义属性
编码规则映射事件格式序列化JSON或Avro等表征
等传输层的协议绑定Apache卡夫卡,HTTP或AMQP
配置一个Debezium连接器开云体育官方注册网址发出更改事件记录,符合CloudEvents规范,Debezium提供io.开云体育官方注册网址debezium.converters.CloudEventsConverter
,这是一种卡夫卡转换器连接信息。
目前,只有支持结构化的映射模式。CloudEvents更改事件信封可以是JSON或Avro,每个信封类型支持JSON或Avro作为数据
格式。预计未来Debezium版本将支持二进制映射模式。开云体育官方注册网址
对于使用Avro的信息,见:
示例事件格式
下面的例子显示了一个CloudEvents发出更改事件记录PostgreSQL连接器的样子。在这个例子中,PostgreSQL连接器配置为使用JSON作为CloudEvents格式信封和也数据
格式。
{" id ": "名称:test_server; lsn: 29274832; txId: 565”,(1)“源”:“/ debezi开云体育官方注册网址um / postgresql / test_server”,(2)“specversion”:“1.0”,(3)“类型”:“io.debe开云体育官方注册网址zium.postgresql.datachangeevent”,(4)“时间”:“2020 - 01 - 13 t13:55:39.738z”,(5)“datacontenttype”:“application / json”,(6)“io开云体育官方注册网址debeziumop”:“r”,(7):“i开云体育官方注册网址odebeziumversion 2.3.0.Final”,(8):“i开云体育官方注册网址odebeziumconnector postgresql”、“iodebeziumname”:“test_server”、“iodebeziumtsms”:“1578923739738”,“iodebeziumsnapshot”:“真正的”、“iodebeziumdb”:“postgres”、“iodebeziumschema”:“s1”、“iodebeziumtable”:“一”、“iodebeziumlsn”:“29274832”,“iodebeziumxmin”:空,“iodebeziumtxid”:“565”,(9)“io开云体育官方注册网址debeziumtxtotalorder”:“1”,“iodebeziumtxdatacollectionorder”:“1”,“数据”:{(10)“之前”:空,“后”:{“pk”: 1、“名称”:“Bob”}}}
1 | 惟一的ID,连接器生成事件的基础上改变事件的内容。 |
2 | 事件的来源,这是数据库的逻辑名称指定的开云体育电动老虎机topic.prefix 在连接器的配置属性。 |
3 | CloudEvents规范版本。 |
4 | 连接器类型生成事件的变化。这个字段的格式io.开云体育官方注册网址debezium。CONNECTOR_TYPE.datachangeevent 。的价值CONNECTOR_TYPE 是mongodb ,mysql ,postgresql ,或sqlserver 。 |
5 | 源数据库的变化。开云体育电动老虎机 |
6 | 描述的内容类型数据 在本例中属性,它是JSON。唯一的选择是Avro。 |
7 | 一个操作标识符。可能的值是r 对于阅读,c 为创建、u 为更新或d 删除。 |
8 | 所有源 属性已知Debezium变化事件映射到CloudEvents通开云体育官方注册网址过使用扩展属性io开云体育官方注册网址debezium 属性名称的前缀。 |
9 | 在连接器中启用时,每一个事务 属性的Debezium更改事件映射到CloudEvents开云体育官方注册网址扩展属性使用io开云体育官方注册网址debeziumtx 属性名称的前缀。 |
10 | 实际的数据变化本身。根据操作和连接器,可能包含的数据之前 ,后 和/或补丁 字段。 |
下面的示例还显示了一个CloudEvents发出更改事件记录PostgreSQL连接器的样子。在这个例子中,再次PostgreSQL连接器配置为使用JSON作为CloudEvents信封的格式,但这一次的连接器配置为使用Avro数据
格式。
{" id ": "名称:test_server; lsn: 33227720; txId: 578”,“源”:“/ debez开云体育官方注册网址ium / postgresql / test_server”、“specversion”:“1.0”,“类型”:“io.debezium.postgresql.datachangeevent”,“时间”:“2020 - 01 - 13 t14:04:18.597z”、“datacontenttype”:“应用程序/ avro”,(1)“dataschema”:“http://my-registry/schemas/ids/1”,(2)“io开云体育官方注册网址debeziumop”:“r”、“iodebeziumversion”:“tripwire。最后”、“iodebe开云体育官方注册网址ziumconnector”:“postgresql”、“iodebeziumname”:“test_server”、“iodebeziumtsms”:“1578924258597”、“iodebeziumsnapshot”:“真正的”、“iodebeziumdb”:“postgres”、“iodebeziumschema”:“s1”、“iodebeziumtable”:“一”、“iodebeziumtxId”:“578”、“iodebeziumlsn”:“33227720”、“iodebeziumxmin”:空,“iodebeziumtxId”:“578”、“iodebeziumtxtotalorder”:“1”,“iodebeziumtxdatacollectionorder”:“1”、“数据”:“AAAAAAEAAgICAg = = "(3)}
1 | 表明,数据 属性包含Avro二进制数据。 |
2 | URI Avro数据遵循的模式。 |
3 | 的数据 属性包含base64编码Avro二进制数据。 |
还可以使用Avro信封以及数据
属性。
示例配置
配置io.开云体育官方注册网址debezium.converters.CloudEventsConverter
在你Debezi开云体育官方注册网址um连接器配置。下面的例子展示了如何配置CloudEvents转换器发出更改事件记录,有以下特点:
使用JSON的信封。
使用模式注册表
http://my-registry/schemas/ids/1
序列化的数据
作为二进制Avro属性数据。
…“价值。converter": "io.debezium.converters.CloudEventsConverter", "value.converter.serializer.type" : "json",(1)“value.converter.data.serializer。”:“avro”、“value.converter.avro.schema.registry类型。url”:“http://my-registry/schemas/ids/1”……
1 | 指定serializer.type 是可选的,因为json 是默认的。 |
CloudEvents转换器转换卡夫卡记录值。在相同的连接器配置,您可以指定key.converter
如果你想操作记录键。例如,您可以指定StringConverter
,LongConverter
,JsonConverter
,或AvroConverter
。
配置选项
当您配置Debezium连接器使用Clou开云体育官方注册网址dEvent转换器可以指定以下选项。
选项 |
默认的 |
描述 |
|
编码类型用于CloudEvents信封的结构。价值可以 |
|
|
使用的编码类型 |
|
N /一个 |
任何配置选项传递到底层当使用JSON转换器。的 |
|
N /一个 |
任何配置选项使用Avro时通过底层的转换器。的 |
|
没有一个 |
指定应该如何调整的兼容模式名消息转换器使用的连接器。价值可以 |