我有一个分隔的文件作为输入源,用于通过 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
模式,"字符串"
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 来摄取所有记录?
无论如何,由您提供唯一的 ID。对于分隔文件,最简单的答案可能是添加一个新列并使用您喜欢的方式生成的唯一 id 填充它。
或者您可以将 http://marklogic.github.io/recordloader/DelimitedDataLoader
与特殊选项一起使用 ID_NAME=#AUTO
.但请记住,ID_NAME=#AUTO
将单线程引入。