我对MarkLogic很陌生,我不知道如何最好地应对我现在面临的挑战。
我有一个从表中导出的CSV文件,该文件将被提取到MarkLogic数据库。现在源表使用4列作为其唯一的主键组合。
在MarkLogic中,默认情况下,CSV文件中只能使用一列作为URI ID。
我的问题是,在MarkLogic的数据提取过程中,是否可以使用CSV文件中的多个列作为URI ID? 如果是,数据中心是否提供此功能或设置? 如果不可能,MarkLogic中通常最好的做法是什么?
我知道一个可能的解决方法是创建一个新列,组合来自4个主键列的数据并将其用作URI ID。
感谢先进的帮助:)
答案 0 :(得分:3)
您可以使用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
};
您也可以在marklogic-data-hub中使用此类MLCP转换。
HTH!