3

我有一个分隔文件作为输入源,用于通过 unix 使用 conten-pump 在 marklogic 中摄取数据。文件中没有这样的列是唯一的,可用作 URI。问题在于,由于不可能重复(URI),因此对于该特定 URI,这些记录将被跳过/覆盖。可用的语法有: - delimited_uri_id*my_column_name* output_uri_prefix*my_prefix_string* output_uri_suffix*my_suffix_string* output_uri_replace pattern,'string'

mlcp 的命令是:

bin/mlcp.sh import -host localhost -port 8042 -username name -password password-input_file_path  hdfs://path/to/file -delimiter '|'  -delimited_uri_id column_name-input_file_type delimited_text -mode distributed

这里的问题是,如果我修改上述命令并包括:

-output_uri_prefix $(date +%s%N)

执行此命令需要时间(以纳秒为单位)和所有 URI 的前缀。但这并不能解决我的问题,因为该值仍然重复。其他可用选项也会发生同样的情况。如何通过以某种方式为所有记录构建唯一 URI 来摄取所有记录?

4

1 回答 1

1

您可以通过一种或另一种方式提供唯一的 ID。对于分隔文件,最简单的答案可能是添加一个新列并使用唯一的 id 填充它,该 id 可以随心所欲地生成。

或者您可以使用带有特殊选项的http://marklogic.github.io/recordloader/ 。但请记住,这将是单线程摄取。DelimitedDataLoaderID_NAME=#AUTOID_NAME=#AUTO

于 2013-10-01T15:50:14.447 回答