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:
| Metrik | Beschreibung |
|---|---|
| Null count | Anzahl leerer Werte pro Spalte |
| Distinct count | Anzahl eindeutiger Werte pro Spalte |
| Min / Max | Niedrigster und höchster Wert |
| Textlänge | Überschreitungen der konfigurierbaren Maximallänge |
| Numerischer Bereich | Werte außerhalb eines konfigurierbaren Bereichs |
| Datumsbereich | Datumsangaben 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;