Datenqualität und Data Cleaning mit Claude: Automatisierte Validierung
AI generated
Claude
>_
Claude AI · Datenqualität · Data Cleaning · Data Governance
Datenqualität und Data Cleaning mit Claude
von der stillen Verunreinigung zur systematischen Prüfung

Fehlerhafte Geschäftsdaten fallen selten sofort auf, verzerren aber jede darauf aufbauende Analyse. Claude hilft, Validierungsregeln zu definieren, Duplikate zuverlässig zu erkennen, Ausreißer systematisch zu identifizieren und Datenqualitäts-Reports zu automatisieren. Dieser Artikel zeigt den vollständigen Weg von der Problemklasse bis zum eingebauten Quality Gate.

16 Min. Lesezeit Validierungsregeln · Deduplizierung · Ausreißererkennung Python · Pandas · SQL · Claude Code

1. Warum Datenqualität ein eigenes Thema ist

Datenqualität wird häufig mit Daten-Pipeline-Debugging verwechselt, ist aber ein eigenständiges Problem. Pipeline-Debugging beantwortet die Frage, warum ein Prozess fehlgeschlagen ist oder unerwartet abgebrochen wurde. Datenqualität beantwortet die andere, subtilere Frage: Sind die erfolgreich verarbeiteten Daten überhaupt korrekt, vollständig und konsistent. Eine Pipeline kann fehlerfrei durchlaufen und trotzdem massenhaft doppelte Kundendatensätze oder unplausible Preiswerte produzieren.

Claude für Datenqualität hilft bei genau dieser zweiten Fragestellung: systematische Validierungsregeln definieren, Duplikate erkennen, Ausreißer identifizieren und das Ganze in wiederholbare, automatisierte Prüfungen gießen. Der Unterschied zu einer punktuellen manuellen Stichprobe liegt in der Systematik: Eine einmal definierte Regel prüft jeden neuen Datensatz, nicht nur die zufällig ausgewählten zwanzig Zeilen aus dem letzten Excel-Export.

Wichtig ist die Abgrenzung von verwandten Themen: Es geht hier nicht um technisches Debugging fehlgeschlagener Prozesse, sondern um die inhaltliche Korrektheit erfolgreich verarbeiteter Geschäftsdaten. Die folgenden Abschnitte behandeln die wichtigsten Bausteine, von der Problemerkennung bis zum automatisierten Quality Gate.

2. Typische Datenqualitätsprobleme systematisch erkennen

Bevor Validierungsregeln entstehen, lohnt sich eine strukturierte Bestandsaufnahme der Problemklassen. Claude für Datenqualität kennt die gängigen Kategorien: fehlende Werte, die stillschweigend als leer statt als explizit fehlend markiert sind, inkonsistente Formate wie unterschiedliche Datumsnotationen in derselben Spalte, Duplikate durch mehrfache Dateneingabe, und Ausreißer, die entweder echte Extremwerte oder Erfassungsfehler sind.

Ein praktikables Vorgehen ist, Claude eine Stichprobe der Daten zusammen mit dem erwarteten Schema zu zeigen und gezielt nach Auffälligkeiten zu fragen. Häufig identifiziert Claude Muster, die bei rein visueller Durchsicht übersehen werden, etwa eine Spalte mit Postleitzahlen, die teils als Text und teils als Zahl gespeichert sind, wodurch führende Nullen bei manchen Einträgen verloren gehen.

3. Validierungsregeln mit Claude definieren

Validierungsregeln formalisieren die impliziten Erwartungen an einen Datensatz: Wertebereiche, Pflichtfelder, erlaubte Kategorien und Beziehungen zwischen Spalten. Claude für Datenqualität hilft, aus einer Beschreibung der Geschäftslogik konkrete, ausführbare Regeln abzuleiten, etwa mit der Great-Expectations-Bibliothek in Python.


import great_expectations as gx

context = gx.get_context()
validator = context.sources.pandas_default.read_csv("orders_export.csv")

# Business rule: order total must be positive and consistent with line items
validator.expect_column_values_to_be_between("order_total", min_value=0.01)
validator.expect_column_values_to_not_be_null("customer_email")
validator.expect_column_values_to_match_regex(
    "customer_email", r"^[^@\s]+@[^@\s]+\.[^@\s]+$"
)
validator.expect_column_values_to_be_in_set(
    "order_status", ["pending", "shipped", "delivered", "cancelled", "refunded"]
)
validator.expect_column_pair_values_a_to_be_greater_than_b(
    column_A="order_total", column_B="discount_amount", or_equal=True
)

results = validator.validate()
print(f"Success: {results.success}, Failed expectations: {results.statistics['unsuccessful_expectations']}")

Der Vorteil dieser formalisierten Regeln gegenüber Ad-hoc-Prüfungen mit einzelnen Skripten ist die Wiederverwendbarkeit: Dieselbe Regelmenge lässt sich gegen jeden neuen Datenexport laufen lassen, mit einer klaren, maschinenlesbaren Ausgabe darüber, welche Regel verletzt wurde. Claude hilft zusätzlich, Grenzfälle in den Regeln zu identifizieren, etwa ob ein Rabattbetrag exakt dem Bestellwert entsprechen darf oder strikt kleiner sein muss.

4. Deduplizierung und Fuzzy-Matching mit KI-Unterstützung

Exakte Duplikate lassen sich einfach mit einer Gruppierung nach allen Spalten finden. Schwieriger sind Near-Duplicates, etwa derselbe Kunde mit leicht unterschiedlicher Schreibweise des Namens oder einer Adresse mit und ohne Abkürzung. Claude für Datenqualität hilft, eine geeignete Fuzzy-Matching-Strategie zu entwerfen, inklusive der Wahl einer passenden Ähnlichkeitsmetrik für den jeweiligen Datentyp.


import pandas as pd
from rapidfuzz import fuzz, process

def find_potential_duplicates(df: pd.DataFrame, threshold: int = 90) -> pd.DataFrame:
    """Find near-duplicate customer records by fuzzy name and address matching."""
    df["match_key"] = (df["full_name"].str.lower().str.strip() + " "
                        + df["postal_code"].astype(str))

    duplicates = []
    seen = set()
    for idx, row in df.iterrows():
        if idx in seen:
            continue
        matches = process.extract(
            row["match_key"], df["match_key"], scorer=fuzz.token_sort_ratio, limit=5
        )
        similar = [m for m in matches if m[1] >= threshold and m[2] != idx]
        if similar:
            duplicates.append({
                "original_index": idx,
                "customer_id": row["customer_id"],
                "matches": [(df.loc[m[2], "customer_id"], m[1]) for m in similar],
            })
            seen.update(m[2] for m in similar)

    return pd.DataFrame(duplicates)

Ein häufiger Fehler bei Fuzzy-Matching ist ein zu niedrig gewählter Schwellenwert, wodurch tatsächlich unterschiedliche Personen fälschlich zusammengeführt werden. Claude weist darauf hin, den Schwellenwert an einer manuell geprüften Stichprobe zu kalibrieren, statt einen Standardwert aus der Dokumentation ungeprüft zu übernehmen, und schlägt vor, gefundene Kandidaten immer zur menschlichen Bestätigung vorzulegen, statt automatisch zu verschmelzen.

5. Ausreißererkennung in Geschäftsdaten

Nicht jeder statistische Ausreißer ist ein Fehler, und nicht jeder Fehler zeigt sich als offensichtlicher Ausreißer. Ein Bestellwert von einer Million Euro in einem B2C-Shop ist verdächtig, ein Bestellwert von einer Million Euro in einem B2B-Großhandelskontext kann völlig plausibel sein. Claude für Datenqualität hilft, Schwellenwerte kontextsensitiv festzulegen, statt eine pauschale statistische Regel wie drei Standardabweichungen unreflektiert auf jede Spalte anzuwenden.


import pandas as pd
import numpy as np

def flag_outliers_iqr(df: pd.DataFrame, column: str, group_by: str) -> pd.DataFrame:
    """Flag outliers per group using the interquartile range method."""
    def _flag(group: pd.DataFrame) -> pd.Series:
        q1, q3 = group[column].quantile([0.25, 0.75])
        iqr = q3 - q1
        lower, upper = q1 - 1.5 * iqr, q3 + 1.5 * iqr
        return (group[column] < lower) | (group[column] > upper)

    df["is_outlier"] = df.groupby(group_by, group_keys=False).apply(_flag)
    return df

flagged = flag_outliers_iqr(orders_df, column="order_total", group_by="customer_segment")
print(f"Flagged {flagged['is_outlier'].sum()} potential outliers for manual review")

Die Gruppierung nach Kundensegment vor der Ausreißerberechnung ist hier entscheidend: Ohne diese Gruppierung würde ein normaler B2B-Großauftrag fälschlich als Ausreißer im Vergleich zu kleinen B2C-Bestellungen markiert. Claude schlägt solche kontextsensitiven Gruppierungen typischerweise proaktiv vor, sobald man erwähnt, dass die Daten aus heterogenen Geschäftsbereichen stammen.

6. Datenqualitäts-Reports automatisiert generieren

Einmalige Prüfungen verlieren schnell an Wert, wenn sich Daten kontinuierlich ändern. Claude hilft, ein Skript zu entwerfen, das regelmäßig alle definierten Validierungsregeln ausführt und die Ergebnisse in einem übersichtlichen Report zusammenfasst, statt jedes Mal manuell nachzusehen, ob neue Probleme aufgetreten sind.


#!/usr/bin/env bash
# data-quality-check.sh — run all validation rules and report failures
set -euo pipefail

readonly REPORT_FILE="./reports/dq-report-$(date +%Y%m%d).json"

echo "[INFO] Running Great Expectations validation suite"
python3 -m great_expectations checkpoint run orders_checkpoint --output "$REPORT_FILE"

FAILED=$(jq '.statistics.unsuccessful_expectations' "$REPORT_FILE")

if [[ "$FAILED" -gt 0 ]]; then
  echo "[WARN] ${FAILED} data quality rules failed, notifying data team"
  python3 notify_slack.py --report "$REPORT_FILE" --channel "#data-quality"
  exit 1
else
  echo "[OK] All data quality rules passed"
fi

Der Exit-Code des Skripts ist bewusst ungleich null bei fehlgeschlagenen Regeln, damit sich dieser Check nahtlos in eine bestehende Automatisierungspipeline einbauen lässt. Claude hilft zusätzlich, die Benachrichtigungslogik so zu gestalten, dass nicht jede kleine Regelverletzung eine Alarmmüdigkeit im Team erzeugt, etwa durch Priorisierung nach Schweregrad.

7. Schema-Validierung und Typenkonsistenz sicherstellen

Neben inhaltlichen Validierungsregeln ist die strukturelle Konsistenz eines Datensatzes ein eigener Prüfschritt: Stimmen Spaltennamen, Datentypen und die erwartete Anzahl an Spalten mit der Definition überein. Claude für Datenqualität hilft, ein JSON-Schema zu formulieren, das strukturelle Abweichungen bereits vor der inhaltlichen Prüfung abfängt.


{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "OrderRecord",
  "type": "object",
  "required": ["order_id", "customer_email", "order_total", "order_status"],
  "properties": {
    "order_id": { "type": "integer", "minimum": 1 },
    "customer_email": { "type": "string", "format": "email" },
    "order_total": { "type": "number", "minimum": 0.01 },
    "order_status": {
      "type": "string",
      "enum": ["pending", "shipped", "delivered", "cancelled", "refunded"]
    },
    "created_at": { "type": "string", "format": "date-time" }
  },
  "additionalProperties": false
}

Strukturelle Prüfungen sind meist schneller auszuführen als inhaltliche Validierungsregeln und fangen eine ganze Klasse von Problemen ab, bevor sie überhaupt bis zur inhaltlichen Prüfung durchdringen, etwa wenn ein Upstream-System versehentlich eine Spalte umbenennt. Claude weist darauf hin, additionalProperties bewusst auf false zu setzen, damit unerwartete neue Spalten sofort auffallen, statt stillschweigend ignoriert zu werden.

8. Data-Quality-Checks als Qualitäts-Gate verankern

Der größte Hebel entsteht, wenn Datenqualitätsprüfungen nicht als nachträgliche Kontrolle, sondern als Gate direkt in der Verarbeitungskette verankert werden. Ein fehlgeschlagener Datenqualitäts-Check sollte den Übergang von Rohdaten in die produktive Schicht blockieren, statt fehlerhafte Daten stillschweigend durchzureichen. Claude hilft, die Frage zu beantworten, an welcher Stelle im Ablauf ein solches Gate am wirkungsvollsten platziert wird.

In der Praxis bedeutet das meist, den Datenqualitäts-Check direkt nach dem Laden in eine Staging-Zone und vor dem Verschieben in die produktive Tabelle auszuführen. So bleiben fehlerhafte Datensätze isoliert und nachvollziehbar, statt sich unbemerkt in nachgelagerten Reports und Analysen zu verbreiten. Claude kann außerdem helfen, eine Eskalationslogik zu entwerfen, bei der geringfügige Regelverletzungen protokolliert, aber nicht blockierend behandelt werden, während schwerwiegende Verletzungen den gesamten Ladevorgang stoppen.

9. Manuelle Stichproben im Vergleich zu automatisierten Checks

Die folgende Tabelle stellt manuelle Stichprobenprüfung und automatisierte, mit Claude entworfene Data-Quality-Checks gegenüber.

Aspekt Manuelle Stichprobe Automatisierter Check mit Claude Vorteil
Abdeckung Wenige zufällige Zeilen Jeder neue Datensatz vollständig Keine übersehenen Problemfälle
Duplikaterkennung Nur exakte Duplikate sichtbar Fuzzy-Matching mit kalibriertem Schwellenwert Near-Duplicates werden erkannt
Ausreißer Pauschale Schwellenwerte Kontextsensitiv nach Segment Weniger Falschmeldungen
Wiederholbarkeit Jedes Mal neu improvisiert Feste Regelmenge, versioniert Konsistente Prüfung über Zeit
Eskalation Ad-hoc, oft zu spät Automatische Benachrichtigung als Gate Fehler blockiert vor Ausbreitung

Manuelle Stichproben bleiben sinnvoll für explorative Erstprüfungen neuer Datenquellen. Sobald ein Datensatz jedoch regelmäßig aktualisiert wird, ist automatisierte Validierung mit Claude als Entwurfsunterstützung der einzige Weg, Datenqualität dauerhaft sicherzustellen.

Mironsoft

Datenqualität, Validierungsregeln und automatisierte Data-Quality-Checks

Daten, denen euer Team ohne Nachdenken vertrauen kann?

Wir entwerfen Validierungsregeln, bauen Deduplizierung und Ausreißererkennung und richten Data-Quality-Gates ein, die fehlerhafte Daten stoppen, bevor sie in Reports und Analysen landen.

Validierungsregeln

Wertebereiche, Pflichtfelder und Schema-Prüfung formalisiert

Deduplizierung

Fuzzy-Matching mit kalibrierten Schwellenwerten

Automatisierung

Quality Gates und Reports ohne manuellen Aufwand

10. Zusammenfassung

Datenqualität mit Claude beginnt mit einer systematischen Bestandsaufnahme typischer Problemklassen, fehlende Werte, inkonsistente Formate, Duplikate und Ausreißer, bevor überhaupt Validierungsregeln entstehen. Formalisierte Regeln mit Bibliotheken wie Great Expectations, kalibriertes Fuzzy-Matching für Near-Duplicates und kontextsensitive Ausreißererkennung nach Segment ersetzen zufällige manuelle Stichproben durch wiederholbare, vollständige Prüfungen.

Der größte Hebel entsteht, wenn diese Prüfungen als Quality Gate direkt in der Verarbeitungskette verankert werden, statt als nachträgliche Kontrolle. Fehlerhafte Daten werden so isoliert, bevor sie sich in Reports und Analysen verbreiten. Claude liefert die technische Umsetzung dieser Prüfungen, welche Regeln geschäftlich sinnvoll sind, bleibt eine fachliche Entscheidung des Teams.

Datenqualität und Data Cleaning mit Claude, das Wichtigste auf einen Blick

Validierungsregeln

Wertebereiche, Pflichtfelder und Kategorien formalisiert und wiederholbar gegen jeden Export laufen lassen.

Deduplizierung

Fuzzy-Matching mit kalibriertem Schwellenwert, gefundene Kandidaten immer manuell bestätigen.

Ausreißererkennung

Kontextsensitiv nach Segment gruppieren, statt pauschale statistische Schwellenwerte anzuwenden.

Quality Gates

Prüfungen direkt in der Verarbeitungskette verankern, fehlerhafte Daten vor Verbreitung stoppen.

11. FAQ: Datenqualität und Data Cleaning mit Claude

1Datenqualität vs. Pipeline-Debugging?
Pipeline-Debugging klärt Prozessfehler, Datenqualität prüft inhaltliche Korrektheit unabhängig vom Prozesserfolg.
2Typische Probleme erkennbar?
Fehlende Werte, inkonsistente Formate, Duplikate und Ausreißer, oft schon bei kleiner Stichprobe.
3Validierungsregeln formulieren?
Aus Geschäftslogik leitet Claude ausführbare Regeln ab, etwa mit Great Expectations.
4Wie funktioniert Fuzzy-Matching?
Ähnlichkeitsmetriken vergleichen Namen trotz Schreibvarianten. Schwellenwert an geprüfter Stichprobe kalibrieren.
5Warum pauschale Ausreißerregel riskant?
B2C-verdächtige Werte können in B2B plausibel sein. Gruppierung nach Segment ist notwendig.
6Reports automatisieren?
Skript führt Regeln regelmäßig aus und meldet Fehler mit passendem Exit-Code für die Pipeline.
7Nutzen der Schema-Validierung?
Fängt strukturelle Probleme wie umbenannte Spalten früh ab, schneller als inhaltliche Prüfung.
8Was ist ein Data-Quality-Gate?
Kontrollpunkt, der fehlerhafte Daten blockiert, statt sie stillschweigend in die produktive Schicht durchzureichen.
9Duplikate automatisch zusammenführen?
Nein, immer menschlich bestätigen lassen, um Fehlzusammenführungen zu vermeiden.
10Ersetzt Claude fachliche Regelwahl?
Nein. Claude liefert technische Umsetzung, sinnvolle Regeln bleiben fachliche Entscheidung.