Vantagens e Forma de Armazenamento e Leitura dos dados
Se você não leu a parte 1 desse post, clique aqui.
Bom, no último post, contamos uma breve história de como o serviço que foi inciado como um plug-in do Excel, se tornou o principal motor de diversas ferramentas da Microsoft. Entre elas está o Power BI Desktop e também, o serviço Analylisis Services. Com isso, algumas perguntas sempre aparecem – Por que esse serviço se tornou tão popular? O que fez a Microsoft investir tanto nele? Podem existir muitas repostas. Mas, por ter trabalhado tantos anos com soluções de diversos players do mercado, incluindo Oracle, Microstrategy, IBM e outros. Assim, pude percorrer a evolução produtos de BI, alguns deles desdes suas primeiras versões. Assim sendo, eu acredito que pelos seguintes motivos, a Microsoft vem sendo a favorita para o futuro das ferramentas de BI, eu acredito que foram pelos seguintes motivos:
Flexível
O Vertipaq permite que você trabalhe com modelos multidimensionais ou relacionais. Sendo assim, com ele também é possível utilizar tabelas independentes. Isso quer dizer que, não são necessários a criação de relacionamentos entre tabelas de origens diferentes. Entretanto, se for necessário, será possível relacionar dados de um simples arquivo .csv com super tabelas, que podem estar por exemplo, em um Teradata.
Rápido
Uma das funcionalidades mais marcantes do Analysis Services, é a possibilidade de disponibilizar os dados em memória RAM. Apesar de ser possível utilizar outros métodos de armazenamento dos dados, o SSAS é bem conhecido por ser um banco de dados in-memory. Inicialmente ele faz a persistência dos dados em disco. Entretanto, toda vez que o serviço é iniciado ou algum cubo é processado, ele carrega os dados que estão em discos, e os leva para a memória RAM do servidor. Para isso, é utilizada a compressão e indexação colunar. Bancos de dados tradicionais trabalham com compressão e indexão de linhas. Sendo que algumas fabricantes, incluindo a Microsoft com o SQL Server, já possuem funcionalidades de columnstore.
Com o modelo colunar, sempre que é recebida a solicitação de uma informação, o motor do banco, não precisa retornar a linha completa. Como a indexação ocorre verticalmente, quando ocorre uma solicitação de dados, apenas as coluna(s) que estão sendo requisitada, são carregadas para a memória RAM. Assim, a leitura dos dados se torna mais rápida e consequentemente mais eficiente. Sendo assim, a compressão de dos dados pode chegar até 10x o tamanho do dado original.
Robusto
O Vertipaq utiliza multi-threading, o que possibilita a execução otimizada de diversas requisições em paralelo, tanto para processamento, como para leitura. Cada instância tem o limite de memória do sistema operacional e 64 cores de processamento. Acima disso, é necessário escalar verticalmente e criar réplicas dos databases em outros servidores e realizar o balanceamento de carga entre as instâncias.
In-memory e compressão colunar
As tabelas são divididas em colunas e os dados são organizados e armazenados de forma vertical. Entretanto, os dados ficam fisicamente separados um dos outros. Como exemplo, caso você necessite criar uma soma na coluna Unit Price. Em um modelo tradicional, o banco de dados irá fazer a leitura dos dados, linha a linha. As outras colunas são ignoradas e depois que finalizado o carregamento dos dados da linha, a agregação é realizada.
Com o armazenamento colunar, o Vertipaq retorna apenas as colunas solicitadas. Na coluna já estão todos os valores que precisam ser computados. Portanto, a coluna solicitada é carregada e em seguida é realizada a agregação. A leitura dos dados acontece de forma vertical, com isso, acontece uma grande economia de IO, processamento e consumo de memória.
Continuidade
Quando comecei a escrever sobre o Vertipaq imaginei que seria possível dividir o assunto em dois posts, porém serão necessários mais de dois, até para não ficar uma leitura muito extensa. Continuo escrevendo e terá quantas partes forem necessárias. Na próxima semana, falaremos como os dados são indexados e como são feitas as consultas quando várias colunas são solicitadas de uma única vez.
Saiba mais sobre o vertipaq analyzer