2012-04-04 115 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元素。這樣你可以在這些值上創建一個範圍索引。

相關問題