"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > IA > Automatando a importação de CSV para PostgreSQL usando o fluxo de ar e o docker

Automatando a importação de CSV para PostgreSQL usando o fluxo de ar e o docker

Postado em 2025-04-12
Navegar:346

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:

  • GRASP CORE APACH AIRFLOW CONCEITOS: DAGs, tarefas e operadores.
  • Configure e configure o fluxo de ar Apache com o Docker para automação do fluxo de trabalho.
  • integrar o PostGresql para gerenciamento de dados em pipelines de fluxo de ar.
  • !
  • construir e implantar pipelines de dados escaláveis ​​e eficientes usando fluxo de ar e docker.
pré -requisitos:

Docker Desktop, vs Code, Docker Compose
  • entendimento básico dos contêineres e comandos do Docker
  • comandos BASIC Linux
  • BASIC Python Knowledge
  • Experiência na criação de imagens do Docker a partir de Dockerfiles e usando o Docker Compose
O que é o Apache Airflow?

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.

Automating CSV to PostgreSQL Ingestion with Airflow and Docker

terminologia do fluxo de ar:

    fluxo de trabalho:
  • um processo passo a passo para atingir uma meta (por exemplo, assando um bolo).
  • DAG (gráfico aciclico direcionado):
  • um plano de fluxo de trabalho mostrando dependências de tarefas e ordem de execução. É uma representação visual do fluxo de trabalho. Automating CSV to PostgreSQL Ingestion with Airflow and Docker
  • tarefa:
  • uma única ação dentro de um fluxo de trabalho (por exemplo, mixagem ingredientes).
  • Operadores:
  • Construindo blocos de tarefas, definindo ações como executar scripts Python ou executar o SQL. Os principais operadores incluem pythonOperator , dummyperator e postGresoperator .
  • xcoms (comunicações cruzadas):
  • Ativar tarefas para comunicar e compartilhar dados.
  • conexões:
  • gerenciar credenciais para se conectar a sistemas externos (por exemplo, bancos de dados).
configurando o fluxo de ar Apache com Docker e Dockerfile:

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 clean
Dockerfile

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 Configuration:

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).

Configuração e execução do projeto:

Crie um diretório de projeto.
  1. Adicione o
  2. Dockerfile
  3. e Docker-compose.yml files. create
  4. requisitos.txt
  5. listando os pacotes python necessários (por exemplo, pandas). RUN
  6. Docker -Compose Up -d
  7. para iniciar os contêineres. Acesse a interface do usuário do fluxo de ar em
  8. http: // localhost: 8080
  9. . Crie uma conexão PostGresql na interface do usuário do fluxo de ar (usando
  10. write_to_psql
  11. como o id de conexão). Crie uma amostra
  12. input.csv
  13. file.
dag e python função:

o fluxo de ar dog (

sample.py

) define o fluxo de trabalho:

a
    postGresoperator
  • cria a tabela de banco de dados. a
  • pythonOperator
  • ( geneate_insert_queries ) lê o CSV e gera sql insert , salvando -as para Dags/sql/insert_] outro postGresoperator executa o sql.
  • gerado SQL.
  • (o código completo
  • sample.py
é muito longo para incluir aqui, mas as seções principais são mostradas acima).

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.)

Tutorial mais recente Mais>

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