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

MARKLOGIC: Is it possible to use more than 1 columns from a CSV file when generating URI ID during data ingestion in MarkLogic?

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

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

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

我的问题是,在 MarkLogic 中的数据摄取期间,是否可以使用 CSV 文件中的 1 列以上作为 URI ID? 如果是,此功能或设置在数据中心是否可用? 如果不可能,MarkLogic 中对此的最佳实践通常是什么?

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

您可以使用 MLCP Transforms 来转换内容值和 uri。它得到一个包含两者的哈希对象 $content 。根据需要更新其值,并 return 更新的哈希对象。类似于:

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!