Olá! Meu nome é Victorino Vila e vamos iniciar mais um curso da formação, em que acompanhamos Paula na implementação de um projeto de Business Intelligence corporativo na empresa AtacaDez.
Audiodescrição: Victorino é um homem branco de cabelo curso branco e liso, sobrancelhas e barba grisalhos, e olhos castanhos. Ele veste uma camisa preta e está sentado em frente a uma parede lisa iluminada em gradiente azul-claro.
Já acompanhamos, em outros cursos, as aventuras de Paula no levantamento do modelo de negócio, na construção do Data Warehouse, na criação e carga do Data Lake, e na carga do Data Warehouse. Contudo, analisamos apenas a carga das dimensões principais.
Agora chegou a hora de finalizar o projeto de carga completa do Data Warehouse, implementando a carga das dimensões tempo e das tabelas de fato. No que se refere à dimensão tempo, precisamos utilizar um critério de busca na lista dos dias contidos no Data Lake e, a partir desses dias, calcular os atributos e os níveis de saída da dimensão.
Quanto à tabela de fato, precisamos considerar a carga dessas mesmas datas que utilizamos para carregar a dimensão tempo e combinar os dados do cabeçalho da nota fiscal, item de nota e também da compra de produtos em um único destino, e calcular os indicadores de valor de venda e custo de venda.
Depois vamos aprimorar o processo de carga adicionando variáveis como parâmetros. Faremos tudo isso neste curso e, no final, teremos o processo de carga do Data Warehouse completo.
Vamos iniciar este curso? Esperamos que você goste bastante.
Até o próximo vídeo!
Vamos iniciar nosso curso focado na implementação de um processo de carga, especificamente na dimensão tempo e na tabela de fato.
A ideia é ter, no Data Lake, uma quantidade maior de dados. Por isso, neste vídeo, abordaremos a carga de dados do Data Lake para o período de 2021.
Antes de iniciarmos a construção do fluxo de carga do Data Warehouse para o Data Lake, precisamos garantir que teremos um período substancial de dados no Data Lake. Então, faremos uma carga completa do ano de 2021.
Com o projeto aberto no Visual Studio, temos a tarefa de fluxo "Carga do Data Lake" e depois "Carga do Data Warehouse", que implementamos no curso anterior.
Vamos ao diretório fonte, no subdiretório "ETL > mov". Nele, encontramos os movimentos dos cabeçalhos de notas fiscais e os movimentos dos itens de notas fiscais referentes a um longo período.
Vamos realizar a cópia dos dados referentes ao cabeçalho de notas e de itens do ano de 2021. Começaremos pelos itens, selecionando do arquivo Movimento_Itens_2021_01.csv
(janeiro de 2021) até Movimento_Itens_2021_12.csv
(dezembro de 2021). Após copiar, vamos colar os arquivos no diretório "DATA > FATOS > NOTAS > IN".
Faremos o mesmo processo para os arquivos de cabeçalho de notas fiscais, selecionando do arquivo Movimento_Notas_2021_01.csv
até Movimento_Notas_2021_12.csv
e colando em "DATA > FATOS > NOTAS > IN".
Além disso, precisamos transportar os dados referentes às compras dos produtos realizadas por fornecedores para a AtacaDez. Então, retornando ao subdiretório "ETL > compra", selecionaremos as compras de janeiro de 2021 (Compras_202101.csv
) a dezembro de 2021 (Compras_202112.csv
). No diretório "DATA > FATOS > COMPRAS > IN", colaremos esses arquivos.
De volta ao projeto, escolheremos o pacote CargaPrincipal.dtsx
na aba à direita, clicando com o botão direito do mouse sobre ele e selecionando a opção "Definir como Objeto de Inicialização". Em seguida, clicamos no botão "Iniciar".
Será iniciada a carga das dimensões do Data Lake, das tabelas de fato do Data Lake e, por fim, das dimensões do Data Warehouse. Esse processo levará apenas alguns minutos.
Após a finalização da carga, verificamos no pacote principal (CargaPrincipal.dtsx
) que as cargas do Data Lake e do Data Warehouse foram executadas com sucesso.
Vamos verificar agora o conteúdo das tabelas de cabeçalho de notas fiscais e de compras no Data Lake, especificamente no SQL Server, para ter certeza que os dados de 2021 foram corretamente carregados.
No SQL Server, criaremos uma nova consulta. No pesquisador de objetos à esquerda, temos a tabela de notas fiscais (dbo.tbl_nota
). Sendo assim, vamos inserir a consulta SELECT MIN(DATA), MAX(DATA) FROM [dbo].[tbl_nota]
.
SELECT MIN(DATA), MAX(DATA) FROM [dbo].[tbl_nota]
Como resultado, temos dados no Data Lake de janeiro de 2021 até o final de dezembro de 2021.
# | (Nenhum nome de coluna) | (Nenhum nome de coluna) |
---|---|---|
1 | 2021-01-01 | 2021-12-31 |
No caso de dados referentes a compras, selecionamos os campos MIN(MES_ANO)
e MAX(MES_ANO)
na tabela de compra (dbo.tbl_compra
). Como resultado, verificamos compras de janeiro de 2021 a dezembro de 2021.
SELECT MIN(MES_ANO), MAX(MES_ANO) FROM [dbo].[tbl_compra]
# | (Nenhum nome de coluna) | (Nenhum nome de coluna) |
---|---|---|
1 | 2021-01 | 2021-12 |
Com isso, nosso Data Lake está carregado com os dados pretendidos. Agora temos tudo pronto para fazer os scripts de carga da dimensão tempo e da tabela de fato do Data Warehouse.
Um abraço e até o próximo vídeo!
Agora que os dados do Data Lake estão carregados, vamos planejar os passos que teremos que seguir para a construção do processo de carga da dimensão tempo e da tabela de fato do Data Warehouse.
Neste vídeo, vamos planejar o processo de carga.
Antes de começar a programar efetivamente o fluxo de carga da dimensão tempo e da tabela de fato, vamos anotar os passos que precisamos percorrer.
Primeiro, vamos analisar a tabela de listas de datas que temos no Data Lake, chamada dbo.tbl_tempo
. Vamos selecionar as mil primeiras linhas dessa tabela.
Podemos verificar que existe uma lista de datas com uma coluna chamada "controle". Este campo funciona da seguinte maneira: quando o número 1 estiver presente, significa que a carga para essa data está pendente.
Com base no campo "controle", vamos criar a dimensão tempo para esses dias cujo controle é igual a 1, e realizar a carga das tabelas de fato do Data Warehouse utilizando o campo de controle. Após essa carga, as datas utilizadas como controle terão seu valor alterado de 1 para 0, o que justifica a criação do campo "controle".
Vamos precisar selecionar os dias com "controle" igual a 1 e, baseado nesses dias, calcular agregadores dos níveis output da dimensão tempo: mês, trimestre, semestre, ano, se é dia da semana, fim de semana, e assim por diante. Também precisaremos efetuar o LOOKUP
para criar o identificador primário da dimensão tempo.
Vamos anotar os passos para a dimensão tempo:
- Ler a lista de datas cujo controle = 1;
- Criar novas colunas referentes aos agregadores de tempo;
- Aplicar o processo de
LOOKUP
sobre os identificadores naturais do tempo.
Para a tabela de fato, teremos mais etapas, já que no Data Lake, os dados referentes à tabela de fato estão distribuídos em três tabelas: dbo.tbl_compra
, dbo.tbl_nota
e dbo.tbl_item
.
Porém, no Data Warehouse, a tabela de fato (dbo.fact_venda
) é uma só e contém os seguintes campos: os identificadores primários de cada dimensão (id_loja
, id_cliente
, id_produto
e id_dia
), quantidade_vendida
, valor_venda
e custo_venda
.
Portanto, temos que seguir os seguintes passos:
- Extrair dados das tabelas
tbl_nota
,tbl_item
,tbl_compra
;- Juntar a tabela
tbl_nota
comtbl_item
, usando como critério de junção o número da nota, que é a coluna em comum nas duas tabelas;- Precisaremos agrupar as linhas dessa tabela por data, produto, cliente e loja. Esse agrupamento é necessário porque um mesmo cliente pode comprar o mesmo produto no mesmo dia em notas diferentes;
- Faremos a junção da tabela resultante da junção entre
tbl_nota
etbl_item
, que chamaremos detbl_venda
, comtbl_compra
, usando a data (MES_ANO
) como critério de junção;- Fazer os cálculos, principalmente de
valor_venda
, que será o preço de venda e a quantidade, ambas vindas da tabela de itens de notas fiscais; ecusto_venda
, que será a quantidade que está na tabela de itens com o preço do produto;- Por fim, precisaremos aplicar o processo de
LOOKUP
para a tabela de fato, transformando os identificadores naturais que estão na tabela de fato em identificadores primários.
Esses são os passos que precisaremos percorrer para implementar tanto a carga da dimensão tempo quanto da tabela de fato. Para simplificar o trabalho, vamos fixar uma data de leitura, e após terminar o processo de carga, generalizaremos essa data para automatizar a carga no final.
Um abraço e até o próximo vídeo!
O curso Data Warehouse e Integration Services: carregando fatos e dimensão tempo possui 204 minutos de vídeos, em um total de 71 atividades. Gostou? Conheça nossos outros cursos de Business Intelligence em Data Science, ou leia nossos artigos de Data Science.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS e garanta:
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.