Мне нужно хранить данные транзакций для определенных учетных записей в QLDB. Можно ли как-то сделать разделение таким образом, чтобы QLDB хранила данные для одной учетной записи на одном сервере, чтобы мои фрагменты/запросы были быстрее?
Как сделать разделение QLDB эффективным?
Ответы (2)
QLDB не имеет сервера. AWS намеренно абстрагирует серверы, и даже если вы сегодня знаете детали реализации, она может измениться в любое время без предупреждения.
Когда QLDB в конечном итоге будет поддерживать несколько разделов/осколков/цепочек, даже тогда вам не следует пытаться думать об этом с точки зрения серверов, потому что нет гарантии, что один «ключ» раздела будет существовать в ровно одном разделе. /сервер.
Чтобы пояснить, что я имею в виду, я сравню с DynamoDB. (Несмотря на то, что я знаю, что у них разный дизайн, я думаю, что все же полезно отметить.) При использовании DynamoDB ваши данные секционируются на основе хеш-ключа, но нет гарантии, что все данные для одного значение hashkey существует в одном разделе. QLDB может сделать что-то подобное, а может и нет, но не следует делать никаких предположений о лежащей в основе реализации при проектировании таблицы.
При этом вы можете повысить производительность запросов при получении данных для одной учетной записи, если вы создайте индекс для вашего поля accountId
.
В выпуске QLDB 2019 года нет разделов. Все ваши данные записываются в одну «ветвь» (раздел) журнала. В индексированном хранилище есть несколько копий ваших данных, но у каждого из этих узлов есть все данные (для всех ваших таблиц и индексов).