更新日志

本页面列出了 Neo4j Kafka 连接器的变更记录。

版本 5.3.0

特性 详细信息

功能 新增

为 CDC 源连接器和接收器连接器提供 JMX 指标。

连接器现在为变更数据捕获 (CDC) 策略提供 JMX 指标,用于监控数据摄取进度。

功能 新增

源连接器新增查询 CDC 事件时优先选择 Leader 的选项。

CDC 源连接器现在包含一个配置选项 neo4j.cdc.use-leader,用于优先查询 Leader 实例以获取 CDC 事件,这有助于减少复制延迟并提高捕获数据的实时性。

功能 新增

CDC 接收器连接器支持精确一次 (Exactly Once) 语义。

CDC 接收器连接器现在可以通过跟踪目标数据库中已应用的偏移量 (offsets) 来支持精确一次语义。

版本 5.2.0

特性 详细信息

功能 新增

CDC 源连接器声明支持精确一次 (Exactly Once) 能力。

对于支持 KIP-618 的环境,CDC 源连接器将自动利用此功能,无需任何额外配置。

功能 新增

新的批量 CDC 接收处理器。

引入了新的 CDC 接收处理器,以在接收器连接器中处理 CDC 事件时提供更好的性能。这些处理器将批量处理消息并以更高效的方式将其应用到数据库中。新处理器使用 APOC Core 的 apoc.cypher.doIt 过程以及带有动态标签的 Cypher SETREMOVE 子句,并且在这些功能可用时会优先选择使用它们,而非默认处理器。

功能 新增

改进了接收器连接器的日志记录。

改进了接收器连接器的日志记录功能,以便更好地跟踪连接器进度并识别潜在问题。

版本 5.1.19

特性 详细信息

功能 新增

配置 Neo4j Java 驱动程序以使用 SLF4J 提供程序配置。

Neo4j Java 驱动程序的日志行为现已委托给 SLF4J,确保驱动程序遵循当前活动的 SLF4J 实现的配置。

版本 5.1.18

特性 详细信息

Bug 已修复

修复 CDC 轮询以防止重复扫描事务日志。

当 CDC 源连接器配置了特定模式且未检测到变更时,连接器会使用存储的偏移量在下一次轮询周期中重新扫描相同的事务日志条目。此问题已修复,即使未检测到变更,连接器现在也会正确更新内存中的偏移量。

版本 5.1.16

特性 详细信息

Bug 已修复

修复 RAW_JSON_STRING 模式下点类型 (point types) 的序列化错误。

对于 WGS-84 点类型,在 RAW_JSON_STRING 模式下经度和纬度值被颠倒了。

版本 5.1.15

特性 详细信息

功能 新增

引入 RAW_JSON_STRING payload 模式。

对于 查询策略,用户现在可以使用名为 RAW_JSON_STRING 的新 payload 模式,该模式将生成原始 JSON 字符串格式的消息,类似于 5.0.x 版本的连接器。

版本 5.1.14

这是一个维护版本,提供了更新后的依赖项。

版本 5.1.13

特性 详细信息

Bug 已修复

引入 neo4j.query.force-maps-as-struct 配置。

对于源查询策略,用户现在可以控制具有同构值类型的 Map 是被编码为 Struct 还是 Map。

版本 5.1.12

这是一个维护版本,提供了更新后的依赖项。

版本 5.1.11

这是一个维护版本,提供了更新后的依赖项。

版本 5.1.10

这是一个维护版本,提供了更新后的依赖项。

版本 5.1.9

特性 详细信息

Bug 已修复

Neo4j 版本解析错误。

解决了因错误处理 Neo4j 版本字符串而导致接收器连接器失败的问题。

版本 5.1.8

特性 详细信息

功能 新增

接收器连接器支持 decimaldatetimetimestamp Kafka Connect 类型。

当传入消息包含内置 Kafka Connect 类型(decimaldatetimetimestamp)时,接收器连接器因不支持这些类型而无法处理消息。现在已增加对这些类型的支持。

为了避免数据丢失,decimal 类型的值被转换为 string 值。

Bug 已修复

如果没有设置错误记录报告器 (errant record reporter),则重新抛出异常。

当接收器连接器配置中未指定错误处理选项时,Kafka Connect 不会设置错误记录报告器,之前的异常会被静默忽略。现在这些异常不再被忽略,如果没有设置错误记录报告器,异常将被重新抛出。

Bug 已修复

用户提供的 Cypher 查询在 Cypher 接收策略中返回结果时失败。

当接收器连接器使用 Cypher 策略且提供的查询包含 RETURN 子句时,内部重写的 Cypher 查询生成不正确,导致连接器失败。现已修复 Cypher 生成逻辑,支持此类查询。

版本 5.1.7

这是一个维护版本,提供了更新后的依赖项。

版本 5.1.6

这是一个维护版本,提供了更新后的依赖项。

版本 5.1.5

新增与更新特性

特性 详细信息

功能 新增

为源连接器添加了 neo4j.payload-mode 配置属性。

引入 neo4j.payload-mode 选项以定义变更消息的结构。可选值为 COMPACTEXTENDEDCOMPACT 提供更简单的消息,但在属性类型变更时面临 Schema 兼容性问题;而 EXTENDED 包含类型信息以避免此类问题。默认为 EXTENDED

Bug 已修复

防止了在 CDC 源事件 Schema 生成中因添加重复字段而导致的异常。

解决了 ChangeEvent Schema 生成过程中重复字段导致异常的问题(org.apache.kafka.connect.errors.SchemaBuilderException: Cannot create field because of field name duplication id)。在构建 Key 数组元素的 Schema 时,如果不同的 Map 包含相同的字段名,该字段会被多次添加,从而引发此异常。现在已正确处理重复字段以避免此问题。

版本 5.1.4

新增与更新特性

特性 详细信息

Bug 已修复

修复了 CDC Schema 接收器连接器中的一个错误:没有起始或结束节点 Key 的关系更新与删除事件错误地生成了 Cypher 语句。

解决了引用关系更新和删除事件的消息(不包含任何起始或结束节点 Key)生成的 Cypher 语句会在目标数据库中更新或删除范围更广的实体的问题。这些消息现在会触发失败,应通过常规错误处理机制进行处理。

版本 5.1.3

新增与更新特性

特性 详细信息

Bug 已修复

修复了接收器连接器中无法处理没有有效约束的消息的 Bug。

解决了从 neo4j-streams 4.1 源插件创建的消息包含唯一约束但在实体中没有对应值时,导致 Cypher 查询包含 null 属性过滤器的问题。根据操作类型 (UPDATE/DELETE/CREATE),这可能导致意外行为,因为查询可能无法匹配预期的节点。

版本 5.1.2

新增与更新特性

特性 详细信息

修复

在未启用 Schema 时,支持 JsonConverter 处理 JSON 字符串。

解决了 org.apache.kafka.connect.json.JsonConverterschemas.enable=false 时不支持 JSON 字符串的问题。连接器现在可以正确处理传入的 JSON 字符串,而无需 Schema 定义。

版本 5.1.1

新增与更新特性

特性 详细信息

修复

更新 Neo4j 驱动程序以缓解 Netty 的 CVE-2023-34462 漏洞。

Neo4j 驱动程序已更新至最新的 4.4.x 版本 (4.4.18),其中包含了针对 Netty CVE-2023-34462 的修复。

版本 5.1.0

新增与更新特性

特性 详细信息

功能 新增

为 CDC 源消息添加了值序列化策略。

引入了一个可选属性 neo4j.cdc.topic.$topic.value-strategy,它指定了 CDC 源消息值的序列化方式。可选值为 CHANGE_EVENTENTITY_EVENT

版本 5.1.0-rc02

新增与更新特性

特性 详细信息

功能 破坏性变更

源连接器生成的变更事件的 Schema 形状已更改,与早期版本不兼容。

在 Neo4j Kafka 连接器的早期版本中,源连接器通过派生 Kafka Connect Struct 来表示实体属性,这在属性类型变更时的 Schema 兼容性方面存在局限。现在的 Schema 派生逻辑已更新,将类型信息编码到专用的 Struct 中,从而不再存在此限制。

功能 新增

模式 (Pattern) 接收策略现在检查被标记为 Key 的属性是否存在匹配的约束。

在模式接收策略处理器中增加了一个新检查,它现在会验证在提供的模式中被标记为 Key 的属性是否存在匹配的约束。如果没有找到匹配的约束,该信息将被记录在 Kafka Connect 日志中。

配置 已更改

重命名了以下接收器配置属性:

  • neo4j.pattern.node.topic.{TOPIC_NAME} 改为 neo4j.pattern.topic.{TOPIC_NAME}

  • neo4j.pattern.relationship.topic.{TOPIC_NAME} 改为 neo4j.pattern.topic.{TOPIC_NAME}

  • neo4j.pattern.node.merge-properties 改为 neo4j.pattern.merge-node-properties

  • neo4j.pattern.relationship.merge-properties 改为 neo4j.pattern.merge-relationship.properties

改进了模式 (Pattern) 接收配置,因此无需在配置属性名称中指定模式类型。

版本 5.1.0-rc01

新增与更新特性

特性 详细信息

功能 新增

增加了接收器连接器的错误处理支持。

接收器连接器现在具备完善的错误处理功能,可以利用 Kafka Connect 的错误处理配置并将失败的消息发送到死信队列 (DLQ)。

配置 已移除

移除了以下源属性:

  • neo4j.enforce-schema

移除了以下接收器属性:

  • neo4j.batch-parallelize

新版本的源连接器始终生成带有 Schema 支持的消息。若要禁用 Schema,请相应地配置 Key 和 Value 转换器。

新版本的接收器连接器不再实现任何并行化逻辑,并按它们在主题中出现的顺序处理变更。

配置 已更改

重命名了以下配置属性:

  • topic 改为 neo4j.query.topic

为了保持一致性,Query 源策略的 topic 配置已重命名为 neo4j.query.topic

特性 配置 新增

添加了新的接收器属性:

  • neo4j.cypher.bind-timestamp-as

  • neo4j.pattern.bind-timestamp-as

  • neo4j.pattern.bind-header-as

  • neo4j.pattern.bind-key-as

  • neo4j.pattern.bind-value-as

  • neo4j.pattern.bind-value-as-event

添加了新的源属性:

  • neo4j.query.poll-duration

Cypher 策略现在也允许在用户提供的 Cypher 查询中绑定消息时间戳。

节点和关系模式策略现在允许将消息时间戳、Header、Key 和 Value 绑定为用户提供的模式中的单独且可配置的变量。

Query 源策略已重新实现,以便可以将 poll 周期配置为等待一段指定的持续时间,在此期间配置的查询会被多次执行,直到发现变更。

功能 新增

彻底改造了接收器连接器中的模式策略。

节点和关系模式接收策略已重新实现并进行了多项改进。

  • 在将变更应用到数据库时,现在会保留消息顺序。

  • 模式现在允许将源消息中的属性映射到模式中定义的自定义属性名称。

  • 在定义属性时,模式可以包含对消息时间戳、Header、Key 和 Value 的引用。

版本 5.1.0-beta02

新增与更新特性

特性 详细信息

功能 新增

添加了新的接收器属性:

  • neo4j.cypher.bind-header-as

  • neo4j.cypher.bind-key-as

  • neo4j.cypher.bind-value-as

  • neo4j.cypher.bind-value-as-event

Cypher 策略现在允许将消息 Header、Key 和 Value 绑定为单独且可配置的变量,以供用户提供的 Cypher 查询使用。

修复 破坏性变更

Cypher 类型的 Schema 转换

修复了从 Connect 值(定义为自定义 Connect 类型,如 DateTimePoint 等)转换 Cypher 值的问题。除了基于字符串的临时类型外,我们还添加了基于 Struct 的临时类型,这些类型在所有转换器中工作效果更好。此外,为 Point 类型添加了一个新的 dimension 字段,这提高了它与所有转换器的兼容性。这些新类型将用于连接器生成的临时类型。

这之前在使用 Protobuf 转换器时曾导致问题。

此更改可能会破坏此连接器早期版本生成的 Schema 的现有兼容性。请考虑放宽这些主题的 Schema 兼容性模式,或启动一个新主题以自动获取更新后的 Schema。

版本 5.1.0-beta01

新增与更新特性

特性 详细信息

功能 新增

接收器连接器支持 CDC 消息。

Neo4j Aura 5 和最新的 Neo4j 5.x 企业版中可用的新 CDC 消息格式,以及旧的 Streams 变更消息格式,现在都在 CDC Source IDSchema 接收策略中得到支持。

配置 已更改

一些 sink 属性已被重命名。

为了提供一致且更直观的命名,我们重命名了一些 sink 属性。这影响了以下属性():

  • neo4j.cdc.sourceId.topic.$topicneo4j.cdc.source-id.topic.$topic

  • neo4j.cdc.sourceId.labelNameneo4j.cdc.source-id.label-name

  • neo4j.cdc.sourceId.propertyNameneo4j.cdc.source-id.property-name

版本 5.1.0-alpha03

新增与更新特性

特性 详细信息

配置 已更改

一些 sink 属性已被重命名。

为了提供一致且更直观的命名,我们重命名了一些 sink 属性。这影响了以下属性():

  • neo4j.topic.cypher.$topicneo4j.cypher.topic.$topic

  • neo4j.topic.cdc.sourceIdneo4j.cdc.sourceId.topic.$topic

  • neo4j.topic.cdc.sourceId.labelNameneo4j.cdc.sourceId.labelName

  • neo4j.topic.cdc.sourceId.idNameneo4j.cdc.sourceId.propertyName

  • neo4j.topic.cdc.schemaneo4j.cdc.schema.topics

  • neo4j.topic.pattern.node.$topicneo4j.pattern.node.topic.$topic

  • noe4j.topic.pattern.merge-node-propertiesneo4j.pattern.merge-node-properties

  • neo4j.topic.pattern.relationship.$topicneo4j.pattern.relationship.topic.$topic

  • neo4j.topic.pattern.merge-relationship-propertiesneo4j.pattern.merge-relationship-properties

  • neo4j.topic.cudneo4j.cud.topics

功能 已更改

CDC 事件的 Schema 已更新。

我们更新了 Schema 以兼容 CREATEUPDATEDELETE 操作,这样就可以在具有 backward(向后)兼容模式的同一个 Kafka 主题中发布它们。

Bug 已修复

修复了 CDC 索引模式配置解析方式的 Bug。

之前如果指定了多个连续索引,可能会收到错误。

版本 5.1.0-alpha02

新增与更新特性

特性 详细信息

功能 新增

为 CDC 源消息添加了 Key 序列化策略。

引入了一个可选属性 neo4j.cdc.topic.$topic.key-strategy,用于指定 CDC 源消息 Key 的序列化方式。可选值为 SKIPELEMENT_IDENTITY_KEYSWHOLE_VALUE

功能 已更改

支持 Neo4j 5.15 变更事件中引入的新 keys 字段。

Neo4j 5.15 对变更事件 Schema 引入了破坏性变更,更新了节点和关系变更事件中 keys 字段的结构以处理多个键约束。此版本同时支持旧结构和新结构以保证兼容性。