Erstellen Sie Ihre eigene einfache Datenpipeline mit Python und DockerErstellen Sie Ihre eigene einfache Datenpipeline mit Python und DockerBild von Autor | Ideogramm

Daten sind der Vorteil, der unsere Arbeit als Datenfachleute antreibt. Ohne ordnungsgemäße Daten können wir unsere Aufgaben nicht ausführen, und unser Geschäft wird keinen Wettbewerbsvorteil erzielen. Daher ist die Sicherung geeigneter Daten für jeden Datenprofi von entscheidender Bedeutung, und Datenpipelines sind die für diesen Zweck entwickelten Systeme.

Datenpipelines sind Systeme, die Daten von einer Quelle in eine andere verschieben und umwandeln. Diese Systeme sind Teil der Gesamtinfrastruktur für jedes Unternehmen, das sich auf Daten stützt, da sie garantieren, dass unsere Daten zuverlässig und immer bereit sind.

Das Erstellen einer Datenpipeline magazine komplex klingen, aber einige einfache Instruments reichen aus, um zuverlässige Datenpipelines mit nur wenigen Codezeilen zu erstellen. In diesem Artikel werden wir untersuchen, wie Sie eine einfache Datenpipeline mit Python und Docker erstellen, die Sie in Ihren täglichen Datenarbeiten anwenden können.

Lassen Sie uns darauf eingehen.

Aufbau der Datenpipeline

Bevor wir unsere Datenpipeline erstellen, verstehen wir das Konzept von ETL, das für Extrakt, Transformation und Final steht. ETL ist ein Prozess, bei dem die Datenpipeline die folgenden Aktionen ausführt:

  • Daten aus verschiedenen Quellen extrahieren.
  • Verwandeln Sie Daten in ein gültiges Format.
  • Laden Sie Daten in einen zugänglichen Speicherort.

ETL ist ein Standardmuster für Datenpipelines. Wir erstellen additionally dieser Struktur.

Mit Python und Docker können wir eine Datenpipeline rund um den ETL -Prozess mit einem einfachen Setup erstellen. Python ist ein wertvolles Instrument zur Orchestrierung von Datenflussaktivitäten, während Docker für die Verwaltung der Umgebung der Datenpipeline -Anwendung mithilfe von Containern nützlich ist.

Lassen Sie uns unsere Datenpipeline mit Python und Docker einrichten.

Schritt 1: Vorbereitung

Erstens müssen wir nicht versichern, dass Python und Docker in unserem System installiert sind (wir werden dies hier nicht abdecken).

Für unser Beispiel werden wir die verwenden Herzinfarktdatensatz von Kaggle als Datenquelle zur Entwicklung unseres ETL -Prozesses.

Mit allem werden wir die Projektstruktur vorbereiten. Insgesamt wird die einfache Datenpipeline das folgende Skelett haben:

simple-data-pipeline/
├── app/
│   └── pipeline.py
├── information/
│   └── Medicaldataset.csv
├── Dockerfile
├── necessities.txt
└── docker-compose.yml

Es gibt einen Hauptordner, der genannt wird simple-data-pipelinewas enthält:

  • Ein app Ordner mit dem pipeline.py Datei.
  • A information Ordner, der die Quelldaten enthält (Medicaldataset.csv).
  • Der necessities.txt Datei für Umgebungsabhängigkeiten.
  • Der Dockerfile Für die Docker -Konfiguration.
  • Der docker-compose.yml Datei zum Definieren und Ausführen unserer Multi-Container-Docker-Anwendung.

Wir werden zuerst die ausfüllen necessities.txt Datei, die die für unser Projekt erforderlichen Bibliotheken enthält.

In diesem Fall werden wir nur die folgende Bibliothek verwenden:

Im nächsten Abschnitt werden die Datenpipeline mit unseren Beispieldaten eingerichtet.

Schritt 2: Richten Sie die Pipeline ein

Wir werden die Python einrichten pipeline.py Datei für den ETL -Prozess. In unserem Fall verwenden wir den folgenden Code.

import pandas as pd
import os

input_path = os.path.be a part of("/information", "Medicaldataset.csv")
output_path = os.path.be a part of("/information", "CleanedMedicalData.csv")

def extract_data(path):
    df = pd.read_csv(path)
    print("Knowledge Extraction accomplished.")
    return df

def transform_data(df):
    df_cleaned = df.dropna()
    df_cleaned.columns = (col.strip().decrease().substitute(" ", "_") for col in df_cleaned.columns)
    print("Knowledge Transformation accomplished.")
    return df_cleaned

def load_data(df, output_path):
    df.to_csv(output_path, index=False)
    print("Knowledge Loading accomplished.")

def run_pipeline():
    df_raw = extract_data(input_path)
    df_cleaned = transform_data(df_raw)
    load_data(df_cleaned, output_path)
    print("Knowledge pipeline accomplished efficiently.")

if __name__ == "__main__":
    run_pipeline()

Die Pipeline folgt dem ETL -Prozess, in dem wir die CSV -Datei laden, Datenumwandlungen wie fehlende Daten und Reinigen der Spaltennamen und die gelöschten Daten in eine neue CSV -Datei ausführen. Wir haben diese Schritte in eine einzelne eingepackt run_pipeline Funktion, die den gesamten Prozess ausführt.

Schritt 3: Richten Sie die Dockerfile ein

Mit der Python -Pipeline -Datei werden wir die füllen Dockerfile So richten Sie die Konfiguration für den Docker -Container mit dem folgenden Code ein:

FROM python:3.10-slim

WORKDIR /app
COPY ./app /app
COPY necessities.txt .

RUN pip set up --no-cache-dir -r necessities.txt

CMD ("python", "pipeline.py")

Im obigen Code geben wir an, dass der Container Python Model 3.10 als Umgebung verwendet. Als nächstes setzen wir das Arbeitsverzeichnis des Containers auf /app und kopieren Sie alles von unserem Einheimischen app Ordner in den Behälter app Verzeichnis. Wir kopieren auch die necessities.txt Datei und führen Sie die PIP -Set up im Container aus. Schließlich geben wir den Befehl an, um das Python -Skript auszuführen, wenn der Container startet.

Mit dem Dockerfile Bereit, wir werden die vorbereiten docker-compose.yml Datei zur Verwaltung der Gesamtausführung:

model: '3.9'

providers:
  data-pipeline:
    construct: .
    container_name: simple_pipeline_container
    volumes:
      - ./information:/information

Die obige YAML -Datei wird beim Ausführen das Docker -Bild über das verfügbare Verzeichnis erstellt Dockerfile. Wir montieren auch den Einheimischen information Ordner zum information Ordner im Container, sodass der Datensatz zu unserem Skript zugänglich ist.

Ausführung der Pipeline

Mit allen Dateien werden wir die Datenpipeline in Docker ausführen. Gehen Sie zum Projektroot -Ordner und führen Sie den folgenden Befehl in Ihrer Eingabeaufforderung aus, um das Docker -Bild zu erstellen und die Pipeline auszuführen.

docker compose up --build

Wenn Sie dies erfolgreich ausführen, sehen Sie wie Folgendes ein Informationsprotokoll:

 ✔ data-pipeline                           Constructed                                                                                   0.0s 
 ✔ Community simple_docker_pipeline_default  Created                                                                                 0.4s 
 ✔ Container simple_pipeline_container     Created                                                                                 0.4s 
Attaching to simple_pipeline_container
simple_pipeline_container  | Knowledge Extraction accomplished.
simple_pipeline_container  | Knowledge Transformation accomplished.
simple_pipeline_container  | Knowledge Loading accomplished.
simple_pipeline_container  | Knowledge pipeline accomplished efficiently.
simple_pipeline_container exited with code 0

Wenn alles erfolgreich ausgeführt wird, werden Sie eine neue sehen CleanedMedicalData.csv Datei in Ihrem Datenordner.

Glückwunsch! Sie haben gerade eine einfache Datenpipeline mit Python und Docker erstellt. Versuchen Sie, verschiedene Datenquellen und ETL -Prozesse zu verwenden, um festzustellen, ob Sie eine komplexere Pipeline verarbeiten können.

Abschluss

Das Verständnis von Datenpipelines ist für jeden Datenfachmann von entscheidender Bedeutung, da sie für den Erwerb der richtigen Daten für ihre Arbeit unerlässlich sind. In diesem Artikel haben wir untersucht, wie man eine einfache Datenpipeline mit Python und Docker erstellt und gelernt hat, wie man sie ausführt.

Ich hoffe das hat geholfen!

Cornellius Yudha Wijaya ist ein Knowledge Science Assistant Supervisor und Datenautor. Während er in Vollzeit bei Allianz Indonesien arbeitet, liebt er es, Python- und Datentipps über soziale Medien und das Schreiben von Medien zu teilen. Cornellius schreibt über eine Vielzahl von KI- und maschinellen Lernthemen.

Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert