更改事件格式
更改事件的内容根据实体类型(节点或关系)的不同而有所不同。
节点更改
节点更改事件格式
{
"id": "A7fjWXMK_0L6hztd4xhoy0oAAAAAAAAADAAAAAAAAAAA", (1)
"txId": 12, (2)
"seq": 0, (3)
"metadata": {
"executingUser": "neo4j", (4)
"authenticatedUser": "neo4j", (5)
"captureMode": "FULL", (6)
"connectionClient": "127.0.0.1:51320", (7)
"serverId": "e605bd8f", (8)
"databaseId": "edec6ba8-e82f-4aac-ae41-2725f2357fdd", (9)
"connectionType": "bolt", (10)
"connectionServer": "127.0.0.1:51316", (11)
"txStartTime": "2023-03-03T11:58:30.429Z", (12)
"txCommitTime": "2023-03-03T11:58:30.526Z", (13)
"txMetadata": { (14)
"correlationId": "123456789"
}
},
"event": {
"elementId": "4:b7e35973-0aff-42fa-873b-5de31868cb4a:1", (15)
"keys": { (16)
"Person": [
{
"firstName": "john",
"lastName": "doe"
},
{
"ssn": "Y654321"
}
],
"Employee": [
{
"id": 1001
}
]
},
"eventType": "n", (17)
"state": {
"before": null, (18)
"after": { (19)
"properties": { (20)
"tagline": "Houston, we have a problem.",
"title": "Apollo 13",
"released": "1995"
},
"labels": ["MOVIE"] (21)
}
},
"operation": "c", (22)
"labels": ["MOVIE"] (23)
}
}
1 | 一个唯一的更改标识符,用于标识此更改记录。它可用于查询从此更改开始的更改。 |
2 | 一个数字,标识更改发生的交易,与seq 组合唯一。交易标识符不是连续的(某些交易,例如系统和架构命令,不会记录在更改数据捕获中,并导致交易标识符出现间隙)。 |
3 | 一个用于对同一交易中发生的更改进行排序的数字。输出中观察到的更改顺序不一定对应于交易期间应用更改的顺序。 |
4 | 执行此更改的用户。在使用模拟时,可能与authenticatedUser 不同。 |
5 | 执行此更改时的已认证用户。 |
6 | 捕获此更改时的事务日志 CDC 模式。 |
7 | 客户端的地址(通常是 IP 地址和端口,但可能会根据协议而改变)。 |
8 | 执行此更改的服务器的标识符。有关服务器的更多信息,请参阅操作手册→集群→管理集群中的服务器。 |
9 | 数据库唯一 ID。有关管理多个数据库的更多信息,请参阅操作手册→数据库管理。 |
10 | 客户端通过其连接的协议。 |
11 | 服务器的地址(通常是 IP 地址和端口,但可能会根据协议而改变)。 |
12 | 底层交易开始时的的时间戳。 |
13 | 底层交易提交时的的时间戳。 |
14 | 执行操作时与交易关联的元数据。 |
15 | 已更改实体(节点或关系)的elementId。 |
16 | 标识已更改实体的键。这需要在已更改实体上定义键约束,有关详细信息,请参阅elementIds 和键属性的作用。 |
17 | 已更改实体的类型:节点为n ,关系为r 。 |
18 | 描述实体在更改之前状态的映射。对于创建事件,此字段始终为NULL 。在DIFF CDC 模式下,它仅限于已更改实体的属性和标签。无论 CDC 模式是否设置为DIFF 或FULL ,此字段始终包含删除事件的实体的完整状态。 |
19 | 描述实体在更改之后状态的映射。对于删除事件,此字段始终为NULL 。在DIFF CDC 模式下,它仅限于已更改实体的属性和标签。无论 CDC 模式是否设置为DIFF 或FULL ,此字段始终包含创建事件的实体的完整状态。 |
20 | 更改后实体的属性映射。 |
21 | 应用更改后节点标签的列表。在DIFF CDC 模式下,它仅限于已更改的标签。 |
22 | 操作类型:c 表示创建,u 表示更新,d 表示删除。 |
23 | 应用更改之前节点标签的列表。它包含完整的标签集,而不管 CDC 模式如何。 |
关系更改
关系的更改事件遵循与节点更改类似的模式。
下面仅注释了差异。
关系更改事件格式
{
"id": "A2pK9P_aOknnrnEsCsPB_BoAAAAAAAAADwAAAAAAAAAA",
"txId": 15,
"seq": 0,
"metadata": {
"executingUser": "neo4j",
"authenticatedUser": "neo4j",
"captureMode": "FULL",
"connectionClient": "127.0.0.1:51190",
"serverId": "2230d17a",
"databaseId": "edec6ba8-e82f-4aac-ae41-2725f2357fdd",
"connectionType": "bolt",
"connectionServer": "127.0.0.1:51186",
"txStartTime": "2023-03-03T11:54:40.510Z",
"txCommitTime": "2023-03-03T11:54:40.773Z",
"txMetadata": {
"correlationId": "987654321"
}
},
"event": {
"elementId": "5:6a4af4ff-da3a-49e7-ae71-2c0ac3c1fc1a:0",
"start": { (1)
"elementId": "4:6a4af4ff-da3a-49e7-ae71-2c0ac3c1fc1a:0", (2)
"keys": {}, (3)
"labels": ["PERSON"] (4)
},
"end": { (5)
"elementId": "4:6a4af4ff-da3a-49e7-ae71-2c0ac3c1fc1a:1",
"keys": {},
"labels": [
"MOVIE"
]
},
"eventType": "r",
"state": { (6)
"before": null,
"after": {
"properties": {
"roles": "Jack Swigert"
}
}
},
"type": "ACTED_IN", (7)
"operation": "c",
"keys": [ (8)
{
"registerId": 1125
},
{
"official": "Alice Roberts"
}
]
}
}
1 | 包含有关起始节点信息的映射。 |
2 | 起始节点的 ElementId。 |
3 | 起始节点的键(如果定义了相关约束)。 |
4 | 起始节点的标签列表。 |
5 | 上面为结束节点定义的相同信息集。 |
6 | 由于关系没有标签,因此在之前/之后状态中没有标签字段。 |
7 | 关系类型。 |
8 | 标识已更改实体的键。这需要在已更改实体上定义键约束,有关详细信息,请参阅elementIds 和键属性的作用。 |