我正在使用mlcp v9.0.4将数据加载到MarkLogic v9.0.9中,我正在尝试找出以下内容:
-
如果 csv 文件没有数据行,只有列名,则永远不会加载该文件。如何克服此问题并加载空文件?
-
当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 点:
-
我可以向 csv 添加一个空行并加载它,但我不想要这种方法。
-
我尝试使用转换模块,但这会减慢负载。
对于第 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 点(您能分享一下您看到的性能差异吗?什么是"加载速度更快",最终结果集是什么样的?