簡體   English   中英

使用批量上傳功能無法將三元組批量上傳到virtuoso圖

[英]Cannot bulk upload triples to virtuoso graph using the bulk upload functions

我正在嘗試使用此處提到的批量上傳功能將三元組上傳到Virtuoso: https : //github.com/dbpedia/dbpedia-docs/wiki/Loading-Data-Virtuoso 有時批量上傳有效,有時不行。

所以這就是我所做的(我在CentOS機器上工作):

下載/安裝Virtuoso(最新版本)

通過指定默認的virtuoso.ini文件在端口8890上啟動Virtuoso:

virtuoso -f virtuoso.ini

啟動了隨附的iSQL解釋器:

./isql 1111

加載了批量上傳功能(例如,可以在這里找到: https : //github.com/mysema/rdfbean/blob/master/rdfbean-virtuoso/doc/rdfloader.sql ):

LOAD rdfloader.sql

上傳了第一個三重文件(〜500 Mb):

ld_dir('/path/to/dir1','*.gz','http://graph.1.com');
rdf_loader_run();

(我們將此交易稱為1,效果很好)

試圖將另一個文件加載到另一個圖形

ld_dir('/path/to/dir2','*.gz','http://graph.2.com');
rdf_loader_run();

(我們將該交易稱為2)

它不起作用,即使Virtuoso日志文件未指向錯誤源,但向其寫入事務事件的SQL表( DB.DBA.LOAD_LIST )仍指出行16061出了點問題:

37000 SP029: TURTLE RDF loader, line 16061: syntax error processed pending to here.

我相應地更正了該文件,在iSQL解釋器中輸入與事務2幾乎相同的命令:

ld_dir('/path/to/dir2','*.gz','http://graph.3.com');
rdf_loader_run();

(我們將該交易稱為3)

現在什么也沒有發生。 DB.DBA.LOAD_LIST甚至不包含該新事務。 它僅包含事務1和2。

有誰知道引擎蓋下發生了什么,以及為什么這里什么都沒發生?

僅供將來參考

如果在批量上傳操作期間發生錯誤,則需要先清除DB.DBA.LOAD_LIST表,然后再繼續。

private static final String clearBulkLoadTbl = "DELETE FROM DB.DBA.load_list";

private void clearBulkLoadHistory() throws SQLException {
    PreparedStatement clearBulkLoadTblStmt;
    clearBulkLoadTblStmt = virt_conn.prepareStatement(clearBulkLoadTbl);                        
    clearBulkLoadTblStmt.executeUpdate();
}

希望它可以幫助某人。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM