2012-02-08 56 views
2

我在我的項目中使用了dbpedia,並且我想創建一個本地sparql終點,因爲在線一個不可靠。我下載了數據轉儲(大型NT文件)並決定使用Jena TDB。使用NetBeans IDE正在使用的輸入流源NT文件的讀取,然後使用下面的代碼行到NT文件加載到datasetGraph:如何將大三元數據加載到jena中tdb

TDBLoader.load(indexingDataset, inputs, true); 

我讓現在運行約5小時,它仍然沒有完成。雖然這樣做,但筆記本電腦上的所有內容似乎都會因爲它佔用了我所有的物理內存空間而放慢速度。有沒有更快的方法來做到這一點?

該文檔說使用tdbloader2,但它僅在Windows使用時可用於Linux。如果有人能夠告訴我如何在Windows中使用這個工具使用cygwin,那真的很有幫助。請考慮我從未在窗口中真正使用過Cygwin。

回答

6

TDB的最新版本有兩個用於批量加載的命令行工具:tdbloader和tdbloader2。第一個是純Java,它運行在Windows以及任何帶有JVM的機器上。第二個是Java和UNIX shell腳本的混合(特別是它使用UNIX排序)。它在Linux上運行,我不確定它在Cygwin上運行。我建議你在具有儘可能多RAM的64位機器上使用tdbloader。 :-)

TDB的最新版本,請訪問:TDB的 http://www.apache.org/dist/incubator/jena/jena-tdb-0.9.0-incubating/jena-tdb-0.9.0-incubating-distribution.zip

開發版本有一個額外的大loader命令:tdbloader3。這是tdbloader2的純Java版本。我們沒有使用UNIX排序(僅適用於文本文件),而是使用純二進制文件的Java外部排序。有關tdbloader3的更多詳細信息,請搜索JENA-117問題。

您可以在Apache快照存儲庫中找到TDNA的SNAPSHOT,您會收到警告,但尚未發佈。

對於更冒險的還有tdbloader4,它不包含在Apache Jena中,它將被視爲實驗原型。 tdbloader4使用MapReduce建立TDB索引(即B +樹索引)(這有點延伸了MapReduce模型,但它工作正常)。總結一下,我在Windows上給你的建議是:下載TDB的最新官方版本,並將tdbloader用於具有大量內存的64位機器。如果您還沒有,請使用m1.xlarge EC2實例(即15 GB的RAM)(或同等產品)。

如需更多幫助,我誠邀您加入[email protected]官方郵件列表,我相信您會得到更好更快的支持。

+2

我目前使用tdbloader2將大約1.2億個三元組加載到TDB中。這很慢(8小時以上),並且隨着負載的進展而減慢。他們的任何基準比較tdbloader2,tdbloader3和tdbloader4嗎?或者有什麼辦法可以合併多個TDB數據庫?任何意見,將不勝感激。 – 2014-01-31 09:32:05