0

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

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

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

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

这听起来像是最好的方法吗?它会表现出色吗?

TIA

4

3 回答 3

2

正如 Eric 所指出的,一份大文档可能不是您想要的。MarkLogic 设计用于处理许多(数千到数十亿)一口大小(数十到数百千字节)的文档。如果您熟悉关系数据库,您可以将关系行(而不是表)大致等同于 MarkLogic 数据库中的文档。

你能提供更多关于你想要做什么的细节吗?您希望执行哪些类型的查询?您的数据实际上是什么样的?“非常大”有多大?

于 2012-11-29T23:40:37.937 回答
1

首先,一旦您在 MarkLogic 中拥有所有数据,您就不太可能将所有数据都放在一个 Document 中。

您可以使用 mlcp 之类的工具来帮助您分解文档并加载它。请参阅http://developer.marklogic.com/products/mlcp以及http://docs.marklogic.com/guide/ingestion ,尤其是http: //docs.marklogic 上有关 mlcp(内容泵)的部分。 com/guide/摄取/内容泵

于 2012-11-29T22:17:19.247 回答
0

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

http://www.xmlsh.org/FunctionsStAX

-大卫

于 2012-12-15T22:52:37.230 回答