DynamoDB - Várias teclas de intervalo

9

É possível ter vários campos como chave de intervalo?

Digamos que eu tenha uma tabela em que cada linha seja identificada exclusivamente por <A,B,C>

 -------------------------------
 A   |   B   |  C  |  D   |  E  |
 -------------------------------

onde Aestá a hashchave primária

e eu quero Be Cser as rangechaves primárias .

Como posso ter mais de 2 campos como chave primária no DynamoDB?

user7
fonte

Respostas:

6

Você não pode ter mais de 2 campos como chave primária no DynamoDB.

Como solução alternativa, você pode criar local secondary indexpara cada campo que deseja ser uma chave de intervalo. Mas você não poderá criar consultas com várias chaves de intervalo simultaneamente, porque o DynamoDB pode usar apenas um índice por vez.

Considere o uso de expressões de filtro, provavelmente você acabará usando mais taxa de transferência de leitura (a filtragem é realizada após os dados serem recebidos do banco de dados) do que o necessário, mas obtém os resultados desejados.

Vasily Sochinsky
fonte
8

Coloque uma cópia de B e C no campo range (como uma coluna extra) e faça com que sua chave de range seja "B_C" e você ainda poderá ter colunas separadas para B e C, se necessário.

Jeff M
fonte
Essa abordagem pode ser usada como uma solução para esse problema ?
Birowsky