我們能否從導入Amazon S3的數據到MarkLogic使用MarkLogic - S3進口
- 的JavaScript/XQuery的API
- MarkLogic內容泵
- 任何其他方式?
請分享參考,如果有的話。
我們能否從導入Amazon S3的數據到MarkLogic使用MarkLogic - S3進口
請分享參考,如果有的話。
我不是AWS專家,但是如果您知道S3上的數據位置,則可以使用xdmp:document-get()(帶有http位置的$:前綴)來檢索文檔。您也可以使用xdmp:http-get(),也許可以查詢文檔的位置。一旦該命令返回,您可以使用通常的xdmp:document-insert。
這種方法應該爲少數的文件被罰款。如果您想要導入一個大集合,則必須考慮事務超時的可能性。
對於更大的數據集,你可能需要從外部管理的過程。這裏有幾個選項:從S3
負載的test.xml文件存儲區與使用/ documents服務的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
user:password
localhost:8052
最近我面臨着同樣的問題,我用以下用於複製數據的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,您可以使用以下格式的URL「S3://桶/鍵」,進入S3進行讀取或寫入。
我會強烈建議Java客戶端API用於該用途的情況。 –
@ dave-cassel謝謝你的迴應。 _MLCP_能以某種方式爲S3上的數據工作嗎?它運行一個MapReduce工作,所以理想情況下它應該。在本地磁盤上導入千兆字節的數據可能不是最佳解決方案。另外,如果集羣位於AWS,則數據傳輸爲2倍(下載,然後使用MLCP進行批量上傳)。 – blackzero
@blackzero MLCP只知道要使用的兩個輸入源:文件系統和MarkLogic本身(用於複製和導出操作)。對於MarkLogic 8,我認爲你最好的選擇是上面的選項2或3。 –