В настоящее время мы разрабатываем таблицу DynamodB для хранения определенных атрибутов файла.Есть 2 основных столбца
- Дата: - Содержит дату в формате ГГММДД, например: -20190618
- Имя файла: - xxxxxxxxxxx.json
В настоящее время ключом раздела является Дата, а ключом сортировки - FileName.Мы ожидаем около 500000 файлов с различными именами файлов в каждый день (это может увеличиться с течением времени).Имена файлов будут повторяться каждый день, то есть типичная схема будет такой, как показано ниже
Дата Имя файла 20190617 abcd.json 20190618 abcd.json
У нас есть серия запросов, основанная на Дата и триггер динамодаба.Запросы работают отлично.В настоящее время мы наблюдаем, что число одновременных лямбда-казней ограничено до 2, поскольку мы делимся по дате.Пытаясь улучшить параллелизм лямбды, мы столкнулись с двумя решениями
1). Ссылаясь на следующую ссылку (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-partition-key-sharding.html)), одной из идей является добавление фиксированного числа случайных суффиксов для поля даты, т. Е. (20190617.1 к20190617.500) для разделения данных на 500 разделов с 1000 записями в каждом. Это обеспечит количество параллелизма, а также будет минимальное изменение для запроса
2) Второй вариант - изменить разбиение таблицы следующим образом. РазделКлюч: - FileName и SortKey: - Дата.Это приведет примерно к 500000 разделам (которые могут увеличиться).Для запросов по дате нам нужно будет добавить GSI, но мы достигнем большего параллелизма в Lambda
. Мы не создали таблицу с 500000 разделами (которая может увеличиться).Любое тело имеет такой опыт ... Если это так, пожалуйста, прокомментируйте
Любая помощь приветствуется