MARKLOGIC: Можно ли использовать более 1 столбца из файла CSV при создании идентификатора URI во время загрузки данных в MarkLogic?
Я совершенно новичок в MarkLogic и не уверен, как лучше справиться с задачей, с которой я столкнулся сейчас.
У меня есть файл CSV, экспортированный из таблицы, которая будет включена в базу данных MarkLogic. Теперь исходная таблица использует 4 столбца в качестве уникальной комбинации первичного ключа.
В MarkLogic по умолчанию только один столбец из файла CSV может использоваться в качестве идентификатора URI.
У меня такой вопрос: возможно ли использовать более 1 столбца из файла CSV в качестве идентификатора URI во время загрузки данных в MarkLogic? Если да, доступна ли эта функция или параметр в центре данных? Если это невозможно, что обычно является лучшим способом для этого в MarkLogic?
Я знаю, что один из возможных обходных путей - создать новый столбец, объединяющий данные из 4 столбцов первичного ключа, и использовать его в качестве идентификатора URI.
Спасибо заранее за помощь:)
1 ответ
Вы можете использовать MLCP Transforms для преобразования как значения контента, так и URI. Он получает хеш-объект $ content, содержащий оба. Обновите его значения по желанию и верните обновленный хеш-объект. Что-то вроде:
declare function example:transform(
$content as map:map,
$context as map:map
) as map:map*
{
let $record := map:get($content, "value")
let $uri := $record/prop1 || $record/prop2 || $record/prop3
let $_ := map:put($content, "uri", $uri)
return $content
};
Вы также можете использовать такие преобразования MLCP в marklogic-data-hub.
НТН!