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.

НТН!

Другие вопросы по тегам