Modelo relacional, estrela ou colunar, qual usar no Business Intelligence? Adianti Solutions 28/02/2024 Em um post anterior, vimos que BI não é apenas Dashboards. Business Intelligence trata da descoberta de padrões de informações organizacionais. Mas para efetuar esta descoberta é preciso ferramentas avançadas de análise. BI além do Dashboard, apresenta uma série de poderosos controles para permitir que o usuário final faça diferentes análises, com diferentes perspectivas sobre aquela massa de dados. Mas antes de disponibilizar dados dentro de uma ferramenta de análise, é preciso de organizá-los. Um bom BI é realizado sobre uma massa de dados sanitizados, validados e organizados preferencialmente por assuntos estratégicos de negócio (Ex. Finanças, pedidos, contratos, estoque, etc). É um arriscado disponibilizar uma massa de dados para usuários finais realizarem análises sem antes validar as regras de negócio e métricas envolvidas. Ao cometer este “equívoco”, corremos o risco de usuários-chave trazerem “descobrirem” dados inverídicos e incoerentes. Situação ainda pior, poderá ocorrer caso estes usuários-chave levem estes dados incoerentes à alta gestão, que poderá tomar decisões equivocadas tendo como base falsas verdades. Por isso, é importante oferecer aos usuários de um BI uma massa de dados sanitizada. Para tal, existem diversos modelos que podem ser utilizados, que exploraremos a seguir. ## Modelo relacional O modelo relacional é o modelo clássico de organização de dados, e normalmente é o modelo adotado pelo banco de dados operacional de seu Sistema de Gestão ERP. Normalmente segue regras de normalização a fim de evitar duplicidade de dados e otimizar o armazenamento das informações. ![](admin/files/posts/images/img_6_1.png) É possível utilizar um modelo relacional diretamente plugado em um BI online? A resposta é sim. Entretanto, alguns cuidados devem ser tomados. Um modelo relacional convencional muitas vezes não traz dados tratados conforme “regras de negócio”. Alguns exemplo são: descartar notas e pedidos cancelados. Isso significa que o usuário do BI precisará incluir estas regras de negócio nas consultas aos dados (Famosos SELECT). O que não é um problema se o BI possuir uma forma de reaproveitar estas lógicas. O Adianti Reports suporta qualquer modelo de armazenamento de dados para BI, sendo que ele não “exige” que os dados estejam em um determinado formato para funcionar. O Adianti Reports armazena as consultas-mestre em “Estruturas de dados”. Isso significa que todo seu Select, bem como as regras de negócio e parametrizações envolvidas, são armazendos em um arquivo central que pode ser utilizado para criação de infinitos relatórios, gráficos e dashboards. Ao editar esta estrutura central, todos objetos dependentes (relatórios, gráficos e dashboards) podem ser atualizados automaticamente. ![](admin/files/posts/images/img_6_2.png) Cada estrutura de dados contém um SELECT, as definições de dimensões, métricas, os parâmetros de filtragem da estrutura, dentre outras regras que podem ser reaproveitadas. A figur a seguir mostra uma consulta comum de pedidos e alguns filtros envolvidos. ![](admin/files/posts/images/img_6_3.png) O reaproveitamento de estuturas possibilita um alto nível de organização ao trabalharmos com um banco de dados relacional convencional, permitindo centralizar a administração das regras de negócio e conjunto de dados. Ao mesmo tempo, ganhamos a possibilidade de “reaproveitar” uma mesma estrutura para derivar infinitos objetos a partir dela (gráficos, relatórios, dashboards). Com isso tudo, podemoss ter um BI ON LINE, ou seja, realizando consultas dinâmicas de maneira online com sua base de dados, sem necessidades de cargas de dados periódicas, que muitas vezes tornam o processo lento e pesado. ## Modelo dimensional O modelo dimensional foi proposto originalmente por Ralph Kimball, como sendo uma proposta de modelagem ou organização de dados para Sistemas de Apoio à Decisão. Uma de suas formas é o modelo estrela ou Star Schema, a outra é o modelo Snowflake (de menor utilização). A principal característica do modelo estrela, é a reorganização das tabelas em apenas dois tipos: fato e dimensão. No modelo estrela, as tabelas fato são centrais e armazenam os eventos de um negócio (Ex. Vendas, Pedidos, Contas a Receber, Contas a Pagar, Contratos, Faturas, etc). Na tabela fato, os dados normalmente estão armazenados na granularidade mais baixa, ou seja, se você tem Pedido e Itens do pedido, a tabela fato armazenará registros em nível de item do pedido. É na tabela fato que encontram-se as métricas, que são campos que armazenam informações calculáveis (Ex. Quantidade, Valor, Total, Tempo gasto, etc). Ao redor da Tabela Fato, temos as Tabelas Dimensão, que “caracterizam” os fatos. As dimensões normalmente possuem informações “textuais” que “qualificam” um fato. Para descobrir quais são as dimensões de um fato, é comum aplicarmos a técnica 5W2H: * Where: Onde o fato ocorreu. * What: Qual fato ocorreu. * Why: Por que o fato ocorreu. * Who: Quem está relacionado com o fato. * When: Quando o fato ocorreu. * How: Como o fato ocorreu. * How much: Quanto está relacionado com o fato. Diferentemente do modelo relacional convencional, o modelo dimensional envolve algum grau desnormalização dos dados. Nas dimensões, por exemplo, é comum encontrarmos informações repetidas. Um exemplo é a dimensão produto, que terá campos textais para qualificar sua “Família”, “Linha”, dentre outros. Ou mesmo a dimensão cliente, que terá atributos como “Nome”, mas também “Cidade”, “Estado”, “Grupo”, dentre outros. Esta desnormalização é utilizada para confereir maior performance em operações de busca e filtro. ![](admin/files/posts/images/img_6_4.png) Um ponto positivo em se trabalhar com o modelo estrela é que normalmente suas tabelas estão armazenadas em separado do banco de produção operacional, permitindo realizar um dimensionamento mais adequado de CPU e RAM. Outro ponto positivo é que ele não concorre com o uso do banco de dados de produção. Um ponto negativo é que você passa a trabalhar com cargas de dados e você precisará programar estas cargas, o que nem sempre é tarefa simples, e você sempre estará trabalhando com uma “versão” passada dos dados, a não ser que trabalhe com cargas muito frequentes, o que nem sempre é possível devido ao volume de dados. Outro ponto negativo em trabalhar com o modelo estrela é que nem todos profissionais de banco de dados o compreendem plenamente, sendo que muitos fazem uso errado dele. Então você terá maiores dificuldades em encontrar mão de obra qualificada. O Adianti Reports suporta qualquer modelo de armazenamento de dados para BI, sendo que ele não “exige” que os dados estejam em um determinado formato para funcionar. O Adianti Reports suporta plenamente o modelo estrela e operações realizadas sobre ele como: Filtro, Pivot, Drill Down, dentre outros. Como visto anteriormente, o Adianti Reports armazena as consultas em “Estruturas de dados”. Assim, um determinado modelo estrela pode ser “Encapsulado” em uma Estrutura de dados, podendo ser reaproveitado infinitas vezes futuras para construção de relatórios, gráficos ou dashboards. ![](admin/files/posts/images/img_6_5.png) ## Modelo colunar Quando Ralph Kimball propos o modelo estrela pelo ano de 1996, os bancos de dados não estavam evoluídos como atualmente. Então de certa forma, o modelo estrela foi proposto como forma de “compensar” uma deficiência dos Sistemas de Bancos de dados existentes na época. Depois dos anos 2010, uma série de bancos de dados colunares de alta performance e compressão automática de dados foram lançados, permitindo abordagens muito mais simples e rápidas que os modelos tidos como “melhores” até então. O modelo colunar leva a simplicidade ao extremo, ao propor uma única tabela, contendo todos os dados de um Fato, bem como suas Métricas (campos de cálculo) e Dimensões (campos textuais qualificadores) de maneira totalmente desnormalizada, como apresentado pela figura a seguir. ![](admin/files/posts/images/img_6_6.png) Ao utilizar o modelo colunar, uma série de questionamentos vem à tona, como: Os dados não ocuparão muito espaço? Não, pois o banco de dados colunar efetua “compressão” e “indexação” automática das colunas, fazendo com que uma tabela totalmente colunar ocupe menos espaço em disco do que um modelo estrela convencional. Temos Cases reais que demonstram que a mesma massa de dados armazenada em um banco de dados colunar ocupa apenas 10% do que ocuparia em um modelo estrela armazenado em PostgreSQL. A performance não será ruim? Não, bem pelo contrário, operações como filtro e group by, muito comuns em aplicações de BI são muito mais rápidas em um banco colunar do que em um banco de dados convencional. Temos Cases reais que demonstram que a performance de uma consulta em um Banco colunar é normalmente 3x mais rápida do que a mesma massa de dados armazenada no modelo estrela em PostgreSQL. Mas a principal vantagem, é que a performance não degrada a medida em que a massa de dados vai crescendo. O Adianti Reports suporta qualquer modelo de armazenamento de dados para BI, sendo que ele não “exige” que os dados estejam em um determinado formato para funcionar. O Adianti Reports suporta plenamente o modelo colunar e inclusive oferece facilidades para importar dados de bancos de dados relacionais e também a partir de planilhas eletrônicas para dentro de seu banco de dados columnar analítico de alta performance. As cargas de dados podem ser realizadas por meio de rotinas agendadas. O servidor de aplicações Adianti Reports traz embutido dentro da aplicação um banco de dados colunar analítico de grande performance. Separamos a seguir um vídeo que demonstra o poder de processamento Big Data do banco de dados colunar analítico. https://adiantireports.com.br/ver-video?id=108&title=Performance%20bigdata ## Qual é o melhor para mim? O melhor modelo depende do seu cenário: Modelo relacional: Seu banco de dados operacional oferece grande performance em consultas, e você não tem tempo nem recursos humanos para implementar rotinas de cargas de dados. Modelo estrela: Você quer separar o banco do BI do banco operacional para evitar concorrência, e possui tempo e recursos humanos para implementar a modelagem do banco dimensional, e as cargas de dados. Modelo colunar: Como sua implementação é simples, visto que o próprio Adianti Reports implementa rotinas de cargas de dados a partir de consultas (SELECT) ou importação de planilhas, ele não demanda mão de obra especializada e é de rápida implementação. Atende todos os casos, pois separa os dados do BI em um banco de dados de grande performance, evitando concorrência com o banco de dados operacional. Não demanda mão de obra altamente especializada. ## O Adianti Reports suporta todos modelos O mais importante é que a ferramenta de BI suporte todos os modelo apontados anteriormente. O Adianti Reports suporta qualquer modelo de armazenamento de dados para BI, sendo que ele não “exige” que os dados estejam em um determinado formato para funcionar. Com ele, você pode conectar diretamente seu banco de dados relacional de maneira online, trabalhar com um Data Warehouse organizado no modelo estrela, ou ainda carregar os dados para o banco de dados colunar analítico de grande performance e compressão de dados oferecido pela própria plataforma. Copyright © 2022 Adianti Solutions - Todos direitos reservados