Zurück zu Utils

Stored Procedure

Analyzer

Automatische Datenqualitätsprofilierung von Snowflake-Tabellen über Point-in-Time-Snapshots und Statistiken.

Ziel

Beim Onboarding einer neuen Datenquelle möchten Sie schnell wissen, was darin steckt: Wie viele Nullwerte, welche Bereiche, wie eindeutig sind die Werte? Der Analyzer erstellt ein systematisches Qualitätsprofil, indem er Tabellen als Snapshots erfasst und automatisch Statistiken darüber berechnet — ohne manuelle Abfragen schreiben zu müssen.

Durch den Vergleich von Snapshots über die Zeit können Sie auch Veränderungen in der Datenqualität erkennen: Gibt es plötzlich mehr Nullwerte? Hat eine Spalte ihren erwarteten Bereich überschritten?

Was Sie erwarten können

Der Analyzer besteht aus drei Stored Procedures, die Sie der Reihe nach aufrufen:

create_pit()

Erstellt einen Point-in-Time-Snapshot einer Quelltabelle durch Klonen mit einem Zeitstempel im Namen (z. B. CUSTOMERS_20240412_143000).

register_pits()

Registriert neue Snapshots in einem Statistikregister. Ruft Tabellen- und Spaltenmetadaten ab und verknüpft den Zeitstempel aus dem Tabellennamen.

update_statistics()

Berechnet Datenqualitätsmetriken über alle registrierten Snapshots: Null-Anzahlen, eindeutige Werte, Min- und Maxwerte sowie Schwellenwertüberschreitungen.

Berechnete Statistiken pro Spalte:

MetrikBeschreibung
Null countAnzahl leerer Werte pro Spalte
Distinct countAnzahl eindeutiger Werte pro Spalte
Min / MaxNiedrigster und höchster Wert
TextlängeÜberschreitungen der konfigurierbaren Maximallänge
Numerischer BereichWerte außerhalb eines konfigurierbaren Bereichs
DatumsbereichDatumsangaben außerhalb des erwarteten Zeitraums

Verwendung

1. Einrichtung ausführen

Führen Sie setup.sql aus, um die erforderlichen Schemas und Registrierungstabellen zu erstellen, dann create_analyze_sp.sql um die Prozeduren zu installieren.

2. Snapshot erstellen

CALL datamodder.create_pit(
  source_db  => 'MY_DB',
  source_sch => 'RAW',
  source_tbl => 'CUSTOMERS'
);
-- Creates: MY_DB.RAW.CUSTOMERS_20240412_143000

3. Snapshot registrieren und analysieren

CALL datamodder.register_pits();
CALL datamodder.update_statistics();

-- View results:
SELECT * FROM datamodder.statistics
ORDER BY snapshot_ts DESC;