У нас есть длинная программа, которая копирует данные из базы данных SQL Server в базу данных Neo4j. В настоящее время он занимает более 12 часов. Для каждой записи из базы данных SQL Server программа должна выполнять десятки обращений к Neo4j. Я не могу это изменить.Ускорение работы Neo4j в Azure
Программа и Neo4j работают в роли работника Azure. Neo4j работает в своей собственной службе.
Мы попытались ускорить процесс путем обновления от Medium машины (2 х 1,6 ГГц процессор, 3,5 Гб оперативной памяти, 490GB хранения) к большой машины (4 х 1,6 ГГц процессор, ОЗУ 7 ГБ, 1000 ГБ Storage) , но это не ускорило программу.
Я не могу изменить количество обращений к Neo4j, но я надеюсь, что есть способы ускорить каждый доступ. Любые предложения по ускорению доступа к Neo4j, работающие в роли работника Azure, будут высоко оценены.
Предполагая, что вы вызываете вызовы REST API в службу Neo4j, размещенную в вашей рабочей роли Azure, проблема будет в объеме HTTP-запросов, которые вы выполняете при миграции данных. Из-за этого не будет никакой пользы для масштабирования вашего экземпляра вычислений, поскольку ваше узкое место находится в сетевом уровне. Я понимаю, что вы размещаете свое приложение и службу Neo4j в одном экземпляре. Это должно позволить вам выполнить некоторую отладку, чтобы понять ограничения в количестве ваших вызовов. Какой процесс миграции данных вы используете? –
Кроме того, какой объем за час записей вы переносите из SQL? Вы используете пакетный API или просто выполняете одиночные вызовы? Можете ли вы показать некоторые примеры кода, чтобы я мог лучше вам помочь? Также где находится ваш SQL-сервер? Какие запросы вы делаете для SQL? –