变更日志

此页面列出了 Kafka Neo4j 连接器的更改。

5.1.5 版

新增和更新的功能

功能 详情

功能 新增

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

引入了 neo4j.payload-mode 选项来定义更改消息的结构。可用值是 COMPACTEXTENDEDCOMPACT 提供更简单的消息,但在属性类型更改时存在模式兼容性问题,而 EXTENDED 包含类型信息以避免此类问题。默认值为 EXTENDED

错误 已修复

防止了在为 CDC 源事件生成模式时添加重复字段导致的异常。

解决了更改事件模式生成过程中出现重复字段导致异常(org.apache.kafka.connect.errors.SchemaBuilderException: Cannot create field because of field name duplication id)的问题。在为键数组元素构建模式时,如果不同的映射包含相同的字段名,则该字段会被多次添加,从而导致此异常。现在,重复字段得到适当处理以避免此问题。

5.1.4 版

新增和更新的功能

功能 详情

错误 已修复

修复了 CDC 模式接收器连接器中的一个错误,该错误导致没有起始或结束节点键的关系更新和删除事件错误地生成了 Cypher 语句。

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

5.1.3 版

新增和更新的功能

功能 详情

错误 已修复

修复了接收器连接器中的一个错误,该错误导致没有有效约束的消息无法处理。

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

5.1.2 版

新增和更新的功能

功能 详情

修复

在模式未启用时,使用 JsonConverter 支持 JSON 字符串

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

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 版

新增和更新的功能

功能 详情

功能 重大更改

源连接器生成的更改事件的模式形状发生了更改,与早期版本不兼容。

在早期版本的 Kafka Neo4j 连接器中,源连接器派生 Kafka Connect 结构来表达实体属性,这些结构在属性类型更改方面的模式兼容性方面存在限制。模式派生逻辑现在已更新为将类型信息编码到专用结构中,以便此限制不再适用。

功能 新增

模式接收器策略现在检查与标记为键的属性匹配的键约束。

在模式接收器策略处理程序中添加了一个新的检查,它现在将验证在提供的模式中是否为标记为键的属性找到了匹配的约束。如果未找到匹配的约束,则将其作为消息记录到 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-propertiesneo4j.pattern.merge-node-properties

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

改进了模式接收器配置,因此无需将模式类型指定为配置属性名称的一部分。

5.1.0-rc01 版

新增和更新的功能

功能 详情

功能 新增

添加了对接收器连接器中错误处理的支持。

接收器连接器现在具有适当的错误处理机制,因此它可以使用 Kafka Connect 错误处理配置并将失败的消息直接发送到 DLQ。

配置 已移除

已移除以下源属性

  • neo4j.enforce-schema

已移除以下接收器属性

  • neo4j.batch-parallelize

新版本的源连接器始终生成支持模式的消息。要禁用模式,请相应地配置键和值转换器。

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

配置 已更改

重命名了以下配置属性

  • topicneo4j.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 查询中绑定消息时间戳。

节点和关系模式策略现在允许将消息时间戳、标头、键和值绑定为单独的可配置变量,以在用户提供的模式中使用。

重新实现了查询源策略,以便可以配置一个 poll 循环以等待配置的持续时间,在此期间配置的查询将多次执行,直到发现更改。

功能 新增

重新设计了接收器连接器中的模式策略。

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

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

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

  • 模式在定义属性时可以包含对消息时间戳、标头、键和值的引用。

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 策略现在允许将消息标头、键和值绑定为单独的可配置变量,以在用户提供的 Cypher 查询中使用。

修复 重大更改

Cypher 类型模式转换

已修复从 Connect 值转换 Cypher 值的问题,这些值定义为自定义 Connect 类型(如 DateTimePoint 等)。除了基于字符串的时间类型外,我们还添加了基于结构的时间类型,这些类型将更好地与所有转换器配合使用。此外,还为点类型添加了一个新的 dimension 字段,从而提高了它与所有转换器的兼容性。这些新类型将用于连接器生成的时间类型。

这在使用 Protobuf 转换器时会导致问题。

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

版本 5.1.0-beta01

新增和更新的功能

功能 详情

功能 新增

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

Neo4j Aura 5 和最新的 Neo4j 5.x Enterprise Edition 中提供的新 CDC 消息格式以及旧的流更改消息格式现在都受 CDC Source IDSchema 接收器策略支持。

配置 已更改

一些 接收器 属性已重命名。

为了提供一致且更直观的命名,我们已重命名了一些 接收器 属性。这会影响以下属性(

  • 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

新增和更新的功能

功能 详情

配置 已更改

一些 接收器 属性已重命名。

为了提供一致且更直观的命名,我们已重命名了一些 接收器 属性。这会影响以下属性(

  • 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 事件的模式已更新。

我们已更新模式以兼容 CREATEUPDATEDELETE 操作,以便可以将它们发布到具有 向后 兼容性模式的一个 Kafka 主题。

错误 已修复

修复了 CDC 索引模式配置解析方式的错误

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

版本 5.1.0-alpha02

新增和更新的功能

功能 详情

功能 新增

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

我们引入了可选属性 neo4j.cdc.topic.$topic.key-strategy,它指定了 CDC 源消息的键将如何序列化。可用选项为 SKIPELEMENT_IDENTITY_KEYSWHOLE_VALUE

功能 已更改

支持 Neo4j 5.15 中引入的新 keys 字段

Neo4j 5.15 对更改事件模式引入了重大更改,其中节点和关系更改事件中 keys 字段的结构已更新以处理多个键约束。此版本同时支持旧结构和新结构以确保兼容性。