Data Warehouse
Data Warehouse (DW) é um conjunto de dados orientado para o assunto, integrado, não volátil, variante ao tempo, no apoio de decisões gerenciais. (Bill Inmon, em seu livro Building the Data Warehouse).
Imagine que sua empresa trabalha com um banco SQL que já possui mais de 1.000.000.000 ( 1 Bilhão ) de linhas ou 1 bilhão de vendas por exemplo, os acessos simultâneos a esse banco de dados ocasionará na lentidão do sistema.
Todas as áreas da empresa (RH, comercial, financeiro, etc) precisam de algum tipo de dado do banco de dados e diariamente esses dados são buscados através de sistemas, vamos dividir as áreas da empresa em 2:
Frontend da empresa
Departamentos operacionais como o atendimento a clientes, que fazem a manutenção de dados (ex: inclusão, alteração e exclusão de novos produtos, clientes e vendas).
Backend da empresa
Departamentos de controle, por exemplo o RH, que trabalham com informações sintetizadas (ou sumarizadas) para tomada de decisões e operação gerencial da empresa (ex: pagamento de comissões, recolhimento de impostos, etc).
Quando temos um banco de dados único em nossa empresa, fazemos a transformação das informações por meio de relatórios, por exemplo o RH precisa apenas dos dados de nomes dos clientes, logo é feito uma consulta na tabela de clientes para pegar a informação que o RH precisa.
Antes de começarmos a falar sobre as soluções, vejamos o que significa escalabilidade do inglês scalability:
Escalabilidade é a capacidade de um sistema, rede ou processo de lidar com uma quantidade crescente de trabalho, ou seu potencial de ser ampliado para acomodar esse crescimento.
- Wikipedia
Imagine que você está comprando um carro novo. Você tem um carro da Nissan que pode acomodar 4 pessoas nele. Agora, digamos que você e 10 de seus amigos precisam sair de férias. O que você faria?
Você compraria um carro maior? - Vertical Scaling
Você compraria mais um carro da Nissan? - Horizontal Scaling
Vertical Scaling (scale up)
Vertical scaling ou escalabilidade vertical trata-se do upgrade em um servidor já existente na rede, podendo ser a substituição, reposição ou a adição de novos recursos, como memória, processador ou discos rígidos, por exemplo.
Horizontal Scaling (scale down
Horizontal Scaling ou escalabilidade horizontal consiste em adicionar uma nova máquina no cluster, visando aumentar a capacidade do sistema distribuído.
Ambas as soluções de escalabilidade poderiam ser implementadas no exemplo citado com mais de 1 bilhão de linhas, porém para realizar o vertical scaling é preciso de um alto investimento financeiro.
A solução de horizontal scaling então parece mais viável, não? Na verdade existe vantagens e desvantagens desta solução:
Vantagens
- Solução relativamente fácil e barata de implementar quando comparada a outras.
- Exige gerenciamento simples.
Desvantagens
- A montagem de relatórios ainda depende de alguém especializado que conheça bem SQL e a estrutura do banco de dados relacional, que a essa altura da sua empresa possivelmente seja complexa.
- Cada vez que alguém gera um relatório é feito um esforço computacional que não é reaproveitado. Em última análise gera custos de desgaste de equipamentos e energia elétrica.
Agora vamos falar sobre o assunto principal do artigo DATA WAREHOUSE:
Para resolver as 2 desvantagens do modelo 2, podemos implementar um DW, que nada mais é que uma base de dados com as informações salvas em um formato sumarizado, como as áreas de backend necessitam em seus relatórios e interfaces.
Por exemplo: Ao invés de ter os valores de comissão espalhados em cada registro de vendas (como é na base de produção), o DW conterá uma tabela com os totais de comissão de cada vendedor.
O Data Warehouse consiste a junção de diversas tecnologias que permitem fazer consulta no banco de dados, para posterior análise das informações. Devido ao ambiente projetado, o Data Warehouse tem uma única fonte de dados, que facilita muito o trabalho do analista, porque os dados que lá existem estão tratados e não há redundância das informações.
Conclusão
Após essa breve dissertação, apresento-lhe a definição mais direta que já encontrei:
É um banco de dados especializado em consultas e analises gerenciais.
Enquanto que os bancos de dados transacionais são projetados para alta performance em operações de insert, update e delete, os data warehouses são projetados para select.