在Marklogic 5中加载大型非本地文件

时间:2012-11-29 21:53:50

标签: saxparser marklogic

我有一个非常大的文件,与Marklogic服务器不在同一个盒子上。将文件放在同一台服务器上不是一种选择。

将文件加载到数据库的最佳方法是什么?我认为SAX解析器可以选择节点并将它们加载到数据库中。

<a>
  <b>xxx</b>
  <b>yyy</b>
  <b>zzz</b>
</a>

所以,使用上面的xml我会在Marklogic中创建一个包含的文档。 然后,使用SAX解析器,我将获取第一个<b>元素并将其作为<a>的子元素插入。我会重复所有剩余的<b>元素。

这听起来像是最好的方法吗?这会有效吗?

TIA

3 个答案:

答案 0 :(得分:2)

正如Eric所说,一份大文件可能不是你想要的。 MarkLogic旨在最好地处理许多(数千到数十亿)一口大小(几十到几百千字节)的文档。如果您熟悉关系数据库,则可以将关系行(而不是表)视为与MarkLogic数据库中的文档大致等效。

您能提供一些有关您正在尝试做的事情的详细信息吗?您希望执行哪些类型的查询?您的数据实际上是什么样的? “非常大”有多大?

答案 1 :(得分:1)

首先,一旦您拥有MarkLogic中的所有数据,您就不可能在一个文档中全部拥有这些数据。

您可以使用mlcp之类的工具来帮助您分解文档并加载它。请参阅http://developer.marklogic.com/products/mlcp以及http://docs.marklogic.com/guide/ingestion,特别是http://docs.marklogic.com/guide/ingestion/content-pump上的mlcp(内容泵)位

答案 2 :(得分:0)

您可能会发现xmlsh的StAX脚本功能对您有用。 这解析像SAX,但更容易处理,因为它的PULL不是PUSH技术,所以没有回调。它的完全可编写脚本的代码比纯Java少得多,而且几乎一样快。

http://www.xmlsh.org/FunctionsStAX

-David