Dado que AWS DynamodB es una base de datos de valor clave, cada elemento en cualquier tabla debe tener una identificación de clave primaria única. Es importante tener en cuenta que necesita definir estas claves primarias a medida que crea su mesa. Además, debe proporcionar la clave principal para cada elemento mientras inserta el elemento en una tabla.
El requisito previo principal al configurar las claves primarias es la singularidad. Dos o más elementos no pueden tener una clave primaria similar.
Este artículo analiza todo lo que necesita saber sobre las claves principales de Dynamodb. Discutiremos los diversos tipos de claves primarias que se usan en DynamodB y cómo configurar cada tipo.
Tipos de claves primarias de DynamodB
Hay dos tipos de claves primarias en DynamodB:
A. Clave de partición (clave primaria simple)
También conocido como una clave primaria simple, una clave de partición consiste en un atributo. Dynamodb utiliza el valor de la clave de partición como entrada a una función de hash interna. La salida de la función hash determina la partición (almacenamiento físico interno a dynamodb) para almacenar sus elementos.
Una clave primaria simple se asemeja a las tiendas de valor de clave típicas como usar una clave primaria para acceder a una tabla SQL. También puede asociar de cerca las claves principales para memcachar las tiendas de datos. Un excelente ejemplo de clave de partición es un user_name o user_id en la tabla de usuarios.
Vea el siguiente ejemplo:
Mesa de usuarios
La tabla de usuarios proporcionadas tiene IDED como clave primaria o clave de partición simple. Puede acceder fácilmente a los detalles de cualquier elemento dentro de la tabla proporcionando el ID de usuario del artículo.
Aquí hay un ejemplo sobre cómo puede establecer una clave de partición en una tabla DynamodB usando el AWS SDK para Python (Boto3):
importar boto3
# Crear un cliente Dynamodb
Dynamodb = Boto3.Cliente ('Dynamodb')
# Establezca el nombre de su tabla y el atributo (columna) para usar como clave de partición
table_name = 'mytable'
partition_key_name = 'id'
# Defina el esquema de la tabla
table_schema = [
'AttributeName': partition_key_name,
'KeyType': 'hash'
]
# Crear la tabla con la tecla Partition especificada
Respuesta = Dynamodb.crear mesa(
TableName = table_name,
KeySchema = table_schema,
AttributeDefinitions = [
'AttributeName': partition_key_name,
'AttributeType': 's'
],
ProvisioneDthroughput =
'ReadCapacityUnits': 5,
'WriteCapacityUnits': 5
)
Imprimir (respuesta)
La sintaxis dada crea una tabla DynamodB con una clave de partición llamada "ID" del tipo "S" (String) Type. El KeyType de "Hash" especifica que este atributo es la clave de partición.
Tenga en cuenta que esta es solo una forma de establecer una clave de partición en Dynamodb. También puede usar la consola de administración de AWS, la AWS CLI u otros métodos para crear una tabla con una clave de partición.
B. Tecla de partición y tecla de clasificación (teclas primarias compuestas)
Una clave primaria compuesta contiene dos atributos. El primer atributo es la clave de partición, y la segunda es la clave de clasificación. Combinación de la clave de partición y la clave de clasificación forma un identificador único para un elemento en la tabla.
Además de la tecla Partition, puede usar la tecla de clasificación aún más para reducir la búsqueda de un elemento en la tabla. La clave de clasificación también ayuda a determinar el orden en que los datos se almacenan dentro de una partición. Vea el siguiente diagrama:
Mesa de música
La tabla anterior tiene un atributo de clave de partición y un atributo de clave de clasificación. Por lo tanto, dos elementos pueden tener el mismo valor de clave de partición pero tienen diferentes valores de clave de tipo. Las claves compuestas (artista y songtitle) en la mesa de música te ayudan a obtener un elemento en particular.
Puede crear una tabla con una tecla compuesta utilizando los siguientes pasos:
Paso 1: crear una clave de partición
El primer paso es crear una clave de partición. Después de ingresar el nombre de su tabla, use la siguiente sintaxis para crear una clave de partición.
AttributeName = string, keyType = string ..
La sintaxis del tipo de atributo proporcionado puede ser una cadena (s), número (n) o binario (b).
Si encuentra la sintaxis de taquigrafía engorrosa para configurar su clave de partición, puede usar la siguiente sintaxis JSON:
[
"AttributeName": "cadena",
"KeyType": "Hash"
…
]
Alternativamente, el comando python que se discute en la sección anterior de este artículo puede ayudarlo a crear una clave de partición.
Paso 2: crear una clave de clasificación
Ahora puede crear una tecla de clasificación utilizando la siguiente sintaxis JSON. No use los atributos de identificación para sus teclas de clasificación. En su lugar, puede usar un tipo de atributo.
[
"AttributeName": "cadena",
"KeyType": "Rango"
…
]
Mientras usamos la función hash al crear una tecla de partición DynamoDB, ahora usamos la función de rango para configurar la tecla de clasificación Dynamodb.
Conclusión
Al elegir las claves primarias correctas para su tabla, puede recuperar y almacenar efectivamente los datos en Dynamodb. Es esencial considerar cuidadosamente la clave principal al diseñar su tabla, ya que afecta significativamente el rendimiento y la escalabilidad de su aplicación. Si decide agregar una tecla de clasificación, asegúrese de usar un atributo que rápidamente lo ayuda a resolver los elementos dentro de su mesa.