4

我是 MarkLogic 的新手,并评估它以转储巨大的 csv/文本数据,并根据某些条件等进行一些转换,如过滤器等。据我所知,我可以使用 2 种方式转储数据。

1) Using java api for MarkLogic in a multi-threaded environment.
2) MLCP with custom transformation.

我想知道实现这一目标的更好方法是什么?或者是否还有其他我不知道的。

提前致谢。

4

1 回答 1

4

你提到的两种方式都可以。一个更容易实现,但您可能能够从另一个获得更好的性能。

将 MLCP 与自定义转换一起使用应该很简单。MLCP 已经知道如何处理 CSV 数据并将其转换为 XML 或 JSON。使用自定义转换,您将获得一个 XML 或 JSON 文档作为输入,并且可以随意更改它。实现非常简单。需要注意的是:

使用转换时,批量大小始终设置为 1,并且 -batch_size 选项被忽略。

在大型数据集上,这将对您的数据加载速度产生显着影响。如果您不打算在转换中弄乱 URI,请查看该-fastload选项。

如果您改用 Java API,则需要解析 CSV(我确定周围有一个库),应用所需的转换并进行插入。那是您需要编写的更多代码(并且可能需要维护,如果您会随着时间的推移这样做),但是由于您将插入一堆已经转换的文档,因此您可以在单个文档中插入多个文档交易

如果这是一个一次性的过程,我会倾向于 MLCP,除非您的内容是大量的(不要让我定义大量)。如果您要在长期内多次运行此作业,那么在您的 Java 层中进行这项工作更有可能是值得的。

无论您采用哪种方式,都可能值得查看将内容加载到 MarkLogic Server指南的设计内容加载策略部分。

于 2016-06-10T14:24:41.473 回答