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.
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.
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:
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:
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.
Para colunas com a mesma estrutura, os dados podem ser ainda mais compactados organizando os valores em ordem crescente ou decrescente.
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.
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.
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.
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.
Agora, preencha uma coluna inteira no Excel com esses valores. Use este argumento para gerar uma coluna contendo esses valores aleatoriamente.
Arraste a fórmula até a última linha. Clique em OK se a janela pop-up Large Operation aparecer. Agora é assim que vai ficar:
Em seguida, copie a coluna inteira e cole-a como Value .
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.
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.
Descubra todos os atributos pré-atentivos e saiba como isso pode impactar significativamente seu relatório do LuckyTemplates
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.
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.
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.
Aprenda a calcular a diferença em dias entre compras usando DAX no LuckyTemplates com este guia completo.
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
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.
Neste tutorial de linguagem de codificação DAX, aprenda como usar a função GENERATE e como alterar um título de medida dinamicamente.