Bem-vindo à documentação do projeto de migração de banco de dados relacional no Postgres para um banco de dados dimensional, usando o Pentaho para ETL e migrando para o SQL Server.
Este projeto teve três principais fases:
-
Migração Inicial para Banco de Dados Dimensional no PostgreSQL: As tabelas
tbpro
,tbven_item
,tbvdd
,tbdep
,tbven
foram transformadas em tabelas dimensionais (dim_produto
,dim_vendedor
,dim_dependente
,dim_cliente
,dim_canal
,dim_status
,dim_data
) no PostgreSQL. Essa primeira etapa do projeto consta no repositório: tabelas_dim -
Consultas Avançadas em SQL: Realizou-se consultas avançadas na estrutura dimensional criada no PostgreSQL, explorando análises e agregações complexas. Essa segunda etapa do projeto consta no repositório: Desafio_SQL_Avancado
-
Migração para SQL Server com ETL Pentaho: As tabelas originais (
tbpro
,tbven_item
,tbvdd
,tbdep
,tbven
) foram importadas para o Pentaho, para realizar o processo ETL. As tabelas dimensionais criadas (dim_produto
,dim_vendedor
,dim_dependente
,dim_cliente
,dim_canal
,dim_status
,dim_data
) foram migradas para o banco de dados SQL Server.
Aqui estão alguns exemplos de transformações realizadas no Pentaho:
Aqui esta a tela do banco de dados no SQL Server:
Para iniciar as consultas, devemos primeiro calcular o valor total das vendas em na tabela fato_vendas
, onde podemos executar um comando UPDATE que multiplica a coluna quantidade_vendas
pela coluna valor_unitario_vendido
e armazena o resultado na coluna valor_total_vendas
.
Primeiro, devemos acessar o banco de dados onde a tabela fato_vendas
está localizada. No exemplo, usaremos o banco de dados db_vendas_nayara
. Você pode fazer isso usando o comando USE
:
USE db_vendas_nayara;
Em seguida, executamos o comando UPDATE para calcular o valor total das vendas e atualizar a coluna valor_total_vendas na tabela fato_vendas:
UPDATE fato_vendas
SET valor_total_vendas = quantidade_vendas * valor_unitario_vendido;
Consulta de Vendas por Canal e Cliente
Use db_vendas_nayara
SELECT
dc.descricao_canal,
dcl.nome_cliente,
SUM(fato.valor_total_vendas) AS total_vendas
FROM
fato_vendas AS fato
INNER JOIN dim_canal AS dc ON fato.codigo_canal = dc.codigo_canal
INNER JOIN dim_cliente AS dcl ON fato.codigo_cliente = dcl.codigo_cliente
GROUP BY
dc.descricao_canal,
dcl.nome_cliente
ORDER BY
dc.descricao_canal, dcl.nome_cliente;gora vamos ver o exemplo de uma Medida no SQL Server:
Consulta de Vendas por Produto e Data
Use db_vendas_nayara
SELECT
dp.nome_produto,
dd.data,
SUM(fato.valor_total_vendas) AS total_vendas
FROM
fato_vendas AS fato
INNER JOIN dim_produto AS dp ON fato.codigo_produto = dp.codigo_produto
INNER JOIN dim_data AS dd ON fato.data_venda = dd.Data
GROUP BY
dp.nome_produto,
dd.data
ORDER BY
dd.data, dp.nome_produto;
Para visualizar o dashboard do projeto, acessar o link abaixo:
http://localhost:3000/public/dashboard/e04296cf-e985-43f2-9150-bd98cad88675
O Metabase é uma ferramenta de análise de dados de código aberto que permite a criação de painéis interativos e relatórios a partir de várias fontes de dados, facilitando a tomada de decisões com base em dados de forma visual e intuitiva. É usado para explorar, visualizar e compartilhar informações de maneira acessível para equipes e organizações.
Aqui esta de como criar uma medida no METABASE, usando consultas do SQL Server e gerando gráficos:
Para reproduzir este projeto, você precisará das seguintes ferramentas instaladas:
- PostgreSQL.
- SQL Server.
- Pentaho Data Integration.
- Metabase (Visualização Direto do Banco de Dados - Sql Server).
- Compartilhe com outras pessoas esse projeto 📢;
- Quer saber mais sobre o projeto? Entre em contato para tomarmos um ☕;
⌨️ com ❤️ por Nayara Vakevskii 😊