事先道歉,可能重复。
我有一个包含117,426个文件(每个都是N-TRIPLES
格式)的存档,我希望将其加载到TDB数据集的默认图表中。由于文件数量很大,我需要能够执行此导入,而无需手动选择要上传的单个文件。
我在Bash,Jena和Fuseki的发行权可供我使用。
如果可能的话,我想避免只编写一个java应用程序来执行此操作的最坏情况。如果我必须为此编写一个java应用程序,RIOT / TDB中存在什么钩子来执行程序化批量加载?
答案 0 :(得分:3)
作为一般性注释,一种方法是连接N-Triples文件以生成一个文件。
您可以使用tdbloader
或tdbloader2
一次加载多个文件。
tdbloader --loc DB ... your files ...
对于单个命令行调用,117,426可能会对您造成压力。您可以将文件传输到tdbloader
(它就像首先连接文件一样)
... | tdbloader --loc DB -- -
其中...
是一种让bash捕获文件的方法(可能来自子shell)。
e.g。 (您需要调整以存档所有117,426个文件):
( for x in data*.nt
do
cat $x
done
) | tdbloader --loc DB -- -