MarkLogic中temporal文档更新及历史harmonized数据字段调整适用函数咨询
MarkLogic Temporal Harmonized 文档字段调整与通用更新指引
可用于存量字段位置调整的适配函数
针对存量harmonized类型temporal文档的字段位置迁移需求,可直接调用的核心操作函数包括:
xdmp:node-insert-child:可将指定字段节点从原位置迁移到目标父节点的子节点序列中,操作过程会自动匹配temporal文档的节点校验规则,直接完成字段层级位置调整xdmp:node-replace:在替换节点内容的同时可同步修正节点所在的层级路径,适合在调整字段位置的场景下,同步校验、修正字段值的操作temporal:collection-get:可快速定位指定temporal集合下的所有关联文档,批量筛选出需要调整字段位置的存量harmonized数据,避免误操作同库下的普通文档temporal:axis-check:可在调整操作完成后,校验目标temporal集合的时序属性完整性,确认字段调整操作没有破坏temporal文档的版本关联关系
Temporal 文档通用更新流程与操作规范
所有temporal文档的更新操作需要遵循时序版本的管理规则,通用操作流程如下:
- 前置准备阶段
- 明确目标temporal集合的核心配置,包括temporal轴的节点路径、版本留存策略、更新触发规则,提前确认当前操作账号具备temporal集合的写入权限
- 对待操作的存量文档做抽样校验,确认文档的temporal轴值完整、版本关联关系正常,不存在已标记的异常文档
- 正式更新操作
- 常规生效版本更新:读取目标文档当前生效版本的完整内容,完成字段位置调整后,同步按照temporal规则更新版本的生效时间范围,通过
temporal:document-insert写入生成新的正式生效版本 - 历史版本回溯修正:若需要调整历史已归档版本中的字段位置,需通过
temporal:document-insert-as指定对应历史版本的时间范围参数写入,确保修正后的版本匹配原时序逻辑,不会造成temporal数据集的时间线重叠或断点
- 常规生效版本更新:读取目标文档当前生效版本的完整内容,完成字段位置调整后,同步按照temporal规则更新版本的生效时间范围,通过
- 批量操作的注意事项
- 大批量存量文档的调整操作,需使用
xdmp:spawn拆分独立事务批次,控制单批次的操作文档量在数据库事务阈值范围内,避免锁竞争导致的批量操作失败 - 操作过程中避免直接对temporal文档使用普通文档的节点写入接口,否则会导致文档丢失temporal版本属性,被归类为普通文档,无法参与后续的时序查询
- 大批量存量文档的调整操作,需使用
特别提示:temporal文档的所有历史版本默认受时序保护,不支持直接覆写删除,所有调整操作都需要生成带时间戳的新版本完成逻辑修正。
内容的提问来源于stack exchange,提问作者ramz123
相关产品推荐
相关产品推荐

