MarkLogiC语言 S3 Import



是否可以使用

将数据从Amazon S3导入到MarkLogic中?
    JavaScript/xQuery API
  1. MarkLogic Content Pump
  2. 还有其他办法吗?

请分享参考,如果有的话

无论如何我都不是AWS专家,但是如果您知道S3上数据的位置,那么您可以使用xdmp:document-get(),在$location中使用http://前缀来检索文档。您还可以使用xdmp:http-get()来查询文档的位置。该命令返回后,可以使用通常的xdmp:document-insert。

对于少量文档,这种方法应该没问题。如果要导入的数据集很大,则必须考虑事务超时的可能性。

对于较大的数据集,您可能希望从外部管理流程。这里有几个选项:

  • 从S3导出数据到本地文件系统,然后使用MLCP发送到MarkLogic
  • 插入一个文档,其中包含您想要导入的S3资源列表;生成任务,每个任务将获取一组这些资源,并使用xdmp导入它们:
  • 使用Java代码从S3提取文档(或一批文档),然后使用Java客户机API将该数据插入到MarkLogic
  • 一旦MarkLogic 9出来,使用数据移动SDK,它旨在使这样的项目更容易(在撰写本文时,DMSDK仍在开发中)

使用/documents服务将test.xml文件从AWS S3桶加载到与您的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"
  • 用有效的AWS S3存储URL替换https://s3.amazonaws.com/yourbucket/test.xml
  • 用有效值替换user: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凭证,您可以使用"s3://bucket/key"形式的URL访问s3进行读写。

参见EC2指南参见Stackoverflow类似问题

相关内容

  • 没有找到相关文章

最新更新