Técnicas de compactação do LuckyTemplates no DAX Studio

Neste tutorial, você aprenderá sobre as diferentes técnicas de compactação do LuckyTemplates no que ajudam a otimizar seu relatório.

Depois que os dados são carregados segmento por segmento pelo Analysis Services no LuckyTemplates Power Pivot e SSAS , ocorrem dois eventos. A primeira é que eles tentam usar diferentes métodos de codificação para compactar colunas para reduzir o tamanho geral da RAM . A segunda é que eles tentam financiar a melhor ordem de classificação que coloca os valores repetidos juntos. Esse método também aumenta a compactação e, por sua vez, reduz a pressão na memória.

Existem diferentes técnicas de compactação usadas pelo Analysis Services. Este tutorial cobre três métodos, em particular, ou seja, Codificação de Valor, Codificação de Comprimento de Execução e Codificação de Dicionário. Na última seção deste tutorial, ele abordará como a ordem de classificação funciona no Analysis Services.

Índice

Técnica de compactação do LuckyTemplates nº 1: codificação de valor

O primeiro é chamado Codificação de Valor.

A Codificação de Valor busca uma relação matemática entre cada valor em uma coluna para reduzir a memória. Aqui está um exemplo no Microsoft Excel:

Esta coluna requer 16.384 bits para armazenar os valores.

Técnicas de compactação do LuckyTemplates no DAX Studio

Para calcular os bits necessários, primeiro use a função MAX() no Excel para obter o valor mais alto nas colunas. Neste caso, é 9144. Em seguida, use a função POWER() para calcular os bits necessários. Use o argumento POWER(2, X) onde X é qualquer valor positivo que retornará uma resposta maior que o valor MAX. X, neste caso, também representa os bits necessários. Portanto, para este exemplo, o valor de X é 14, o que resulta em 16.384 . Portanto, a coluna requer 14 bits de armazenamento.

Para reduzir os bits necessários usando a codificação de valor, o VertiPaq procura o valor MIN na coluna e o subtrai de cada valor. Nesse caso, o valor MIN na coluna é 9003. Se você subtrair isso da coluna, ele retornará estes valores:

Técnicas de compactação do LuckyTemplates no DAX Studio

Usando as mesmas funções e argumentos, você pode ver que para a nova coluna, o valor MAX é 141. E usar 8 como o valor de X resulta em 256 . Portanto, a nova coluna requer apenas 8 bits.

Você pode ver como a segunda coluna está compactada em comparação com a primeira coluna.

Depois que os dados são compactados e você tenta consultar a nova coluna, o Storage Engine ou Vertipaq verifica essa coluna. Eles não irão simplesmente retornar os novos valores da coluna. Em vez disso, eles adicionam o valor subtraído antes de retornar o resultado ao usuário.

No entanto, a codificação de valor funciona apenas em colunas contendo números inteiros ou valores com números decimais fixos.

Técnica de compactação do LuckyTemplates nº 2: codificação de comprimento de execução

O segundo método de codificação é chamado Run Length Encoding.

A codificação de comprimento de execução cria uma estrutura de dados que contém o valor distinto, uma coluna inicial e uma coluna de contagem.

Vamos a um exemplo:

Técnicas de compactação do LuckyTemplates no DAX Studio

Nesse caso, identifica que um valor vermelho está disponível na primeira linha. Em seguida, ele descobre que o valor Black começa na segunda linha e está disponível para as próximas quatro células. Ele prossegue para o terceiro valor, Blue , que começa na sexta linha e está disponível para as próximas três linhas. E isso continua até atingir o último valor da coluna.

Portanto, em vez de armazenar a coluna inteira, ele cria uma estrutura de dados que contém apenas informações sobre onde um determinado valor começa e onde termina e quantas duplicatas ele possui.

Técnicas de compactação do LuckyTemplates no DAX Studio

Para colunas com a mesma estrutura, os dados podem ser ainda mais compactados organizando os valores em ordem crescente ou decrescente.

Técnicas de compactação do LuckyTemplates no DAX Studio

Com esta coluna classificada corretamente, você pode ver que o método Run Length Encoding agora retorna uma estrutura de dados com uma linha a menos.

Técnicas de compactação do LuckyTemplates no DAX Studio

Portanto, se você estiver lidando com muitos valores distintos, é recomendável classificar a coluna da maneira mais otimizada possível. Isso fornecerá uma estrutura de dados com linhas menores que, por sua vez, ocupam menos RAM.

A codificação de comprimento de execução não pode ser aplicada a chaves primárias porque as colunas de chave primária contêm apenas valores exclusivos. Portanto, em vez de armazenar uma linha para cada valor, ele armazenará a coluna como está.

Técnica de compactação do LuckyTemplates nº 3: codificação de dicionário

O terceiro método de codificação é chamado de Codificação de Dicionário.

A codificação de dicionário cria uma estrutura semelhante a um dicionário que contém o valor distinto de uma coluna. Ele também atribui um índice a esse valor exclusivo.

Usando o exemplo anterior, vamos ver como funciona a Codificação de Dicionário. Nesse caso, os valores Red, Black e Blue recebem um índice de 0, 1 e 2, respectivamente.

Técnicas de compactação do LuckyTemplates no DAX Studio

Em seguida, ele cria uma estrutura de dados semelhante à da codificação de comprimento de execução. No entanto, em vez de armazenar os valores reais, a Codificação de Dicionário armazena o índice atribuído de cada valor.

Técnicas de compactação do LuckyTemplates no DAX Studio

Isso reduz ainda mais a RAM consumida porque os números ocupam menos espaço do que os valores de string.

A codificação de dicionário também torna o tipo de dados tabulares independente. Ou seja, independentemente de você ter uma coluna que pode ser armazenada em diferentes tipos de dados, não importa, pois a estrutura de dados armazenará apenas o valor do índice.

No entanto, mesmo que seja independente, o tipo de dados ainda afetará o tamanho do dicionário. Dependendo do tipo de dados que você escolher para salvar a coluna, o tamanho do dicionário (ou estrutura de dados) irá flutuar. Mas o tamanho da coluna em si permanecerá o mesmo.

Portanto, dependendo do tipo de dados que você escolher, uma vez que a Codificação de Dicionário é aplicada na coluna, a Codificação de Comprimento de Execução pode ser aplicada posteriormente.

Nesse caso, o Analysis Services criará duas estruturas de dados. Ele primeiro criará um dicionário e, em seguida, aplicará a Codificação de comprimento de execução nele para aumentar ainda mais a compactação da coluna.

Ordem de classificação no Analysis Services

Na última parte deste tutorial, vamos discutir como o Analysis Services decide a maneira ideal de classificar os dados.

Como exemplo, vejamos uma coluna contendo os valores Vermelho, Azul, Preto, Verde e Rosa. Os números de 1 a 5 também foram atribuídos a eles. Isso funciona como o dicionário da nossa coluna.

Técnicas de compactação do LuckyTemplates no DAX Studio

Agora, preencha uma coluna inteira no Excel com esses valores. Use este argumento para gerar uma coluna contendo esses valores aleatoriamente.

Técnicas de compactação do LuckyTemplates no DAX Studio

Arraste a fórmula até a última linha. Clique em OK se a janela pop-up Large Operation aparecer. Agora é assim que vai ficar:

Técnicas de compactação do LuckyTemplates no DAX Studio

Em seguida, copie a coluna inteira e cole-a como Value .

Técnicas de compactação do LuckyTemplates no DAX Studio

Agora, se você acessar a opção Arquivo no seu documento Excel e clicar em Informações , verá que a coluna consome 14,1 MB .

Para reduzir a quantidade de RAM consumida, você pode classificar a coluna de A a Z. Se você verificar o tamanho novamente, verá que foi reduzido para 12,5 MB .

A redução de 1,9 MB pode não parecer muito. Isso ocorre porque o exemplo usou uma única coluna no Excel para demonstrar. O Excel é limitado apenas a 1 milhão de linhas. No entanto, no LuckyTemplates, seus dados podem conter bilhões de linhas e colunas. A redução do espaço utilizado cresce exponencialmente.

Conclusão

Depois que seus dados são classificados da maneira ideal, o Analysis Services aplica uma das três técnicas de compactação, dependendo do tipo de dados.

Isso aumenta a compactação de seus dados, o que reduz bastante a quantidade de memória consumida em seu dispositivo. Isso torna seu relatório mais otimizado, facilitando a execução e o carregamento.

Leave a Comment

Colunas calculadas no SharePoint | Uma visão geral

Colunas calculadas no SharePoint | Uma visão geral

Descubra a importância das colunas calculadas no SharePoint e como elas podem realizar cálculos automáticos e obtenção de dados em suas listas.

Atributos pré-atentivos: como isso pode afetar seu relatório

Atributos pré-atentivos: como isso pode afetar seu relatório

Descubra todos os atributos pré-atentivos e saiba como isso pode impactar significativamente seu relatório do LuckyTemplates

Calcular Dias de Estoque Zero – LuckyTemplates Inventory Management Insights

Calcular Dias de Estoque Zero – LuckyTemplates Inventory Management Insights

Aprenda a contar o número total de dias em que você não tinha estoque por meio dessa técnica eficaz de gerenciamento de inventário do LuckyTemplates.

Usando exibições de gerenciamento dinâmico (DMV) no DAX Studio

Usando exibições de gerenciamento dinâmico (DMV) no DAX Studio

Saiba mais sobre as exibições de gerenciamento dinâmico (DMV) no DAX Studio e como usá-las para carregar conjuntos de dados diretamente no LuckyTemplates.

Variáveis ​​e expressões dentro do editor do Power Query

Variáveis ​​e expressões dentro do editor do Power Query

Este tutorial irá discutir sobre Variáveis e Expressões dentro do Editor do Power Query, destacando a importância de variáveis M e sua sintaxe.

Como calcular a diferença em dias entre compras usando o DAX no LuckyTemplates

Como calcular a diferença em dias entre compras usando o DAX no LuckyTemplates

Aprenda a calcular a diferença em dias entre compras usando DAX no LuckyTemplates com este guia completo.

Calculando a média no LuckyTemplates: isolando os resultados do dia da semana ou do fim de semana usando o DAX

Calculando a média no LuckyTemplates: isolando os resultados do dia da semana ou do fim de semana usando o DAX

Calcular uma média no LuckyTemplates envolve técnicas DAX para obter dados precisos em relatórios de negócios.

O que é self em Python: exemplos do mundo real

O que é self em Python: exemplos do mundo real

O que é self em Python: exemplos do mundo real

Como salvar e carregar um arquivo RDS em R

Como salvar e carregar um arquivo RDS em R

Você aprenderá como salvar e carregar objetos de um arquivo .rds no R. Este blog também abordará como importar objetos do R para o LuckyTemplates.

Primeiros N dias úteis revisitados - uma solução de linguagem de codificação DAX

Primeiros N dias úteis revisitados - uma solução de linguagem de codificação DAX

Neste tutorial de linguagem de codificação DAX, aprenda como usar a função GENERATE e como alterar um título de medida dinamicamente.