Можно ли временно приостановить процесс массовой загрузки RDF, а затем восстановить его для обработки?

В настоящее время я выполняю массовую загрузку дампов данных DBpedia и Freebase в виртуальную открытую версию v7, используя процедуру rdf_loader_run(). База данных находится на нашем сервере, и у меня есть еще один график IRI в Virtuoso, запущенный для онлайн-сервиса. Процесс загрузки в значительной степени влияет на скорость отклика сервиса. Могу ли я использовать rdf_loader_stop() в isql, чтобы временно приостановить загрузку потоков, и способен ли он вернуться к прежнему состоянию загрузки, снова запустив команду rdf_loader_run()?
Официальная вики плохо объясняет это.

3 ответа

Решение

rdf_loader_stop() прекратит импорт после завершения импорта файлов На этом этапе очередь фактически остается нетронутой. Строго говоря, он просто устанавливает флаг, который проверяет процесс импорта, прежде чем перейти к следующему файлу в очереди.

rdf_loader_run() продолжит со следующими файлами в очереди

rdf_load_stop() прекратит импорт, и вы можете перезапустить его в любое время, запустив rdf_loader_run() снова.

Если вам нужен грубый форс, введите txn_killall(1),

Вы можете проверить статус вашего импорта, открыв новое окно isql и набрав следующий запрос: SELECT ll_state, COUNT(ll_state) FROM load_list GROUP BY ll_state

ll_state = 0: файлы еще не обработаны
ll_state = 1: файлы, которые в настоящее время обрабатываются
ll_state = 2: файлы, которые завершены

Если вы сделали грубую остановку, вам придется снова изменить строки ll_state=1 на ll_state=0, чтобы убедиться, что они будут обработаны.

rdf_load_stop() это то, что вы ищете. Тем не менее, он просто останавливает загрузку следующего файла. Текущий файл должен закончиться первым.

Это в основном вставляет ##stop файл в db.dba.load_list таблица, которая (я полагаю) проверяется первой перед тем, как Virtuoso обработает следующий файл в load_list

Другие вопросы по тегам