Como o AWS DynamoDB é um banco de dados de valor-chave, cada item em qualquer tabela deve ter uma identificação de chave primária única. É importante observar que você precisa definir essas chaves primárias ao criar sua mesa. Além disso, você precisa fornecer a chave primária para cada item enquanto insira o item em uma tabela.
O principal pré -requisito ao configurar as chaves primárias é a singularidade. Dois ou mais itens não podem ter uma chave primária semelhante.
Este artigo discute tudo o que você precisa saber sobre as chaves primárias do DynamoDB. Discutiremos os vários tipos de chaves primárias usadas no DynamoDB e como configurar cada tipo.
Tipos de teclas primárias do DynamoDB
Existem dois tipos de chaves primárias no DynamoDB:
A. Chave de partição (chave primária simples)
Também conhecido como uma chave primária simples, uma chave de partição é consiste em um atributo. O DynamoDB usa o valor da chave da partição como entrada para uma função de hash interna. A saída da função de hash determina a partição (armazenamento físico interno ao DynamoDB) para armazenar seus itens.
Uma chave primária simples se assemelha às lojas de valor-chave típicas, como o uso de uma chave primária para acessar uma tabela SQL. Você também pode associar de perto as chaves primárias para Memcached the Data Stores. Um excelente exemplo de chave de partição é um user_name ou user_id em uma tabela de usuários.
Veja o seguinte exemplo:
Tabela de usuários
A tabela de usuários fornecida tem o UserID como a chave primária simples ou a chave de partição. Você pode acessar facilmente os detalhes de todos os itens dentro da tabela, fornecendo o usuário do usuário do item.
Aqui está um exemplo de como você pode definir uma chave de partição em uma tabela DynamoDB usando o AWS SDK para Python (BOTO3):
Importar BOTO3
# Crie um cliente do DynamoDB
DynamoDB = BOTO3.Client ('DynamoDB')
# Defina o nome da tabela e o atributo (coluna) para usar como chave de partição
tabela_name = 'myTable'
partition_key_name = 'id'
# Defina o esquema da tabela
tabela_schema = [
'AtributeName': partition_key_name,
'Keytype': 'hash'
]
# Crie a tabela com a chave de partição especificada
Resposta = DynamoDB.criar a tabela(
TableName = tabela_name,
Keyyschema = tabela_schema,
Atributefinitions = [
'AtributeName': partition_key_name,
'AtributeType': 's'
],
Provisionedthroughput =
'ReadCapacityUnits': 5,
'WriteCapacityUnits': 5
)
Imprimir (resposta)
A sintaxe dada cria uma tabela de dynamoDB com uma chave de partição chamada "id" de "s" (string) tipo. O keytype de "hash" especifica que esse atributo é a chave de partição.
Observe que esta é apenas uma maneira de definir uma chave de partição no DynamoDB. Você também pode usar o console de gerenciamento da AWS, a AWS CLI ou outros métodos para criar uma tabela com uma chave de partição.
B. Chave de partição e chave de classificação (teclas primárias compostas)
Uma chave primária composta contém dois atributos. O primeiro atributo é a chave da partição, e a segunda é a chave de classificação. Combinando a chave da partição e a chave de classificação forma um identificador exclusivo para um item na tabela.
Além da chave da partição, você pode usar a chave de classificação ainda mais para restringir a busca por um item na tabela. A chave de classificação também ajuda a determinar a ordem em que os dados são armazenados em uma partição. Veja o seguinte diagrama:
Tabela de música
A tabela anterior possui um atributo de chave de partição e um atributo -chave de classificação. Assim, dois itens podem ter o mesmo valor de chave de partição, mas têm valores de chave de classificação diferentes. As chaves compostas (artista e música) na mesa de música ajudam você a obter um item específico.
Você pode criar uma tabela com uma chave composta usando as seguintes etapas:
Etapa 1: Crie uma chave de partição
O primeiro passo é criar uma chave de partição. Depois de inserir o nome da sua tabela, use a seguinte sintaxe para criar uma chave de partição.
AtributeName = string, keytype = string…
A sintaxe do tipo de atributo fornecida pode ser uma (s) string (s), número (n) ou binário (b).
Se você achar a sintaxe abreviada que está dependa ao definir sua chave de partição, poderá usar a seguinte sintaxe JSON:
[[
"Nome do atributo": "string",
"KeyType": "Hash"
..
]
Como alternativa, o comando python que é discutido na seção anterior deste artigo pode ajudá -lo a criar uma chave de partição.
Etapa 2: Crie uma chave de classificação
Agora você pode criar uma chave de classificação usando a seguinte sintaxe JSON. Não use os atributos de identificação para suas chaves de classificação. Em vez disso, você pode usar um tipo de atributo.
[[
"Nome do atributo": "string",
"KeyType": "Range"
..
]
Enquanto usamos a função de hash ao criar uma chave de partição do DynamoDB, agora usamos a função de intervalo para configurar a tecla de classificação do DynamoDB.
Conclusão
Ao escolher as chaves primárias corretas para sua tabela, você pode efetivamente recuperar e armazenar os dados no DynamoDB. É essencial considerar cuidadosamente a chave primária ao projetar sua tabela, pois afeta significativamente o desempenho e a escalabilidade do seu aplicativo. Se você decidir adicionar uma chave de classificação, verifique se você usa um atributo que rapidamente o ajudará a resolver os itens da sua tabela.