Data Warehouse: quando sua empresa precisa usar

Data Warehouse: quando sua empresa precisa usar

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 blog post, 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.

MicrosoftTeams-image-10-300x190 %categoria Data Warehouse: quando sua empresa precisa usar

MicrosoftTeams-image-11-300x278 %categoria Data Warehouse: quando sua empresa precisa usar

 

Uma boa opção de sistema para o frontend 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 backend da empresa, as coisas são um pouco diferentes. Enquanto o frontend está interessado na facilidade de manuseio dos dados (incluir, excluir e editar). O backend 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 backend 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:

MicrosoftTeams-image-12-300x248 %categoria Data Warehouse: quando sua empresa precisa usar

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 não poderão trabalhar com a performance ideal com toda essa lentidão.

Como atender o front e backend 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? 

MicrosoftTeams-image-13-300x168 %categoria Data Warehouse: quando sua empresa precisa usar

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:

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?)

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 backend 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 backend 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.

 

Saiba mais sobre Data Warehoue

Para mais conteúdos como esse acesse nossas redes sociais.

 

beAnalytic

{INSIGHTS}

Inscreva-se na Newsletter

Fale com um especialista!​

Entraremos em contato em 15 minutos.