Colocando alguns estudos em prática com um pequeno projeto de Engenharia de Dados.
Neste projeto organizado em três fases sequenciais, na primeira etapa, faremos o download de um arquivo de algum site da web, utilizando Python para a obtenção do arquivo em formato .csv, .txt ou outro.
Em seguida, na segunda etapa, os dados serão inseridos em uma base de dados da Cloud Azure, utilizando o serviço Azure SQL Database para realizar a ingestão dos dados na nuvem.
Por fim, na terceira etapa, serão efetuadas algumas transformações nos dados, como alteração de tipos de colunas e agrupamentos, utilizando o Azure Data Factory.
Esse processo permitirá otimizar e preparar os dados para análises e insights valiosos, utilizando as ferramentas e recursos da plataforma Azure.
1º Etapa
Pegue algum site da Web que tenha um arquivo em algum formato (.csv, .txt,...) e faça o download dele com Python.
Utilizei a biblioteca requests, é uma das bibliotecas mais populares em Python para fazer requisições HTTP. Ela permite que você envie requisições HTTP com facilidade e é muito simples de usar.
- Biblioteca importada
- Criação de uma função para baixar o arquivo.
- Variável que faz requisição ao servidor HTTP
- Estrutura With Open para abrir o arquivo e ser fechado automaticamente após a conclusão.
- Atributo .content para escrever os dados no arquivo.
2º Etapa
Faça a ingestão dos dados em uma base de dados da cloud Azure usando o Azure SQL Database.
- Resource group criado no ambiente cloud Microsoft Azure.
- Criação do Banco de Dados e Servidor SQL Azure.
- Conexão com o Banco de Dados no Azure Data Studio.
- Extensão SQL Server Import Instalada para importação do arquivo .csv
- Importando arquivo na Base de Dados.
- Ingestão de dados concluída.
3º Etapa
Faça algumas transformações nesses dados (trocar type das colunas, agrupamentos,...) usando o Azure Data Factory.
- Data Factory criado.
- Utilizei o Query Editor para análise da tabela.
- Linked Service criado. (Realiza a conexão para uma determinada fonte de dados que desejamos utilizar.)
- Dataset genérico criado com dois parâmetros – (schemaName) | (tableName)
- Criei um DataFlow que permite desenvolver uma lógica de transformação de dados que pode ser executada como Activies dentro dos Pipelines.
- Pipeline executado junto ao DataFlow.