[英]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.