Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Um esquema de tabela define os nomes e tipos de dados de todas as colunas da tabela. O esquema da tabela pode ser definido durante a criação da tabela ou como parte do processo de ingestão de dados, modificando o mapeamento de ingestão aplicável. A forma como um esquema de tabela é definido pode afetar significativamente o desempenho da sua consulta. O esquema ideal para os seus dados depende de muitos fatores, incluindo casos de uso, padrões de acesso aos dados e os dados específicos que pretende armazenar. Este artigo descreve as melhores práticas para otimizar o desempenho através do desenho de esquemas eficientes.
Tipos de dados
Para informações gerais sobre tipos de dados, veja tipos de dados escalares.
Os campos mais usados devem ser colunas tipadas, não tipo dinâmico .
Propriedades JSON frequentemente pesquisadas ou agregadas numa coluna dinâmica devem ser convertidas para uma coluna regular na tabela com um tipo mais específico, como string, long ou real.
Colunas esparsas que não são comumente usadas para filtro e agregação devem ser recolhidas como um saco de propriedades numa coluna dinâmica usando a
DropMappedFieldstransformação de mapeamento.As colunas data-hora devem ser digitadas como data-hora, e não long ou outros tipos de dados.
- Use DateTime nos mapeamentos de transformação no Unix, por
DateTimeFromUnixMillisecondsexemplo. .
- Use DateTime nos mapeamentos de transformação no Unix, por
O tipo decimal proporciona precisão exata, o que o torna mais adequado para aplicações financeiras e outras que exigem exatidão exata. No entanto, é muito mais lento do que o tipo real . Só use o tipo decimal quando necessário.
Todas as colunas de ID (identificação) devem ser digitadas como string, não numéricas. Este tipo tornará o índice muito mais eficaz e pode melhorar significativamente o tempo de pesquisa. Também permitirá a particionação, uma vez que a partição só pode ser definida em colunas de string. Se apenas forem utilizados filtros de consulta de igualdade nesta coluna, por exemplo, se a coluna contiver GUIDs, pode usar o perfil de codificação
Identifier. Para mais informações, consulte política de codificação.
Tables
- Otimize para tabelas estreitas, que são preferidas em vez de tabelas largas com centenas de colunas.
- Para evitar junções dispendiosas durante o tempo de consulta, desnormalize os dados dimensionais enriquecendo-os durante a ingestão. Se a tabela de dimensões usada para enriquecimento for atualizada e o cenário exigir o valor mais recente, use visualizações materializadas para manter apenas o valor mais recente.
- Se existirem mais de 20 colunas esparsas, ou seja, muitos valores são nulos, e estas colunas raramente forem usadas para pesquisas ou agregação, então agrupe as colunas como um JSON property bag numa coluna dinâmica usando o
DropMappedFieldsmapeamento de transformação.
Indexação
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 do tipo string ou tipo dinâmico.