Как выбрать раздел и сортировать ключи для иерархической модели - PullRequest
0 голосов
/ 23 сентября 2019

Пожалуйста, сообщите, если это неправильное место, чтобы спросить об этом.

Я пытаюсь найти подходящую пару ключ раздела / ключ сортировки для простой реляционной модели (у продавца много клиентов, клиентимеет много заказов), который охватывает следующие шаблоны запросов:

  • Для данного продавца получить все заказы для данного клиента в диапазоне дат;
  • Для данного продавца получить всезаказы для всех клиентов в диапазоне дат.

Идентификаторы моих заказов имеют вид yyyy-mm-dd-random_string, поэтому их можно отсортировать по дате.В каждом заказе есть только один элемент.

Использование seller_id в качестве ключа разделения и customer_id#order_id в качестве ключа сортировки охватывает первый случай использования, но нет способа "перепрыгнуть" через клиентов.

Как я могу получить эти два запроса из одних и тех же записей?

Бонус:

  • Есть ли способ сделать это без вторичных индексов?
  • Существует ли общий подход для «перепрыгивания» через иерархические отношения?

1 Ответ

1 голос
/ 28 сентября 2019

Для поддержки вашего второго запроса вам нужно создать вторичный индекс для seller_id и order_id.

Существует способ сделать это без вторичных индексов, но для этого потребуется полное сканирование таблицы.

Общий подход к «перепрыгиванию» через поля в схеме иерархического ключа заключается в созданииGSI с ключом, который пропускает поле, в которое вы «прыгаете».

...