Я пытаюсь загрузить массивные данные в сервис Dynamodb.
Мой CSV содержит 100 миллионов записей.
каждая запись содержит 4 поля (3 типа строки и еще одно типа BIGINT).
Я создал 1 таблицу на базе данных Dynamo:
1. с ключом раздела и ключом сортировки и двумя БИС.
2. с 10000 WCU
Я попробовал несколько подходов, но безуспешно:
написал скрипт, который выполняет параллельные запросы с помощью метода batch_write boto3 api.
создание кластера EMR, загрузка данных CSV в таблицу кустов, сопоставление таблицы кустов с таблицей динамо, а затем загрузка из таблицы кустов в таблицу DynamodB через 15 параллельных процессов.
Статистика:
подход 1: 2 минуты для загрузки 10K записей
подход 2: 3 часа и 20 минут загрузка 26 миллионов записей
Любая помощь будет признательна