Como definir as chaves de partição do DynamoDB

Como Definir As Chaves De Particao Do Dynamodb



A produtividade de qualquer banco de dados depende da acessibilidade dos dados, pois a busca por um item em vários objetos pode ser cansativa. Muitas vezes, como você consulta o banco de dados é sempre uma consideração séria. As chaves de partição são seus principais pontos de entrada no DynamoDB sempre que você deseja fazer consultas altamente eficientes.

Normalmente, as chaves de partição nas tabelas são exclusivas. Assim, é impossível ter dois ou mais itens com a mesma chave de partição em uma tabela, mas o inverso pode acontecer quando usado em índices. Além disso, as chaves de partição são impossíveis de alterar depois que você cria uma tabela, pois são imutáveis.







Este artigo discute sobre chaves de partição. Vamos nos concentrar no motivo pelo qual você precisa das chaves de partição e nas práticas recomendadas a serem seguidas ao defini-las. Por fim, veremos como as chaves de partição do DynamoDB são essenciais.



O que é uma chave de partição do DynamoDB e por que ela é importante?

Uma chave de partição é uma chave primária simples no DynamoDB, geralmente consistindo em um único atributo. Cada item em uma tabela do DynamoDB tem uma chave de partição exclusiva para permitir processos de consulta rápidos e eficientes.



Você pode emparelhar uma chave primária com uma chave de classificação para criar uma chave primária composta contendo dois atributos. Quando usados ​​juntos, você pode organizar todos os dados em uma chave de partição usando o valor da chave de classificação.





Como o DynamoDB reserva os dados como um consórcio de atributos chamados itens, os atributos têm chaves de valor primário exclusivas para facilitar o acesso. Notavelmente, os itens no DynamoDB são semelhantes a registros, campos, colunas ou linhas na maioria dos sistemas de banco de dados.

Além disso, o DynamoDB permite distribuir os dados em partições de até 10 GB de unidades de armazenamento. Cada tabela pode, portanto, ter uma ou mais partições. Você pode usar o valor de uma chave de partição como entrada para a função hash interna do banco de dados, com a saída da função hash que determina a partição na qual o item está armazenado. Além disso, a localização de um item determina a partição na qual ele é armazenado.



Como definir as chaves de partição do DynamoDB

Definir as chaves de partição pode ser uma tarefa difícil se você ainda não entender o conceito. No entanto, esse processo pode ser fácil e eficiente quando você reúne as dicas e truques necessários. A seguir estão algumas das práticas recomendadas a serem seguidas ao configurar chaves de partição:

1. Escolha as chaves de partição corretas

O tipo de chave de partição determina a conveniência e a eficiência de consultar seus dados. Eles são os principais pontos de entrada para consultar seus dados, e definir os padrões de acesso de cada aplicativo é fundamental.

É aconselhável usar os atributos de alta cardinalidade ao configurar suas chaves de partição do DynamoDB. Os atributos de alta cardinalidade apresentam os valores distintos para cada item e podem incluir o employee_id, employee_no, order_id, emailid, customerid ou orderid.

2. Use a convenção de nomenclatura PK

As chaves de partição geralmente usam a convenção de nomenclatura pk. Este método de nomenclatura garante um mecanismo de nomenclatura preciso sem discriminar com base no tipo ou modelo do item representado.

Por exemplo, embora você possa ficar tentado a usar o postID e o userID como chaves de partição para os modelos Post e User em uma tabela, o DynamoDB permite apenas uma chave de partição para cada tabela. Assim, você não pode usar dois em uma única tabela. Observe que as tabelas sem chaves de classificação podem ter chaves de partição de ID.

3. Use atributos compostos

Algumas tabelas se beneficiam mais das chaves compostas. Isso quer dizer que você precisa de mais de um único atributo para formar as chaves exclusivas. Por exemplo, você pode usar convenientemente o customer_ID, country_code e product_ID para formar uma chave de partição (customerid#countrycode#productid). Ao mesmo tempo, você pode usar o order_id como sua chave de classificação.

4. Adicione Números Aleatórios Adequadamente

Se você espera um enorme volume de gravações para cada chave, usar um prefixo ou sufixo adicional torna os casos de uso pesado mais eficientes. Por exemplo, você pode usar o número da fatura juntamente com um conjunto de números aleatórios como sua chave de partição. Lembre-se de separar as várias seções de sua chave de partição. Por exemplo, InvoiceNumber#125656#0 como uma chave de partição é ideal para uso intenso com milhares de gravações por segundo.

Criar uma chave de partição do DynamoDB

Assim como as chaves de classificação, a criação de uma chave de partição no DynamoDB envolve a criação de um esquema de chave para sua tabela. Claro, isso acontece quando você cria uma tabela. Isso geralmente envolve descrever seu atributo usando o nome do atributo ao lado do tipo de atributo. A seguinte sintaxe ajudará:

AttributeName=string,KeyType=string...

Na sintaxe fornecida, o nome do atributo é o nome real do atributo, enquanto o tipo de atributo pode ser String(S), Number(N) ou Binary(B).

Você também pode optar por usar uma sintaxe JSON conforme mostrado a seguir:

[

{

'Nome do Atributo': 'string',

'Tipo de chave': 'HASH'

}

...

]

Qualquer que seja a sintaxe escolhida, a função do atributo assume a função HASH porque estamos criando uma chave de partição. Pelo contrário, o tipo de chave assume uma função RANGE ao criar as chaves de classificação.

Finalmente, também é possível alterar uma chave de partição usando o seguinte utilitário:

DynamoDBClient.updateItem({
'TableName': 'minhaTable_Name',
'Chave': {
'pc': {
'S': 'minha_PartitionKey'
}
},
'UpdateExpression': 'SET #emailaddress = :emailaddress',
'ExpressionAttributeNames': {
'#email': 'endereço de e-mail'
},
'ExpressionAttributeValues': {
':endereço de email': {
'S': ' [e-mail protegido] '
}
}
})

O utilitário fornecido atualiza seu atributo de e-mail para se parecer com o que você tem no [e-mail protegido] para o item em que a chave de partição (pk) é igual a my_PartitionKey.

Conclusão

Ao configurar as chaves de partição do DynamoDB, não há um único método universal. Criar e usar as chaves de partição depende do caso de uso. Além disso, você pode pesquisar as várias abordagens disponíveis e encontrar a mais adequada para sua aplicação. Certifique-se de seguir as diretrizes fornecidas.