Diretrizes de estruturação de tabelas
Projetar tabelas para uso com o serviço de tabela de armazenamento do Azure é muito diferente das considerações de design para um banco de dados relacional. Este artigo descreve diretrizes para projetar sua solução de serviço de tabela para ser eficiente em leitura e gravação.
Projete sua solução de serviço de tabela para ser eficiente em termos de leitura
- Design para consultas em aplicativos com muita leitura. Ao projetar suas tabelas, pense nas consultas (especialmente as sensíveis à latência) que você executará antes de pensar em como atualizará suas entidades. Isso normalmente resulta em uma solução eficiente e de alto desempenho.
- Especifique PartitionKey e RowKey em suas consultas. Consultas de ponto como essas são as consultas de serviço de tabela mais eficientes.
- Considere armazenar cópias duplicadas de entidades. O armazenamento de tabelas é barato, portanto, considere armazenar a mesma entidade várias vezes (com chaves diferentes) para permitir consultas mais eficientes.
- Considere desnormalizar seus dados. O armazenamento de tabelas é barato, então considere desnormalizar seus dados. Por exemplo, armazene entidades de resumo para que as consultas de dados agregados só precisem acessar uma única entidade.
- Use valores de chave compostos. As únicas chaves que você tem são PartitionKey e RowKey. Por exemplo, use valores de chave compostos para habilitar caminhos de acesso com chave alternativos para entidades.
- Use a projeção de consulta. Você pode reduzir a quantidade de dados transferidos pela rede usando consultas que selecionam apenas os campos necessários.
Projete sua solução de serviço de tabela para ser eficiente em gravação
- Não crie partições quentes. Escolha chaves que lhe permitam distribuir os seus pedidos por várias partições em qualquer momento.
- Evite picos de tráfego. Suavize o tráfego durante um período de tempo razoável e evite picos de tráfego.
- Não crie necessariamente uma tabela separada para cada tipo de entidade. Quando você precisa de transações atômicas entre tipos de entidade, pode armazenar esses vários tipos de entidade na mesma partição na mesma tabela.
- Considere a taxa de transferência máxima que você deve alcançar. Você deve estar ciente das metas de escalabilidade para o serviço Table e garantir que seu design não fará com que você as exceda.
Ao ler este guia, você verá exemplos que colocam todos esses princípios em prática.