MARKLOGIC:在MarkLogic的数据摄取过程中生成URI ID时,是否可以使用CSV文件中的1列以上的列?

时间:2018-03-01 09:14:06

标签: csv uri marklogic marklogic-8 marklogic-dhf

我对MarkLogic很陌生,我不知道如何最好地应对我现在面临的挑战。

我有一个从表中导出的CSV文件,该文件将被提取到MarkLogic数据库。现在源表使用4列作为其唯一的主键组合。

在MarkLogic中,默认情况下,CSV文件中只能使用一列作为URI ID。

我的问题是,在MarkLogic的数据提取过程中,是否可以使用CSV文件中的多个列作为URI ID? 如果是,数据中心是否提供此功能或设置? 如果不可能,MarkLogic中通常最好的做法是什么?

我知道一个可能的解决方法是创建一个新列,组合来自4个主键列的数据并将其用作URI ID。

感谢先进的帮助:)

1 个答案:

答案 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!