Vou tentar compartilhar com você um pouco da experiência que adquiri trabalhando há 8 anos com Business Intelligence, mais especificamente com ambiente de Data Warehouse, desde o planejamento até a implementação.
Quando comecei eu tive uma certa dificuldade em visualizar o que aquilo que eu estava fazendo iria se tornar no futuro, como as pessoas iriam consumir o que estava sendo produzido. Naturalmente minha primeira reação foi procurar referências sobre o assunto e sobre como começar a desenvolver o até então aclamado Data Warehouse, e me deparei com explicações que na maioria das vezes não eram claras e que causavam mais confusão do que me ajudavam a esclarecer minhas dúvidas.
Hoje eu vou tentar explicar de forma clara os 4 passos necessários para a construção de um modelo de dados dimensional consistente e que atenda as necessidades do negócio.
Por que Modelo de dados Dimensional?
Nos sistemas transacionais, quero dizer, onde acontecem de fato a transação, como por exemplo Vendas, Cadastro de Clientes, Inventário, etc, geralmente são usados modelos de dados Relacionais, que tem o objetivo de armazenar a maior quantidade de dados possível sobre os processos de negócio. Estes modelos geralmente estão normalizados e para se obter uma determinada informação são necessários N relacionamentos entre diferentes objetos, o que pode tornar a consulta lenta se formos utilizar este ambiente para extrair informações gerencias, que necessitam cálculos e agrupamentos diversos.
Para atender as necessidades de análise foi desenvolvida uma metodologia de modelagem de dados com o objetivo de armazenar informações gerenciais com alta disponibilidade e de forma rápida.
O modelo de dados dimensional é composto de basicamente de 2 tipo de objetos:Tabelas Fato e tabelas Dimensão. Este modelo é comumente chamado de Star Schema, ou Modelo Estrela, pois a tabela Fato fica no centro e as dimensões ao redor. Nesse modelo é permitido a redundância de informações pois a ideia é que seja feito somente 1 join entre a tabela Fato e as Dimensões para trazer as informações de forma rápida.
A tabela fato contem apenas as chaves primárias das dimensões, que compõe a sua chave primária composta, e as métricas de análise. Existem outros elementos que podem estar presentes na tabela Fato mas que não serão mostrados aqui, como Dimensões Degeneradas.
Passo 1 para a modelagem de dados dimensional: Identificação do processo de negócio
Quando vamos construir um modelo de dados dimensional que suporte a tomada de decisão, nós estamos na verdade analisando um processo de negócio. São exemplos:
- Vendas
- Devolução
- Estoque
- Etc…
Esses processos precisam ser analisados para que se possa saber a evolução deles no tempo e por diferentes visões. Cada processo tem suas particularidades e cabe ao profissional responsável identifica-las.
Após definirmos qual processo de negócios queremos analisar, nós temos que identificar O QUE analisar sobre eles.
Passo 2 para a modelagem de dados dimensional: Identificação das métricas de negócio
Geralmente é fácil identificar o que precisa ser analisado com base nas necessidades expressas em questionamentos feitos pelos gerentes, diretores, etc.
Exemplo:
- Qual a quantidade vendida por produto e por loja?
- Qual a receita de vendas por produto, por loja e por mês?
Nos exemplos acima os fatos estão definidos após a palavra “Qual”.
Passo 3 para a modelagem de dados dimensional: Definir a granularidade das visões
Granularidade diz respeito ao nível de detalhe das análises. Podemos exemplificar da seguinte maneira: Quando queremos saber o número de vendas por loja, nós temos uma granularidade. Quando queremos saber o número de vendas por loja e por produto, nós temos uma granularidade maior, pois estaremos entrando em um nível maior de detalhes.
Temos que tentar imaginar uma hierarquia que nem sempre é clara. Nos exemplos acima podemos perceber que há a necessidade de analisar até a nível de produto e, se formos desenhar uma possível hierarquia para isso, a mesma seria: Tempo -> Loja - > Produto.
Passo 4 para a modelagem de dados dimensional: Identificação das visões de análise
Nos exemplos acima as visões de análise são definidas pela palavra “por”.
Nem sempre todas as visões necessárias são expressas nas perguntas feitas e precisamos tentar prever as necessidades futuras. Por exemplo, nos casos acima, a quantidade vendida e a receita gerada estão sendo analisadas por produto, loja e tempo (mês), mas também poderíamos incluir setor, grupo e subgrupo dos produtos, cliente, campanha promocional, bairro de residência dos clientes, gênero, estado civil, idade e número de filhos dos clientes, etc.
Com isso poderíamos obter respostas do tipo:
- Clientes do sexo masculino, entre 20 e 30 anos, que não possuem filhos e moram no centro da cidade compram mais lasanha congelada; ou
- Aos sábados as mulheres casadas compram mais verduras do que durante os outros dia da semana.
Seguindo esse exemplo o nosso modelo de dados ficaria como mostrado abaixo:
A partir deste momento é necessária a implementação física do modelo na base de dados, a construção de processo de ETL para popula-las e a implementação de uma camada de apresentação OLAP para poder construir os Cubos de análise e o Front-end, mas isso fica para as próximas publicações.
Por mais que eu tenha tentado explicar de forma clara o processo de modelagem, eu sei que é muito mais do que isso e exige experiência, até porque nem todos os recursos disponíveis foram mencionados aqui (Fato Agregada, Snowflake, etc).
Espero que tenham gostado da leitura e qualquer dúvida postem nos comentários que tentarei ajudar na medida do possível.
Lucas Rezende é consultor Business Intelligence há 8 anos, atuando nos últimos dois no gerenciamento de diversos projetos. Também é empreendedor serial, tendo fundado algumas empresas, dentre elas o espaço de coworking Nitis Office e a TreeHouse, consultoria especializada em desenvolvimento de projetos de inteligência de negócios.
0 comentários:
Postar um comentário