распараллеливание массовой загрузки aws neptune
Я пытаюсь вставить 624118983 записи, разделенные на 1000 файлов, загрузка всего в neptune занимает 35 часов, что очень медленно. Я настроил экземпляр db.r5.large с двумя экземплярами. У меня есть 1000 файлов, хранящихся в ведре S3. У меня есть один запрос на загрузку, указывающий на папку корзины S3, в которой есть 1000 файлов. когда я получаю статус загрузки, я получаю ответ ниже.
{
"status" : "200 OK",
"payload" : {
"feedCount" : [
{
"LOAD_NOT_STARTED" : 640
},
{
"LOAD_IN_PROGRESS" : 1
},
{
"LOAD_COMPLETED" : 358
},
{
"LOAD_FAILED" : 1
}
],
"overallStatus" : {
"fullUri" : "s3://myntriplesfiles/ntriple-folder/",
"runNumber" : 1,
"retryNumber" : 0,
"status" : "LOAD_IN_PROGRESS",
"totalTimeSpent" : 26870,
"startTime" : 1639289761,
"totalRecords" : 224444549,
"totalDuplicates" : 17295821,
"parsingErrors" : 1,
"datatypeMismatchErrors" : 0,
"insertErrors" : 0
}
}
Я вижу, что LOAD_IN_PROGRESS всегда равен 1. Это означает, что neptune не пытается загружать несколько файлов при распараллеливании. Как мне сказать нептуну загрузить 1000 файлов при некотором распараллеливании, например, с коэффициентом параллелизма 10. Мне не хватает какой-либо конфигурации?
Вот как я использую api для массовой загрузки.
curl -X POST -H 'Content-Type: application/json' https://neptune-hostname:8182/loader -d '
{
"source" : "s3://myntriplesfiles/ntriple-folder/",
"format" : "nquads",
"iamRoleArn" : "my aws arn values goes here",
"region" : "us-east-2",
"failOnError" : "FALSE",
"parallelism" : "HIGH",
"updateSingleCardinalityProperties" : "FALSE",
"queueRequest" : "FALSE"
}'
Пожалуйста посоветуй.
2 ответа
Массовый загрузчик Amazon Neptune не загружает несколько файлов параллельно, а распределяет содержимое каждого файла между числом доступных рабочих потоков на экземпляре записи (ограничено тем, как у вас есть
В дополнение к вышесказанному, сжатие файлов Gzip поможет ускорить чтение по сети. Neptune по умолчанию понимает файлы, сжатые gzip. ТакжеqueueRequest: TRUE
можно настроить для достижения лучших результатов. Neptune может поставить в очередь до 64 запросов. Вместо того, чтобы отправлять только один запрос, вы можете запускать несколько файлов параллельно. Вы даже можете настроить зависимости между файлами, если вам нужно. Ссылка: https://docs.aws.amazon.com/neptune/latest/userguide/load-api-reference-load.html Вам нужно перейти на более крупный экземпляр модуля записи только в тех случаях, когда загрузка ЦП постоянно превышает 60%. .