将数据从 Marklogic 复制到 Amazon S3

Copy data from Marklogic to Amazon S3

有没有办法将数据从 Marklogic Server copy/move 传送到 Amazon S3?我不希望移动所有数据,但希望移动与特定集合或某些其他逻辑有关的某些文档。我可以做 xdmp:save() 并且适用于几千个文档,但是我有几百万条记录并且这种方法在那种情况下不会很好地工作,是否有更好和更强大的方法可以用来复制数据过来?我可以为此使用 MLCP 或使用 spawn 模块通过任务服务器 运行 它并完成这项工作吗?我 运行正在使用 AWS 上托管的 ML-8。

任何建议都会有很大帮助。

问候 阿米特

我会使用 Corb2 来简化 xdmp:save() 命令,因为 s3:// 是内置文件系统。任何使用 MLCP 的解决方案都会遭受更多的数据传输,我不确定它的价值,除非你也想要一个存档(如果你想保留属性、权限、集合等,这是一个有效的点)

其次 - 我从未这样做过,但我知道您可以将 S3 用作森林的位置。在这种情况下,您可以将某些文档平衡到位于 S3 上的林中。

使用 REST 从 MarkLogic 检索文档 API 并将输出通过管道传输到 aws 命令以上传到 AWS S3 存储桶:

curl --anyauth --user user:password -X GET -H "Content-type: application/xml" http://localhost:8052/LATEST/documents?uri=/docs/test.xml | aws s3 cp - s3://yourbucket/test.xml

我使用 mlcp export 进行更改,它与收集过滤器一起工作得很好,对我来说很有效。我还没有尝试过 CORB2,但如果时间允许,我也会尝试一下

mlcp export -host {host} -port {port} -username {username} -password {password} -output_file_path {S3 path} -collection_filter {要移动的集合名称}

您可以使用备份功能并将目标目录设置为s3://bucket/path