„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > KI > Automatisierung des Imports von CSV in PostgreSQL mit AirFlow und Docker

Automatisierung des Imports von CSV in PostgreSQL mit AirFlow und Docker

Gepostet am 2025-04-12
Durchsuche:359

Dieses Tutorial zeigt, dass das Erstellen einer robusten Datenpipeline mit Apache Airstrow, Docker und PostgreSQL erstellt wird, um die Datenübertragung von CSV -Dateien in eine Datenbank zu automatisieren. Wir werden Kern -Luftstromkonzepte wie DAGs, Aufgaben und Operatoren für ein effizientes Workflow -Management behandeln.

Dieses Projekt zeigt, dass eine zuverlässige Datenpipeline erstellt wird, die CSV -Daten liest und in eine PostgreSQL -Datenbank schreibt. Wir werden verschiedene Luftstromkomponenten integrieren, um eine effiziente Datenbearbeitung zu gewährleisten und die Datenintegrität zu erhalten.

Lernziele:

  • Gassen Sie Core Apache Airflow -Konzepte: Dags, Aufgaben und Operatoren.
  • Einrichten und Konfigurieren von Apache AirFlow mit Docker für Workflow -Automatisierung.
  • postgresql für Datenverwaltung in Airflow -Pipelines integrieren.
  • Master -Lesen von CSV -Dateien und Automatisierung der Dateninsertion in eine PostgreSQL -Datenbank.
  • Erstellen und Bereitstellen skalierbarer, effizienter Datenpipelines mit Airflow und Docker.

Voraussetzungen:

  • Docker Desktop, vs Code, Docker komponieren
  • grundlegendes Verständnis von Docker -Containern und -befehlen
  • grundlegende Linux -Befehle
  • grundlegend python nisse
  • Erfahrung auf dem Erstellen von Docker -Bildern aus Dockerfiles und Verwendung von Docker komponieren

Was ist Apache Airflow?

Apache AirFlow (AirFlow) ist eine Plattform für programmgesteuertes Autorieren, Planen und Überwachung von Workflows. Das Definieren von Workflows als Code verbessert die Wartbarkeit, die Versionskontrolle, das Testen und die Zusammenarbeit. Die Benutzeroberfläche vereinfacht die Visualisierung von Pipelines, die Überwachung des Fortschritts und die Fehlerbehebung.

Automating CSV to PostgreSQL Ingestion with Airflow and Docker

airflow terminology:

  • Workflow: Ein Schritt-für-Schritt-Prozess, um ein Ziel zu erreichen (z. B. einen Kuchen backen).
  • dag (gerichtete acyclische Grafik): Ein Workflow -Blaupause zeigt Aufgabenabhängigkeiten und Ausführungsreihenfolge. Es ist eine visuelle Darstellung des Workflows. Automating CSV to PostgreSQL Ingestion with Airflow and Docker
  • task: eine einzelne Aktion in einem Workflow (z. B. Mischen von Zutaten).
  • operatoren: Bausteine ​​von Aufgaben, das Definieren von Aktionen wie das Ausführen von Python -Skripten oder das Ausführen von SQL. Schlüsselbetreiber schließen pythonoperator , dummyoperator und postgresoperator .
  • xcoms (Kreuzkommunikation): Aktivieren Aufgaben, Daten zu kommunizieren und zu teilen.
  • .
  • Verbindungen: Verwalten Sie Anmeldeinformationen für eine Verbindung zu externen Systemen (z. B. Datenbanken).

apache Airflow mit Docker und Dockerfile einrichten:

mit Docker sorgt für eine konsistente und reproduzierbare Umgebung. A dockerfile automatisiert die Bilderstellung. Die folgenden Anweisungen sollten als dockerfile (keine Erweiterung) gespeichert werden:

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 verwendet ein offizielles Airflow -Bild, installiert Abhängigkeiten von Anforderungen

docker komponieren Konfiguration:

docker-compose.yml

orchestriert die Docker-Container. Die folgende Konfiguration definiert Dienste für Webserver, Scheduler, Triggerer, CLI, Init und PostgreSQL. Beachten Sie die Verwendung des Abschnitts X-Airflow-common für gemeinsame Einstellungen und die Verbindung zur PostgreSQL-Datenbank. (Die full docker-compose.yml ist zu lang, um hier einzuschließen, aber die Schlüsselabschnitte sind oben gezeigt). . .

Project Setup und Ausführung:

    Erstellen Sie ein Projektverzeichnis.
  1. fügen Sie die
  2. dockerfile und docker-compose.yml file hinzu. .
  3. create
  4. anforderungen.txt Listing notwendige Python -Pakete (z. B. Pandas). .
  5. run
  6. docker -compose up -d , um die Container zu starten.
  7. greifen Sie auf die Airflow ui bei
  8. http: // localhost: 8080 .
  9. Erstellen Sie eine PostgreSQL -Verbindung in der Airflow ui (use
  10. write_to_psql als Verbindungs ​​-ID).
  11. erstellen Sie ein Beispiel
  12. input.csv Datei.

dag und Python -Funktion:

der airflow dag (

sample.py ) definiert den Workflow:

    a
  • postgresoperator erstellt die Datenbanktabelle.
  • a
  • pythonoperator ( generate_insert_queries ) liest den csv und generiert sql insert statements, retten sie dags/sql/inetle_quers.sql . Another
  • postgresoperator
  • die generierte SQL.
  • (der full
sample.py

Code ist zu lang, um hier einzuschließen, aber die Schlüsselabschnitte sind oben gezeigt). . .

Abschluss:

Dieses Projekt zeigt eine vollständige Datenpipeline mit Airflow, Docker und PostgreSQL. Es unterstreicht die Vorteile der Automatisierung und die Verwendung von Docker für reproduzierbare Umgebungen. Die Verwendung von Operatoren und die DAG -Struktur ist der Schlüssel zum effizienten Workflow -Management.

(Die verbleibenden Abschnitte, einschließlich FAQs und Github Repo, sind für die Kürze weggelassen. Sie sind in der ursprünglichen Eingabe vorhanden.)

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3