Я работаю с набором данных RDF, сгенерированным как часть нашего сбора данных, который состоит из около 1,6 М небольших файлов общим объемом 6.5 Гб (ntriples) и около 20 М троек. Моя проблема связана с временем, которое требуется для загрузки этих данных в трехместный магазин Sesame под управлением Tomcat.Как ускорить загрузку большого количества небольших файлов RDF в Sesame?
В настоящее время я загружаю его из скрипта Python через HTTP api (на том же компьютере), используя простые POST-запросы по одному файлу за раз, и для заполнения нагрузки требуется около пяти дней. Глядя на опубликованные тесты, это кажется очень медленным, и мне интересно, какой метод я могу использовать для быстрой загрузки данных.
Я действительно думал, что могу написать Java, чтобы напрямую подключаться к хранилищу, и так обойтись без накладных расходов HTTP. Однако я прочитал в ответе на другой вопрос, что одновременный доступ не поддерживается, так что это не похоже на вариант.
Если бы я должен был написать код Java для подключения к репозиторию HTTP, делает ли библиотека Sesame специальную магию, которая бы ускорила загрузку данных?
Может ли сгруппировать файлы в более крупные куски? Это приведет к сокращению накладных расходов HTTP для отправки файлов. Какой размер куска будет хорош? This blog post предлагает 100 000 строк на кусок (он сокращает больший файл, но идея будет такой же).
Спасибо,
Стив
Я модифицировал свой скрипт Python для пакетной обработки запросов и увидел значительное увеличение пропускной способности. На небольшом тестовом наборе, который загружал 83s для отдельных файлов, я получил время 1,5 с размером партии 500 файлов. Теперь я запускаю большие загрузки с размером партии 1000 файлов с временем загрузки минут, а не примерно за день. –