首页 > 解决方案 > mlcp 对不同的输入目录路径执行不同

问题描述

我正在使用 mlcp v9.0.4 将数据加载到 MarkLogic v9.0.9 中,我试图弄清楚以下内容:

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

  2. 当 input_file_path 是包含 csvs 的目录 vs 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 选项 - 使用不同组合的 marklogic 文档中给出的 batch_size、split_size、max_split_size、thread_count、thread_count_per_split。但是,我想知道我是否只是在拐弯抹角。我想了解 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

标签: performancecsvmarklogicmlcp

解决方案


对于第 1 点)加载没有数据行的文件会产生什么结果?考虑到数据模型是 1 CSV 'row' == 1 ML Document。0 CSV 数据“行”== ??? 文件?你期待一个数字!= 0?

对于第 2 点)您能否分享您所看到的性能差异?什么是“加载速度更快”,最终结果集是什么样的?


推荐阅读