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!
我对 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!