Melhores práticas de otimização de esquemas
Um esquema de tabela define os nomes e tipos de dados de todas as colunas na tabela. O esquema de tabela pode ser definido durante a criação da tabela ou como parte do processo de ingestão de dados ao modificar o mapeamento de ingestão aplicável. A forma como um esquema de tabela é definido pode afetar significativamente o desempenho da consulta. O esquema ideal para os seus dados depende de muitos fatores, incluindo casos de utilização, padrões de acesso a dados e os dados específicos que planeia armazenar. Este artigo descreve as melhores práticas para otimizar o desempenho ao conceber esquemas eficientes.
Tipos de dados
Para obter informações gerais sobre tipos de dados, veja tipos de dados escalares.
Os campos utilizados frequentemente devem ser colunas digitadas, não o tipo dinâmico .
As propriedades JSON agregadas ou pesquisadas frequentemente numa coluna dinâmica devem ser convertidas numa coluna normal na tabela com um tipo mais específico, como cadeia, longa ou real.
As colunas dispersas que não são frequentemente utilizadas para filtrar e agregar devem ser recolhidas como um conjunto de propriedades numa coluna dinâmica com a transformação de
DropMappedFields
mapeamento.As colunas de data e hora devem ser escritas como datetime e não longas ou outros tipos de dados.
- Utilize o DateTime dos mapeamentos de transformação unix, por exemplo
DateTimeFromUnixMilliseconds
. .
- Utilize o DateTime dos mapeamentos de transformação unix, por exemplo
O tipo decimal fornece precisão exata, o que o torna mais adequado para aplicações financeiras e outras que requerem precisão exata. No entanto, é muito mais lento do que o tipo real . Utilize apenas o tipo decimal quando necessário.
Todas as colunas de ID (identificação) devem ser escritas como cadeia e não numéricas. Este tipo tornará o índice muito mais eficaz e pode melhorar significativamente o tempo de pesquisa. Também ativará a criação de partições, uma vez que a criação de partições só pode ser definida em colunas de cadeia. Se os filtros de consulta utilizados nesta coluna forem apenas igualdade, por exemplo, se a coluna tiver guids, pode utilizar o perfil
Identifier
de codificação . Para obter mais informações, veja a política de codificação.
Tables
- Otimize para tabelas estreitas, que são preferenciais em tabelas largas com centenas de colunas.
- Para evitar associações dispendiosas durante o tempo de consulta, desnormalize os dados de dimensão ao melhorá-lo durante a ingestão. Se a tabela de dimensões utilizada para melhoramento for atualizada e o cenário exigir o valor mais recente, utilize vistas de materialização para manter apenas o valor mais recente.
- Se existirem mais de 20 colunas dispersas, o que significa que muitos valores são nulos e estas colunas raramente são utilizadas para pesquisas ou agregação, agrupe as colunas como um conjunto de propriedades JSON numa coluna dinâmica com o mapeamento de
DropMappedFields
transformação.
Indexação
Os campos que nunca são pesquisados podem desativar a indexação. Utilize a política de codificação com perfil BigObject
para desativar a indexação em colunas de cadeia ou escrita dinâmica.
Conteúdo relacionado
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários