Ce didacticiel montre la création d'un pipeline de données robuste à l'aide d'Apache Airflow, Docker et PostgreSQL pour automatiser le transfert de données des fichiers CSV vers une base de données. Nous couvrirons les concepts de flux d'air de base comme les Dags, les tâches et les opérateurs pour une gestion efficace du flux de travail.
Ce projet présente la création d'un pipeline de données fiable qui lit les données CSV et les écrit dans une base de données PostgreSQL. Nous intégrerons divers composants de flux d'air pour assurer une gestion efficace des données et maintenir l'intégrité des données.
Objectifs d'apprentissage:
prérequis:
Qu'est-ce que APACHE AirFlow?
Apache AirFlow (AirFlow) est une plate-forme pour les flux de travail, de planification, de surveillance et de surveillance des workflows. La définition des workflows en tant que code améliore la maintenabilité, le contrôle des versions, les tests et la collaboration. Son interface utilisateur simplifie la visualisation des pipelines, la surveillance des progrès et le dépannage.
Terminologie AirFlow:
pythonoperator
, dummyoperator
, et postgreOperator
. Configuration du flux d'air apache avec docker et dockerfile:
Utiliser Docker assure un environnement cohérent et reproductible. Un dockerfile
automatise la création d'images. Les instructions suivantes doivent être enregistrées comme dockerfile
(pas d'extension):
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
Ce dockerfile
utilise une image officielle de flux d'air, installe les dépendances à partir de exigences.txt
, et installe les fournisseurs d'air nécessaires (des exemples Spark et AWS sont affichés; vous pouvez en avoir besoin d'autres).
Configuration du docker:
docker-compose.yml
orchestre les conteneurs docker. La configuration suivante définit les services pour le serveur Web, le planificateur, le déclencher, le CLI, l'initial et le postgresql. Remarquez l'utilisation de la section x-aairflow-common
pour les paramètres partagés et la connexion à la base de données PostgreSQL. (Le complet docker-compose.yml
est trop long pour inclure ici mais les sections clés sont affichées ci-dessus).
Configuration et exécution du projet:
dockerfile
et docker-compose.yml
fichiers. exigences.txt
Listing des packages Python nécessaires (par exemple, pandas). docker-compose up -d
pour démarrer les conteneurs. http: // localhost: 8080
. write_to_psql
comme id de connexion). input.csv
. Fonction Dag et Python:
Le flux d'air dag ( sample.py
) définit le workflow:
postgreSoperator
crée la table de base de données. pythonoperator
( generate_insert_queries
) lit le CSV et génère des instructions sql insert
, les sauvant à dags / sql / insert_queries.sql
.
exécute le sql généré.
sample.py est trop long pour inclure ici mais les sections de clés sont affichées ci-dessus).
Conclusion:
Ce projet démontre un pipeline de données complet à l'aide d'Airflow, Docker et PostgreSQL. Il met en évidence les avantages de l'automatisation et l'utilisation de Docker pour les environnements reproductibles. L'utilisation des opérateurs et la structure DAG sont essentielles à une gestion efficace du flux de travail.
(Les sections restantes, y compris FAQs et GitHub Repo, sont omises pour la concision. Ils sont présents dans l'entrée d'origine.)
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3