Estou no processo de criação de um data warehouse usando o SQL Server para minha empresa. Eu criei um POC com um banco de dados SQL Relational simples com alguns (cerca de 10) Procs armazenados para o processo ETL. Agora que tenho a adesão dos negócios para chegar a um estado de produção, onde triplicarei os dados, é o momento certo para garantir que a tecnologia que uso seja mais adequada às nossas necessidades e esteja alinhada com as práticas recomendadas gerais.
Estaremos processando cerca de 500 mil registros por dia, com uma estimativa máxima de cerca de um milhão por dia. O POC então agregou todos esses dados em pedaços de 5 minutos por cliente por dia nos últimos 4 anos. Total sendo um pouco mais de 500k slots de tempo, para cada fato (POC tinha 4 tabelas de fatos) para cada cliente (Vamos planejar para 25). Portanto, para o POC, estamos analisando aproximadamente 50 milhões de linhas em todos os fatos por cliente e horário. Isso deixa as visualizações finais dos dados em quantidades menores, já que os últimos 6 meses satisfazem 85% de todas as perguntas, o que significa que devemos estar sentados com conjuntos de resultados de aproximadamente 250k linhas por 85% do tempo, se não menos. Dado que espero triplicar os dados, vamos chamá-lo de no máximo 1 milhão de linhas para satisfazer 85% das consultas, divididas em cerca de 8 a 10 tabelas de fatos com cerca de 4 ou 5 tabelas de dimensão.
Com tudo isso dito e feito, como mencionado, estou em uma posição muito afortunada, onde agora posso escolher a tecnologia que é usada para o back-end do armazém. Eu nunca tive a oportunidade de realmente me envolver no SSAS e sentir que é uma tecnologia que me falta. O SSAS ainda é uma escolha popular para Data Warehouses ou sua popularidade diminuiu nos últimos anos? Ainda é usado tanto quanto há 5 anos?
VERSÃO CURTA: O SSAS ainda é algo que vale a pena aprender/investir tempo e esforço?
Estamos atualmente no SQL 2016 e isso será construído no SQL Server 2017
Obrigado por todas as suas contribuições.
Na minha opinião, sim - ainda é uma tecnologia totalmente válida. Ainda mais se estivermos discutindo implementações de SSAS tabulares em vez de multidimensionais. Por exemplo, o VertiPaq (o mecanismo de banco de dados que executa o Tabular Models) é o mesmo mecanismo que pode ser encontrado no PowerBI e quaisquer habilidades que você aprender usando SSAS/TOM/DAX o ajudarão se você decidir aprender isso também. Também é bom notar que PowerBI, Excel, SSRS e muitas outras ferramentas podem se conectar ao SSAS/Tabular para obter dados para construir painéis e relatórios.
Pessoalmente, uso SSAS/Tabular desde o início de 2014 e já implementei 3 implementações em larga escala (atualmente estou trabalhando na minha 4ª). Minha empresa atual usa SSAS/Tabular como o Analytics Engine para seu produto principal. Ele pode ser integrado a muitos outros produtos além do SQL Server usando o PowerQuery para obter dados de outras fontes .
Se tudo o que você estava planejando fazer era ter um data warehouse com um esquema em estrela (ou mesmo esquema em floco de neve), o Tabular é uma boa escolha, pois oferece desempenho fantástico (dependente de hardware) e compactação incrível. Você deve estar ciente de que é um mecanismo de análise puramente na memória, portanto, se você optar por seguir esse caminho, esteja preparado para adquirir muita RAM. Para estimar a quantidade de RAM necessária, uma instalação Tabular típica terá 1/10 do tamanho dos dados de origem (sujeito a bons princípios de modelagem).
Eu tenho um modelo tabular que contém cerca de 800 milhões de linhas de dados na tabela de fatos principal e cerca de 16 milhões de linhas em cada uma das tabelas de dimensão. Ele ocupa cerca de 48 GB de RAM, mas as consultas são de menos de um segundo ao aplicar um filtro e menos de 30 segundos ao despejar a tabela inteira. Ao contrário do SQL Server, o particionamento em um modelo tabular não acelera a consulta, pois os dados não estão no disco, mas acelera o processo de ETL, pois você pode carregar partições individuais.
Com tudo isso dito, ainda tenho um data warehouse do SQL Server que armazena dados que não quero no meu modelo tabular. Como acontece com qualquer tecnologia, escolha a ferramenta certa para o trabalho. Se você deseja algo que possa fornecer análises de alto desempenho, o Tabular é uma ótima opção, mas exige que você aprenda mais algumas tecnologias (C# e PowerShell são essenciais na minha opinião, pois ajudam na implantação, gerenciamento e compilações). No entanto, se você não tiver o orçamento, os recursos ou a necessidade dos recursos que uma instalação Tabular oferece, um data warehouse tradicional ou uma instalação SSAS multidimensional pode ser o melhor caminho a seguir.