MLCP 对不同的输入目录路径执行不同的操作



我正在使用mlcp v9.0.4将数据加载到MarkLogic v9.0.9中,我正在尝试找出以下内容:

  1. 如果 csv 文件没有数据行,只有列名,则永远不会加载该文件。如何克服此问题并加载空文件?

  2. 当input_file_path是包含 csvs 的目录与input_file_path是包含另一个目录的目录时,mlcp 的行为会有所不同。

例如:如果结构/dir/dir1/*.csv,那么input_file_path=/dir/dir1/加载速度比input_file_path=/dir/ [ with other options set to default ]

mlcp 应用于在此处执行加载的逻辑是什么? 我应该为两种方式更改任何选项以给我相同的结果吗?

对于第 1 点:

  1. 我可以向 csv 添加一个空行并加载它,但我不想要这种方法。

  2. 我尝试使用转换模块,但这会减慢负载。

对于第 2 点:我一直在尝试更改 mlcp 选项 - batch_size、split_size、max_split_size、thread_count thread_count_per_split 如 marklogic 文档中使用不同的组合给出的那样。但是,我想知道我是否只是在灌木丛中跳动。 我想了解 mlcp 如何处理引擎盖下的输入。

对于第 2 点: 对于 128GB RAM 服务器 - 以下是我尝试过的详细信息

文件/目录结构:

/dir/dir1/1.csv - 4 MB
/dir/dir1/2.csv - 10 MB
/dir/dir1/3.csv - 400 MB
/dir/dir1/4.csv - 3000 MB

数据库配置:

forest policy - bucket
locking - off
journaling - fast

MLCP 的选项文件:

-generate_uri
true
-fast_load
true
-thread_count
32
-split_size
true
-max_split_size
94371840
-thread_count_per_split
1
-batch_size
100
-transaction_size
20

对于第 1 点(加载没有数据行的文件会有什么结果?考虑到数据模型是这样的 1 CSV"行" == 1 ML 文档。0 CSV 数据"行" == ???文件?你期待一个数字吗!= 0 ?

对于第 2 点(您能分享一下您看到的性能差异吗?什么是"加载速度更快",最终结果集是什么样的?

最新更新