我有一个分隔文件作为输入源,通过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来获取所有记录吗?
答案 0 :(得分:1)
您可以通过这种或那种方式提供独特的ID。对于分隔文件,最简单的答案可能是添加一个新列并使用唯一ID填充它,然后根据需要生成。
或者您可以将http://marklogic.github.io/recordloader/ DelimitedDataLoader
与特殊选项ID_NAME=#AUTO
一起使用。但请记住,ID_NAME=#AUTO
将单线程摄取。