Ho una tabella dinamo con i seguenti attributi:DynamoDB - Indice Secondario globale su voci impostate
- id (Number - chiave primaria)
- titolo (String)
- created_at (Number - lungo)
- tag (StringSet - contiene un insieme di tag dicono Android, iOS, ecc,)
voglio essere in grado di interrogare dai tag - get me tutti gli oggetti etichettati android. Come posso farlo in DynamoDB? Sembra che l'indice secondario globale possa essere compilato solo su ScalarDataTypes (che è Numero e Stringa) e non sugli elementi all'interno di un set.
Se l'approccio che sto prendendo è sbagliato, va bene anche un modo alternativo per farlo creando diverse tabelle o cambiando gli attributi.
tag non può essere una chiave primaria. Può essere solo una chiave per l'indicizzazione. la chiave primaria deve essere un identificativo univoco. – 500865
hash + intervallo = chiave primaria. Tag + id è univoco in quanto id è univoco (secondo la tua domanda) –
Avere un hash come tag comporta un caricamento non uniforme perché non c'è un numero elevato di valori tag distinti. Avere id come hash e tag come l'intervallo della nuova tabella con GSI che ha tag come hash e id come range è il modo consigliato. http://www.slideshare.net/AmazonWebServices/deep-dive-amazon-dynamodb (controlla diapositiva 33). – 500865