Data Warehouse: quando sua empresa precisa usar

analista
Sumário

Antes de qualquer coisa, precisamos entender o que é um Data Warehouse. Se você ainda não sabe, já conversamos um pouco sobre este assunto anteriormente neste blogpost, mas, podemos começar com uma resposta curta. Basicamente se trata de um banco de dados especializado em consulta e análises gerenciais. Veremos a seguir onde isso impacta na saúde do seu negócio.

Bem, vamos imaginar que você tem um e-commerce que, inicialmente, tem volume de vendas relativamente baixo. Assim, como a maioria dos sistemas, faz-se necessário o armazenamento dessas informações em um banco de dados. De início, “tudo são flores”, os clientes estão felizes, seus sócios estão felizes e tudo corre bem, e isso é ótimo, não é mesmo?

Porém, com o crescimento do seu negócio, você percebe que o volume de dados e vendas está aumentando. Com isso, sua empresa precisou contratar novos funcionários para lidar com as diversas demandas que surgem. Por exemplo: RH, Financeiro, Comercial etc. 

Todos os funcionários também precisam se conectar ao sistema da empresa. Por isso, o ideal é que haja a substituição do sistema inicial, por um  sistema otimizado para transações, por ser rápido com as transações no banco, como inclusão, alteração ou exclusão de dados.

Veja um exemplo da estrutura interna que estaria sendo utilizada pelo sistema.

tabelas de dados

tabela de vendas

 

Uma boa opção de sistema para o front-end da empresa é aquele que além da facilidade na inclusão, alteração ou exclusão de itens, os produtos e vendas podem ser localizados através de um id.

Acontece que no back-end da empresa, as coisas são um pouco diferentes. Enquanto o front-end está interessado na facilidade de manuseio dos dados (incluir, excluir e editar), o back-end está focado em otimizar e consultar estes dados, gerando relatórios de vendas e de comissões para o RH, ou um relatório de metas de vendas para que possam ser analisados pelos diversos setores da empresa. 

Os dados do front e back-end são guardados de maneira diferente, e para que estes relatório possam ser gerados, precisamos de poder de processamento

É importante lembrar que esta empresa está crescendo, e com isso, nosso simples banco de dados pode facilmente se transformar num verdadeiro emaranhado de tabelas e relacionamentos. Por exemplo:

Agora, imagina a dor de cabeça que vamos ter quando todo mundo da empresa começar a usar o sistema ao mesmo tempo! No melhor cenário, os clientes vão notar a lentidão para efetuar qualquer tipo de atividade no sistema. Dessa forma,  nem os próprios funcionários poderão trabalhar com a performance ideal com toda essa lentidão.

Como atender o front e back-end com performance?

Sendo assim, temos um grande problema. Neste caso, um excelente problema, já que a empresa está crescendo e enfrentando as dores do crescimento. Neste caso, quais atitudes devemos tomar para contornar este obstáculo? 

Data Warehouse

ELE MESMO, O ADMINISTRADOR DO BANCO DE DADOS!

Para solucionar essa questão o  DBA (Administrador do banco de dados) será uma ótima opção, pois ele poderá tomar algumas atitudes para contornar este problema, e quais atitudes o DBA poderá tomar neste caso?

Vamos dividir as soluções em 3 e identificar alguns pontos de cada uma delas:


Crescimento horizontal

1 – Fazer o crescimento horizontal e aumentar o poder de processamento dos dados melhorando diretamente a máquina que irá realizar o processamento dos dados. 

Para empresas de pequeno e médio porte, esta solução irá atender e resolver o problema. Mas se sua empresa já está mirando no grande porte, esta solução se torna inviável devido aos custos de aquisição de servidores (e convenhamos que ninguém espera precisar investir num servidor da NASA não é mesmo?)

Crescimento vertical

2 – A segunda alternativa seria crescer verticalmente duplicando o banco de dados. Onde o frontend trabalha no servidor principal, e o backend trabalha com uma cópia deste servidor atualizada regularmente de acordo com a necessidade

A grande vantagem desta solução é o baixo custo uma vez que será necessário apenas contratar um novo servidor e fazer o gerenciamento dele para realizar as ações que precisamos (ex. cópia para o backend).

Entretanto, a desvantagem deste modelo, é que ainda precisamos de alguém que conheça muito bem aquele “emaranhado” de tabelas e relacionamentos para criar um relatório de qualidade.

Além disso, o banco de dados secundário não é reaproveitado, sendo assim, toda vez que há uma solicitação o sistema inteiro lento fica lento, até que a solicitação esteja completa.

3 – Sendo assim, a terceira atitude seria crescer verticalmente implantando um DATA WAREHOUSE!!

Neste caso, continuaríamos tendo o banco de produção (relacional), mas no backend, ao invés de simplesmente copiarmos o banco de dados da produção, criaremos um BANCO DATAWAREHOUSE.

O Data Warehouse consiste em criarmos um banco com apenas as informações que o back-end precisa, por exemplo: Criaremos uma tabela de folha de pagamento para o RH, outra tabela para o acompanhamento de metas para o comercial etc. 

Perceba, agora não precisamos mais gerar uma consulta gigantesca em todo o banco para gerarmos o relatório de cada back-end específico, agora nós temos tabelas específicas para cada relatório. Sendo assim, economizamos poder computacional, consequentemente economizamos dinheiro, diminuindo todo o custo envolvido para manter esses servidores funcionando corretamente.

Alimentando as tabelas no Data Warehouse

Existem técnicas e conceitos para realizar esta inserção de dados nas tabelas. No Data Warehouse, utilizaremos uma técnica chamada ETL(Extract, Transform and Load), sigla em inglês que significa Extrair, Transformar e Carregar. Basicamente iremos Extrair as informações do banco de dados de produção, Transformar estes dados no formato que o backend precisa e, ao invés de exibirmos o resultado na tela como os sistemas geralmente fazem, vamos salvar/Carregar estas informações na nossa tabela criada no Data Warehouse.

As principais vantagens do modelo Data Warehouse são:

  • Altíssima performance pois os usuários são distribuídos, e cada um acessando apenas a tabela que precisa.
  • Fácil de montar consultas e analisar dados, pois os dados são inseridos na tabela de maneira organizada.
  • Reaproveitamento de processamento. Uma vez que o processamento foi feito, todos os usuários podem reaproveitar os dados que estão nas suas respectivas tabelas.

Já as principais desvantagens são:

  • Alto gerenciamento. Existem muitos processos, bases de dados, problemas de sincronização e necessitamos de alguém que faça esse gerenciamento.

O que fazer quando o volume de dados aumentar de fato?

Quando o volume dos seus dados estiver de acordo com as características da utilização do Data Warehouse, você poderá realizar tanto o crescimento horizontal quanto o vertical para atender todas as demandas. O aumento do servidor seria a primeira delas, em seguida pode ser utilizada a duplicação dos bancos ou até mesmo a duplicação do seu DWS, criando um SUB-DWS, carinhosamente chamados de DATA MARTS que são Data Warehouse especializados em determinada área ou linhas de negócios espalhadas pelo mundo. 

Conclusão:

Por fim, diante das vantagens e desvantagens de cada modelo, o Data Warehouse sai na frente solucionando problemas de diversas gigantes da tecnologia. A busca por soluções como estas estão cada vez mais em alta, devido ao grande aumento no volume de dados que utilizamos todos os dias e por toda parte. É através da nossa navegação em redes sociais, até os dados utilizados para medir a distância das estrelas no universo que esses dados são gerados.

Leia mais:
Data Lake vs Data Warehouse
5 benefícios do Data Warehouse em empresas

Autor(a)
Daniel Luz
Conteúdos relacionados

São Paulo, SP
Tv. Dona Paula, 13 – Higienópolis

Natal, RN
Av. Cap. Mor Gouveia, 3000 – Sala A413 – Lagoa Nova

Fortaleza, CE
Av. Dom Manuel, 1020 – Centro

© 2024 beAnalytic – Todos os direitos reservados | [email protected] | (11) 5198-0223

Fale Com Um Especialista

*Este contato é comercial. Para outras demandas, entrar em contato através do e-mail [email protected].

Machine
Learning

Com a consultoria em Machine Learning da beAnalytic, a nossa equipe fica responsável por:

Mapeamento, coleta e tratamento dos dados necessários para o projeto;

Definição do algoritmo apropriado com base nos objetivos do projeto, e início do treinamento do algoritmo;

Avaliação do desempenho do modelo de ML, otimização e implementação no ambiente de produção.

A