Возможно, вы захотите настроить свою работу на использование опции URIS-FILE , указывающей на ваш CSV.CORB прочитает файл и отправит каждую из строк из CSV в сконфигурированный МОДУЛЬ ПРОЦЕССА в качестве значения $URI
для обработки.
Свойствафайл будет выглядеть примерно так:
# how to connect to to the XCC server
XCC-CONNECTION-URI=xcc://user:password@localhost:8202/
# path to the CSV file to be processed
URIS-FILE=input-uris.csv
# the module that will process and save each CSV row
PROCESS-MODULE=save-row.xqy|ADHOC
# how many threads to use to execute process modules
THREAD-COUNT=10
В вашем модуле процесса вам нужно будет объявить внешнюю переменную с именем $URIS
, а затем разметить строку CSV с помощью разделителя и обработать столбцы данных.,Вызовите xdmp:document-insert()
, чтобы вставить документ и указать коллекцию (и), в которую вы хотите поместить документ:
xquery version "1.0-ml";
declare variable $URI as xs:string external;
let $columns := fn:tokenize($URI, ",\s?")
(: assuming that the first column has a unique value to be used for the URI :)
let $uri := $columns[1]
(:do whatever processing you would need to generate the document from CSV columns :)
let $content := $columns[2]
return
xdmp:document-insert($uri,
$content,
map:map() => map:with("collections", "mySpecialCollection")
)
Примечание: подпись для xdmp: document-insert () недавно изменилась. Теперь вы указываете xdmp:document-insert
параметры, такие как разрешения и коллекции, либо в карте, либо в элементе параметров в третьем параметре.В предыдущих версиях MarkLogic разрешения и коллекции были третьим и четвертым параметрами.Настройте вызов на xdmp:document-insert()
в соответствии с используемой версией MarkLogic (в верхней левой части документации есть выпадающий список для выбора вашей версии).