"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > AI > Automatizar la importación de CSV a PostgreSQL usando Airflow y Docker

Automatizar la importación de CSV a PostgreSQL usando Airflow y Docker

Publicado el 2025-04-12
Navegar:341

Este tutorial demuestra construir una tubería de datos robusta utilizando Apache Airflow, Docker y PostgreSQL para automatizar la transferencia de datos de los archivos CSV a una base de datos. Cubriremos conceptos de flujo de aire central como DAG, tareas y operadores para una gestión eficiente de flujo de trabajo.

Este proyecto muestra la creación de una tubería de datos confiable que lee los datos de CSV y lo escribe en una base de datos PostgreSQL. Integraremos varios componentes de flujo de aire para garantizar el manejo eficiente de datos y mantener la integridad de los datos.

Objetivos de aprendizaje:

  • GRASP CORE APACHE AIRFLOW CONCECTS: DAGS, Tareas y Operadores.
  • configure y configure Apache Airflow con Docker para la automatización de flujo de trabajo.
  • Integre PostgreSQL para la gestión de datos dentro de Airflow Pipelines.
  • Lectura maestra de los archivos CSV y automatizar la inserción de datos en una base de datos PostgreSQL.
  • construir e implementar tuberías de datos escalables y eficientes usando Airflow y Docker.

Prerrequisitos:

  • Docker Desktop, VS Code, Docker Compose
  • Comprensión básica de los contenedores y comandos Docker
  • comandos básicos de Linux
  • Básico de conocimiento de Python
  • Experiencia construyendo imágenes de Docker de DockerFiles y usando Docker Compose

¿Qué es Apache Airflow?

Apache Airflow (Airflow) es una plataforma para autorizar, programar y monitorear mediante programación de flujos de trabajo. La definición de flujos de trabajo como código mejora la mantenibilidad, el control de versiones, las pruebas y la colaboración. Su interfaz de usuario simplifica la visualización de las tuberías, el progreso del monitoreo y la resolución de problemas.

Automating CSV to PostgreSQL Ingestion with Airflow and Docker

Airflow Terminology:

  • Workflow: un proceso paso a paso para lograr un objetivo (por ejemplo, hornear un pastel).
  • dag (gráfico acíclico dirigido): un plan de flujo de trabajo que muestra las dependencias de tareas y la orden de ejecución. Es una representación visual del flujo de trabajo. Automating CSV to PostgreSQL Ingestion with Airflow and Docker
  • tarea: una sola acción dentro de un flujo de trabajo (por ejemplo, mezclar ingredientes).
  • operadores: bloques de construcción de tareas, definiendo acciones como ejecutar scripts de python o ejecutar sql. Los operadores clave incluyen pythonoperator , dummyOperator , y postgResoperator .
  • xcoms (comunicación cruzada): Habilitar tareas para comunicar y compartir datos.
  • Connections: Administrar credenciales para conectarse a sistemas externos (por ejemplo, bases de datos).

configurando Apache Airflow con Docker y DockerFile:

Uso de Docker asegura un entorno consistente y reproducible. A dockerfile automatiza la creación de imágenes. Las siguientes instrucciones deben guardar como dockerfile (sin extensión):

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

this dockerfile usa una imagen oficial de flujo de aire, instala dependencias de requiradores.txt e instala los proveedores de flujo de aire necesarios (se muestran ejemplos de chispa y AWS; puede necesitar otros).

Docker Compose Configuration:

docker-compose.yml orquesta los contenedores Docker. La siguiente configuración define los servicios para el servidor web, el planificador, el gatillo, el CLI, el init y PostgreSQL. Tenga en cuenta el uso de la sección x-airflow-common para configuraciones compartidas y la conexión a la base de datos PostgreSQL. (El completo docker-compose.yml es demasiado largo para incluir aquí, pero las secciones clave se muestran arriba).

Project Setup and Execution:

  1. Crear un directorio de proyecto.
  2. agregue los archivos dockerfile y docker-compose.yml .
  3. create requería.txt enumerando los paquetes de python necesarios (por ejemplo, pandas).
  4. run Docker -composo up -d para iniciar los contenedores.
  5. Acceda a Airflow ui en http: // localhost: 8080 .
  6. cree una conexión PostgreSQL en el Airflow ui (usando write_to_psql como ID de conexión).
  7. crea un archivo de muestra input.csv .

Función Dag y Python:

The Airflow dag ( sample.py ) define el flujo de trabajo:

  • a postgreseperator crea la tabla de base de datos.
  • a pythonoperator ( generate_insert_queries ) lee el csv y genera sql insertar declaraciones, salvarlos a dags/sql/sql /_queries.sql .
  • otro postgreseperator ejecuta el sql generado.

(el código completo sample.py es demasiado largo para incluir aquí, pero las secciones clave se muestran arriba).

Conclusión:

Este proyecto demuestra una tubería de datos completa usando Airflow, Docker y PostgreSQL. Destaca los beneficios de la automatización y el uso de Docker para entornos reproducibles. El uso de operadores y la estructura DAG son clave para la gestión eficiente de flujo de trabajo.

(las secciones restantes, incluidas las preguntas frecuentes y el repositorio de GitHub, se omiten para la brevedad. Están presentes en la entrada original.)

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3