Este tutorial demonstra a criação de um pipeline de dados robusto usando o Apache Airflow, Docker e PostgreSQL para automatizar a transferência de dados de arquivos CSV para um banco de dados. Abordaremos conceitos principais de fluxo de ar, como DAGs, tarefas e operadores para gerenciamento de fluxo de trabalho eficiente.
Este projeto mostra a criação de um pipeline de dados confiável que lê dados CSV e o grava em um banco de dados PostGresql. Integraremos vários componentes do fluxo de ar para garantir manuseio de dados eficientes e manter a integridade dos dados.
Objetivos de aprendizagem:
Docker Desktop, vs Code, Docker Compose
Apache AirFlow (Airflow) é uma plataforma para criação, programação e monitoramento de fluxos de trabalho programaticamente. Definir fluxos de trabalho como código melhora a manutenção, controle de versão, teste e colaboração. Sua interface do usuário simplifica os pipelines de visualização, o progresso do monitoramento e a solução de problemas.
dummyperator
e postGresoperator
.
O uso do Docker garante um ambiente consistente e reproduzível. A
Dockerfile automatiza a criação da imagem. As seguintes instruções devem ser salvas como Dockerfile
(sem extensão):
de Apache/Airflow: 2.9.1-python3.9
Raiz do usuário
Cópia requisitos.txt /requiements.txt
Run Pip3 Install -Upgrade pip && PIP3 Install --no-cache-dir -r /requirements.txt
Execute o PIP3 Instale o apache-airflow-providers-apache-spark apache-airflow-providers-amazon
Run Apt-Get Update && apt-get install -y gcc python3-dev openjdk-17-jdk && apt-get limpo
FROM apache/airflow:2.9.1-python3.9 USER root COPY requirements.txt /requirements.txt RUN pip3 install --upgrade pip && pip3 install --no-cache-dir -r /requirements.txt RUN pip3 install apache-airflow-providers-apache-spark apache-airflow-providers-amazon RUN apt-get update && apt-get install -y gcc python3-dev openjdk-17-jdk && apt-get cleanDockerfile
usa uma imagem oficial do fluxo de ar, instala dependências de requisitos.txt
e instala os provedores de fluxo de ar necessários (exemplos de faísca e AWS são mostrados; você pode precisar de outros).
Docker-Compose.yml
orquestra os contêineres do docker. A configuração a seguir define serviços para o servidor da web, agendador, gatilho, CLI, init e postgreSQL. Observe o uso da seção x-airflow-common
para configurações compartilhadas e a conexão com o banco de dados PostGresql. (O Full Docker-compose.yml
é muito longo para incluir aqui, mas as seções principais são mostradas acima).
Crie um diretório de projeto.
Docker-compose.yml
files.
create
RUN
Acesse a interface do usuário do fluxo de ar em
Crie uma conexão PostGresql na interface do usuário do fluxo de ar (usando
Crie uma amostra
o fluxo de ar dog (
sample.py) define o fluxo de trabalho:
a geneate_insert_queries
) lê o CSV e gera sql insert
, salvando -as para Dags/sql/insert_]
outro postGresoperator
executa o sql.
(o código completo
Conclusão:
Este projeto demonstra um pipeline de dados completo usando o fluxo de ar, o docker e o postgreSQL. Ele destaca os benefícios da automação e o uso do Docker para ambientes reproduzíveis. O uso de operadores e a estrutura do DAG são essenciais para o gerenciamento eficiente do fluxo de trabalho.
(as seções restantes, incluindo perguntas frequentes e repositões do github, são omitidas por brevidade. Eles estão presentes na entrada original.)
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3