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:
Prerrequisitos:
¿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.
Airflow Terminology:
pythonoperator
, dummyOperator
, y postgResoperator
. 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:
dockerfile
y docker-compose.yml
. requería.txt
enumerando los paquetes de python necesarios (por ejemplo, pandas). Docker -composo up -d
para iniciar los contenedores. http: // localhost: 8080
. write_to_psql
como ID de conexión). input.csv
. Función Dag y Python:
The Airflow dag ( sample.py
) define el flujo de trabajo:
postgreseperator
crea la tabla de base de datos. pythonoperator
( generate_insert_queries
) lee el csv y genera sql insertar
declaraciones, salvarlos a dags/sql/sql /_queries.sql
. 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.)
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