我们可以使用将数据从Amazon S3导入MarkLogic吗?
如果可以的话,请分享参考。
我不是任何AWS专家,但如果你知道S3上数据的位置,你可以使用xdmp:document-get(),在$ location中使用http://前缀来检索文档。您也可以使用xdmp:http-get()来查询文档的位置。一旦该命令返回,您可以使用通常的xdmp:document-insert。
对于少量文件,这种方法应该没问题。如果您要导入大型集,则必须考虑事务超时的可能性。
对于更大的数据集,您可能希望从外部管理该过程。以下是几个选项:
使用/ documents服务将AWS S3存储桶中的test.xml文件加载到与REST API实例关联的数据库中:
curl https://s3.amazonaws.com/yourbucket/test.xml | curl -v --digest --user user:password -H "Content-Type: application/xml" -X PUT -d @- "localhost:8052/v1/documents?uri=/docs/test.xml"
https://s3.amazonaws.com/yourbucket/test.xml
替换为AWS S3存储的有效URLuser:password
localhost:8052
替换为您的MarkLogic应用服务器的URL最近我遇到了同样的问题,我使用以下MLCP代码复制数据,并且它有效。
mlcp export -host {host} -port {port} -username {username} -password {password} -output_file_path {S3 path} -collection_filter {collection name to be moved}
如果在管理工具中配置aws credententials,则可以使用“s3:// bucket / key”形式的URL访问S3进行读取或写入。