2012-04-04 61 views
3

我是Marklogic世界的新手。我的程序使用一个定制的Java应用程序来每隔30秒查询一次。结果以XML格式返回。 Java应用程序使用XCC API(Marklogic API)将检索到的数据插入到ML中的单个XML文件中。数据大小为每分钟6 MB,如果应用程序运行一天左右,则数据量将以GB为增长。我不知道我需要做什么管理配置才能将这些大量数据放在MarkLogic的单个XML文件中。有人可以验证我的方法,或者建议我是否必须在管理员级别进行任何配置更改。 XML的结构如下...在Marlogic中存储XML数据的最佳方式

<?xml version="1.0" encoding="UTF-8"?>  
<moreovercontentdump>   
<article id="_6232903453">   
<description></description> 
<author></author>  
<source_category>Local</source_category>  
<genre>General</genre> 
<publisher></publisher> 
<media_type>text</media_type> 
<docurl>http://www.ilrestodelcarlino.it</docurl>  
<harvest_time>Apr 4 2012 4:28PM</harvest_time>  
<valid_time>May 14 2012 4:27PM</valid_time>  
</article> 
<article id="_6232903453">   
<description></description> 
<author></author>  
<source_category>Local</source_category>  
<genre>General</genre> 
<publisher></publisher> 
<media_type>text</media_type> 
<docurl>http://www.ilrestodelcarlino.it</docurl>  
<harvest_time>Apr 4 2012 4:28PM</harvest_time>  
<valid_time>May 14 2012 4:27PM</valid_time>  
</article> 
<article id="_6232903453">   
<description></description> 
<author></author>  
<source_category>Local</source_category>  
<genre>General</genre> 
<publisher></publisher> 
<media_type>text</media_type> 
<docurl>http://www.ilrestodelcarlino.it</docurl>  
<harvest_time>Apr 4 2012 4:28PM</harvest_time>  
<valid_time>May 14 2012 4:27PM</valid_time>  
</article> 
</moreovercontentdump>   

回答

2

一般情况下,你会如果你从存储在Moreover.com每个MarkLogic响应它自己的文件进行更好的服务。在某些方面,在MarkLogic内部,文档就像RDBMS中的行。另外,如果你插入其中的一个30秒,我很难看到每分钟摄取6MB的情况。你有没有遗漏一些细节?

+0

1.每命中moreover.com取我成千上万的文章(即约每分钟6 MB)。我没有在上面的示例xml中提供所有标记详细信息。 2.如果每次打击在marklogic中保存为新的XML文件,marklogic DB中每天将会有2880个文件,并且数量将日益增长。有问题吗? – Pankaj 2012-04-05 06:22:50

+0

如果将文档拆分为文章,您可能可以对尚未更改的文章进行重复删除,从而减少每天的总体摄入量。 “有问题吗?”是一个很难回答的问题。只要您具有处理此吞吐量的硬件容量,数据库每天可以清楚地处理2,880个插入。 – derickson 2012-04-05 12:56:29

7

看看示例XML,我想你可能会希望将每篇文章存储在它自己的文档中。如果您希望将每个文档插入到异步任务中,可以编写一个FLWOR表达式来调用xdmp:document-insert,或者致电xdmp:spawn

最简单的代码可能是这样的:

for $article in xdmp:http-get($some-url, $options)/moreovercontentdump/article 
let $uri := concat('moreover/', $article/@id) 
return xdmp:document-insert($uri, $article) 

你可以通过改写一些原来的XML增强的代码。例如,您可能想要以xs:dateTime格式重新格式化harvest_timevalid_time元素。这样你可以在这些值上创建一个范围索引。

相关问题