Quando incorporar ou referenciar dados
Na unidade anterior, incorporamos os dados de endereço e senha do cliente em um novo documento do cliente. Essa ação reduz o número de solicitações, o que melhora o desempenho e reduz os custos. No entanto, nem sempre é possível incorporar dados. Há regras para quando você deve incorporar dados em um documento em vez de fazer referência a ele em uma linha diferente.
Quando você deve incorporar dados?
Incorpore dados em um documento quando os seguintes critérios se aplicarem aos seus dados:
- Ler ou atualizar em conjunto: os dados lidos ou atualizados em conjunto são quase sempre modelados como um único documento. Isto reduz o número de pedidos, que é o nosso objetivo de sermos eficientes. Em nosso cenário, todas as entidades do cliente são lidas ou escritas juntas.
- Relação 1:1: Por exemplo, Customer e CustomerPassword têm uma relação 1:1.
- 1:Poucos relacionamentos: Em um banco de dados NoSQL, é necessário distinguir 1:Muitos relacionamentos como limitados ou não limitados. Customer e CustomerAddress têm um relacionamento limitado de 1:Many porque os clientes em um aplicativo de comércio eletrônico normalmente têm apenas um punhado de endereços para enviar. Quando a relação é limitada, esta é uma relação de 1:Poucos.
Quando deve referenciar os dados?
Referenciar dados como documentos separados quando os seguintes critérios se aplicarem aos seus dados:
Ler ou atualizar de forma independente: Isto é especialmente verdadeiro quando se combinam entidades que resultariam em documentos grandes. As atualizações no Azure Cosmos DB exigem que o item inteiro seja substituído. Se um documento tiver algumas propriedades que são frequentemente atualizadas juntamente com um grande número de propriedades principalmente estáticas, é muito mais eficiente dividir o documento em dois. Em seguida, um documento contém o conjunto menor de propriedades que são atualizadas com freqüência. O outro documento contém os valores estáticos e imutáveis.
1:Muitos relacionamentos: Isto é especialmente verdadeiro se o relacionamento é ilimitado. Se você tiver um documento que aumenta de tamanho uma quantidade desconhecida ou ilimitada de vezes, o custo e a latência dessas atualizações continuarão aumentando. Isto deve-se ao aumento do tamanho da atualização que custa mais RU/s e às cargas úteis que atravessam a rede, que por si só também é ineficiente.
Relacionamento muitos:muitos: exploraremos um exemplo desse relacionamento em uma unidade posterior com tags de produto.
A separação dessas propriedades reduz o consumo de rendimento para maior eficiência. Também reduz a latência para um melhor desempenho.