Quiero saber cómo elegir una clave principal para mi tabla de Amazon DynamoDB.
Descripción breve
Cada elemento de una tabla de DynamoDB debe tener una clave principal única. Puedes especificar una clave de partición o una clave principal compuesta. Para ayudarte a determinar la clave principal correcta que debes usar, consulta Prácticas recomendadas para diseñar claves de partición y usarlas con eficacia en DynamoDB.
Usa uno de los siguientes métodos para crear tu clave principal:
- Uso de un atributo de alta cardinalidad
- Uso de atributos compuestos
- Adición de números aleatorios a tu clave de partición
Resolución
Uso de un atributo de alta cardinalidad
Si la tabla tiene un atributo con un valor único para cada elemento, como los ID de usuario, el atributo es una buena clave principal. En este caso, la clave principal es una clave de partición.
Uso de atributos compuestos
Si tu tabla no tiene un atributo que sea único para cada elemento, puedes combinar diferentes atributos para crear una clave principal única. Por ejemplo, tienes una tabla de pedidos que tiene atributos para el identificador del cliente y el identificador del pedido. Combinas los dos valores de ID para obtener una clave de partición que es más probable que tenga muchos valores únicos. A continuación, utilizas otra columna, como la fecha del pedido, como clave de ordenación. En este caso, tienes una clave principal compuesta.
Adición de números aleatorios a tu clave de partición
Si tu caso de uso realiza escrituras de forma intensiva, añade números aleatorios en un rango predeterminado a tu clave de partición para aumentar la aleatoriedad de la clave. Para obtener más información, consulta Uso de la partición de escritura para distribuir las cargas de trabajo uniformemente en la tabla de DynamoDB.
Información relacionada
Choosing the right DynamoDB partition key (Elegir la clave de partición de DynamoDB correcta)
¿Por qué está limitada mi tabla aprovisionada de Amazon DynamoDB?
Effective data sorting with Amazon DynamoDB (Ordenación eficaz de datos con Amazon DynamoDB)