Выбор пересечения DynamoDB с разбивкой на страницы

У меня следующая схема БД, и я хотел бы найти лучший способ выбрать список отсортированных ключей, которые являются общими для PK_A и PK_B:

+---------------+---------+
|      PK       | SortKey |
+---------------+---------+
|               | SK_A    |
| PK_A          | SK_B    |
|               | SK_C    |
| - - - - - - - |         |
|               | SK_B    |
| PK_B          | SK_C    |
|               | SK_D    |
+---------------+---------+

Итак, когда я выбираю PK_A и PK_B, он должен возвращать мне только SK_B и SK_C?

Любая помощь приветствуется.


person Alex    schedule 17.08.2020    source источник
comment
Вы пытаетесь получить элементы PK_A и PK_B в одном вызове?   -  person Kirk    schedule 17.08.2020
comment
да, на самом деле пересечение их SortKeys   -  person Alex    schedule 18.08.2020


Ответы (1)


Простой ответ, не получится (за один звонок).

Dynamo не является реляционной базой данных, такие операции, как пересечение, не поддерживаются.

Вам нужно будет запросить () один раз для каждого ключа раздела, а затем вычислить пересечение самостоятельно.

person Charles    schedule 18.08.2020
comment
Попался, это была моя идея, но я хотел получить подтверждение от других ребят :) Правильно ли я понимаю, что один из вариантов - создать еще один вторичный индекс, где ключ будет PK_A # PK_B, а значения будут теми пересекающимися отсортированными ключами? - person Alex; 18.08.2020
comment
Я полагаю, это сработает, если вы сможете его создать. Мне кажется, если бы вы могли его создать, у вас уже был бы ответ, и он вам не понадобился бы. - person Charles; 18.08.2020
comment
На самом деле я могу, но проблема в том, что PK_A и PK_B являются частями поисковых запросов, и если я захочу реализовать это таким образом - количество записей будет расти в геометрической прогрессии .... - person Alex; 18.08.2020