Este repositório contém um script Python minimalista e reutilizável, projetado para realizar a ingestão de dados de diferentes tipos de arquivos para um destino de forma parametrizável. A arquitetura foca na separação de configurações e na facilidade de automação, permitindo que o mesmo código seja usado para carregar diferentes conjuntos de dados em diferentes tabelas.
O projeto utiliza o ecossistema Python, aproveitando bibliotecas essenciais para a Engenharia de Dados e automação de scripts.
| Tecnologia/Biblioteca | Propósito no Projeto |
|---|---|
| Python | Linguagem principal para o desenvolvimento do script de ingestão. |
argparse (Biblioteca Padrão) |
Usado para criar uma Interface de Linha de Comando (CLI), permitindo que o usuário passe o caminho do arquivo e o nome da tabela como argumentos externos. Essencial para a parametrização. |
pandas |
Biblioteca fundamental para a manipulação e análise de dados. É a ferramenta ideal para ler os arquivos e prepará-los para a ingestão. |
os (Biblioteca Padrão) |
Usado para interagir com o sistema operacional, útil para manipulação de caminhos e verificação de arquivos. |
A arquitetura deste script é baseada no princípio de Injeção de Dependência via Parâmetros, que facilita a automação e o deploy.
O ponto central da arquitetura é o módulo argparse. Em vez de fixar caminhos e nomes de tabela dentro do código (hardcoding), o script os recebe como parâmetros na linha de comando.
- Vantagem: O mesmo arquivo Python (
ingestao_data.py) pode ser usado para carregar dados em diferentes tabelas a partir de diferentes arquivos realizando poucas modificação no código-fonte. Isso o torna ideal para workflows orquestrados (como Airflow ou Prefect).
- Inicialização: O script é executado, e o
argparsecoleta os valores fornecidos pelo usuário para--file_pathe--table_name. - Execução da Função: A função
ingestao_data()é chamada com os parâmetros coletados. - Processamento de Dados e Ingestão: Na prática, a função leria o arquivo com
pandase estabeleceria a conexão com o banco de dados (ex: PostgreSQL viasqlalchemy) para realizar o upload dos dados na tabela especificada. - Tratamento de Erros: O bloco
try...exceptgarante que falhas comuns, como a não localização do arquivo de origem (FileNotFoundError), sejam capturadas e tratadas.
©️ José Victor Freitas
Para executar este script e iniciar a ingestão, você deve fornecer os dois parâmetros obrigatórios após o nome do arquivo.
Certifique-se de ter as bibliotecas necessárias instaladas:
pandas