Profilerstellungsdaten

Abgeschlossen

Bevor Sie Daten bereinigen oder transformieren, müssen Sie verstehen, was sich in Ihren Tabellen befindet. Profildaten bezieht sich auf die Untersuchung Ihrer Datensätze, um Zusammenfassungsstatistiken zu generieren – Häufigkeiten, Mittelwerte, Wertverteilungen und Nullwertprozentsätze – die Qualität und Struktur Ihrer Daten aufzeigen. Diese Foundation hilft Ihnen, Probleme wie fehlende Werte, Ausreißer und unerwartete Muster zu identifizieren, bevor sie Probleme nach unten verursachen.

In dieser Lektion erfahren Sie, wie Sie zusammenfassende Statistiken mithilfe von SQL-Befehlen und dem Datenprofilfeature in Azure Databricks generieren.

Generieren von Zusammenfassungsstatistiken mit SQL

Azure Databricks stellt SQL-Befehle bereit, die Statistiken zu Ihren Tabellen sammeln und anzeigen. Diese Statistiken helfen dem Abfrageoptimierer bei der Auswahl effizienter Ausführungspläne und geben Ihnen Einblicke in die Merkmale Ihrer Daten.

Diagramm erläutert das Generieren von Zusammenfassungsstatistiken mithilfe von SQL.

Sammeln von Statistiken mit ANALYZE TABLE

Der ANALYZE TABLE Befehl berechnet Statistiken für eine Tabelle oder bestimmte Spalten. Zu diesen Statistiken gehören Zeilenanzahlen, Metriken auf Spaltenebene wie Mindest- und Höchstwerte, NULL-Zählungen und unterschiedliche Wertanzahlen.

-- Collect basic table statistics (row count and size)
ANALYZE TABLE sales.transactions COMPUTE STATISTICS;

-- Collect statistics for specific columns
ANALYZE TABLE sales.transactions COMPUTE STATISTICS FOR COLUMNS 
    transaction_id, amount, customer_id;

-- Collect statistics for all columns
ANALYZE TABLE sales.transactions COMPUTE STATISTICS FOR ALL COLUMNS;

Wenn Sie eine bestimmte Spalte analysieren, erhalten Sie detaillierte Metriken:

-- View column-level statistics
DESC EXTENDED sales.transactions amount;

Dadurch werden Metriken zurückgegeben, einschließlich Minimalwert, Maximalwert, Anzahl null, unterschiedliche Anzahl, durchschnittliche Spaltenlänge und maximale Spaltenlänge.

Abrufen von Statistiken mit DESCRIBE TABLE

Der DESCRIBE TABLE EXTENDED Befehl zeigt gesammelte Statistiken zusammen mit Tabellenmetadaten an:

DESCRIBE TABLE EXTENDED sales.transactions;

Sie können pySpark auch verwenden, um Tabellenmetadaten abzurufen und Zusammenfassungsstatistiken zu generieren:

# Generate summary statistics for numeric columns using the DataFrame API
df = spark.table("sales.transactions")
df.describe().show()

Die describe() Methode gibt Anzahl, Mittelwert, Standardabweichung, Min und Max für numerische und Zeichenfolgenspalten zurück.

Die DESCRIBE TABLE EXTENDED Ausgabe enthält eine Statistics Zeile, in der die Größe der Tabelle in Byte und, nach dem Ausführen von ANALYZE TABLE ... COMPUTE STATISTICS, die Zeilenanzahl angezeigt werden. Für verwaltete Tabellen im Unity-Katalog wird die predictive Optimierung automatisch ausgeführt ANALYZE , um Statistiken auf dem aktuellen Stand zu halten.

Tipp

Führen Sie die Ausführung ANALYZE TABLE nach dem Laden von Massendaten oder signifikanten Änderungen aus, um sicherzustellen, dass der Abfrageoptimierer genaue Statistiken für die Planung effizienter Abfragen hat.

Datenprofiling im Unity-Katalog verwenden

Über SQL-Befehle hinaus bietet Azure Databricks die Datenqualitätsüberwachung im Unity-Katalog – ein Dach, der zwei unterschiedliche Funktionen abdeckt:

  • Anomalieerkennung (Public Preview) überwacht alle Tabellen in einem Schema automatisch. Es analysiert historische Muster, um die Aktualität der einzelnen Tabellen (wie kürzlich sie aktualisiert wurden) und die Vollständigkeit (ob die erwartete Anzahl von Zeilen eingetroffen ist) auszuwerten. Sie aktivieren es einmal auf der Schemaebene im Katalog-Explorer, und Azure Databricks bestimmt, wie oft jede Tabelle überprüft werden soll. Verwenden Sie die Anomalieerkennung für eine automatisierte und umfassende Abdeckung Ihrer Tabellen, ohne eine Konfiguration für einzelne Tabellen erforderlich zu machen.
  • Die Datenprofilerstellung stellt eine umfassende statistische Analyse pro Tabelle bereit– Nachverfolgung von Verteilungen, Nullprozentsätzen, Driftmetriken und Modellleistung im Laufe der Zeit. Sie konfigurieren sie einzeln für jede Tabelle. Verwenden Sie die Datenprofilerstellung für Ihre wichtigsten Tabellen, in denen Sie detaillierte historische Trends benötigen.

Für datentechnische Arbeiten, die sich auf die Reinigung und Qualität konzentrieren, verwenden Sie beide: Anomalieerkennung als Frühwarnsystem in allen Tabellen und Datenprofilierung für eine eingehende Überwachung von Schlüsseltabellen.

Im Diagramm wird erläutert, wie Datenprofilerstellung im Unity-Katalog verwendet wird.

Grundlegendes zu Profiltypen

Die Datenprofilerstellung unterstützt drei Analysetypen, die jeweils für unterschiedliche Szenarien geeignet sind:

Profiltyp Anwendungsfall Hauptmerkmale
Momentaufnahme Allgemeine Tabellen Berechnet Metriken über die gesamte Tabelle mit jeder Aktualisierung
Zeitreihe Tabellen mit Zeitstempelspalten Erfasst Metriken über Zeitfenster hinweg, um Trends zu erkennen
Schlussfolgerung ML-Modell-Ableitungstabellen Überwacht Modelleingaben, Vorhersagen und Genauigkeit im Laufe der Zeit

Bei Datentechnikaufgaben, die sich auf die Datenqualität konzentrieren, sind die Snapshot- und Zeitreihenprofile am relevantesten.

Erstellen eines Profils mithilfe der Benutzeroberfläche

So erstellen Sie ein Profil im Katalog-Explorer:

  1. Navigieren Sie im Katalog-Explorer zu Ihrer Tabelle.
  2. Wählen Sie die Registerkarte "Qualität " aus.
  3. Wenn die Anomalieerkennung für das Schema nicht aktiviert ist, wählen Sie "Aktivieren" aus. Wenn die Anomalieerkennung bereits aktiviert ist, wählen Sie "Konfigurieren" aus.
  4. Wählen Sie im Dialogfeld "Datenqualitätsüberwachung " im Feld "Datenprofilerstellung " die Option "Konfigurieren" aus.
  5. Wählen Sie Ihren Profiltyp aus, und konfigurieren Sie Optionen wie Granularität und Planung.

Das Profil generiert eine Profilmetrikentabelle mit Zusammenfassungsstatistiken und einer Driftmetrikentabelle, die Verteilungsänderungen im Laufe der Zeit nachverfolgt. Azure Databricks füllt die Driftmetrikentabelle auf, wenn eine Baseline-Tabelle oder ein aufeinander folgendes Zeitfenster verfügbar ist.

Erstellen eines Profils mithilfe der API

Verwenden Sie für den programmgesteuerten Zugriff das Databricks SDK. Installieren oder aktualisieren Sie das SDK, um die aktuelle API abzurufen:

%pip install "databricks-sdk>=0.68.0"

Erstellen Sie dann ein Momentaufnahmeprofil für eine Tabelle:

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.dataquality import Monitor, DataProfilingConfig, SnapshotConfig

w = WorkspaceClient()

# Retrieve the table ID and schema ID required by the API
table = w.tables.get(full_name="main.sales.transactions")
schema = w.schemas.get(full_name="main.sales")

w.data_quality.create_monitor(
    monitor=Monitor(
        object_type="table",
        object_id=table.table_id,
        data_profiling_config=DataProfilingConfig(
            output_schema_id=schema.schema_id,
            assets_dir="/Workspace/Users/user@example.com/monitoring",
            snapshot=SnapshotConfig()
        )
    )
)

Um das Profil zu aktualisieren und Metriken zu aktualisieren:

from databricks.sdk.service.dataquality import Refresh

w.data_quality.create_refresh(
    object_type="table",
    object_id=table.table_id,
    refresh=Refresh(object_type="table", object_id=table.table_id)
)

Interpretieren von Profilerstellungsergebnissen

Profilerstellung generiert Metriken, die Ihnen helfen, die Datenqualität zu bewerten und Probleme zu identifizieren, die Aufmerksamkeit erfordern.

Wichtige Metriken, die untersucht werden sollen

Die Profilmetrikentabelle enthält Statistiken für jede Spalte:

Metric Was es zeigt
count und num_nulls Vollständigkeit der Daten – hohe Null-Prozentwerte können auf Aufnahmeprobleme hinweisen.
distinct_count Kardinalität – unerwartete Werte können Probleme mit der Datenqualität vorschlagen
min max avg stddev Verteilungsmerkmale – Ausreißer oder schiefe Verteilungen
frequent_items Die häufigsten Werte – hilft bei der Identifizierung dominanter Kategorien oder Duplikate
quantiles Wertverteilung – nützlich zum Erkennen des Schiefegrads

Erkennen von Problemen mit der Datenqualität

Wenn Sie Profilerstellungsergebnisse untersuchen, suchen Sie nach den folgenden allgemeinen Indikatoren:

  • Hohe NULL-Prozentsätze in Spalten, die Werte enthalten sollen
  • Unerwartete unterschiedliche Zählwerte, wie z. B. einzigartige Kennungen, die nicht einzigartig sind
  • Wertbereiche außerhalb erwarteter Grenzen, z. B. negative Beträge, bei denen nur positive Werte gültig sind
  • Verteilungsänderungen im Laufe der Zeit, die auf Datenabweichung hinweisen können

Die Driftmetrikentabelle berechnet statistische Tests wie den Kolmogorov-Smirnov (KS)-Test für numerische Spalten und chi-quadratischen Test für kategorisierte Spalten. Diese Tests quantifizieren, wie viele Verteilungen sich geändert haben.

Wenn Sie diese Muster verstehen, können Sie geeignete Bereinigungs- und Validierungsregeln für Ihre Datenpipelinen entwerfen.