Stored Procedure
Analyzer
Automatische datakwaliteitsprofieling van Snowflake tabellen, via point-in-time snapshots en statistieken.
Doel
Bij het onboarden van een nieuwe databron wil je snel weten wat er in zit: hoeveel nulls, welke ranges, hoe uniek zijn de waarden? De Analyzer bouwt een systematisch kwaliteitsprofiel op door tabellen als snapshot vast te leggen en daar geautomatiseerd statistieken over te berekenen, zonder dat je handmatig query's hoeft te schrijven.
Door snapshots in de tijd te vergelijken kun je ook veranderingen in de datakwaliteit signaleren: zijn er plotseling meer nulls? Is een kolom uit zijn range gelopen?
Wat je kunt verwachten
De Analyzer bestaat uit drie stored procedures die je in volgorde aanroept:
create_pit()
Maakt een point-in-time snapshot van een brontabel door een kloon aan te maken met een tijdstempel in de naam (bijv. KLANTEN_20240412_143000). Zo kun je de toestand van een tabel op elk moment vastleggen.
register_pits()
Registreert nieuwe snapshots in een statistiekenregister. Haalt tabel- en kolommetadata op en koppelt de tijdstempel uit de tabelnaam, zodat alle PITs traceerbaar zijn.
update_statistics()
Berekent datakwaliteitsmetrieken over alle geregistreerde snapshots: null-tellingen, distinct waarden, min- en maxwaarden, en drempeloverschrijdingen voor tekstlengte, numerieke ranges en datumranges.
Berekende statistieken per kolom:
| Metriek | Beschrijving |
|---|---|
| Null count | Aantal lege waarden per kolom |
| Distinct count | Aantal unieke waarden per kolom |
| Min / Max | Laagste en hoogste waarde |
| Tekstlengte | Overschrijdingen van configureerbare maximale lengte |
| Numerieke range | Waarden buiten een configureerbaar bereik |
| Datumrange | Datums buiten verwachte periode |
Gebruik
1. Setup uitvoeren
Voer setup.sql uit om de benodigde schema's en registratietabellen aan te maken, daarna create_analyze_sp.sql om de procedures te installeren.
2. Snapshot aanmaken
CALL datamodder.create_pit( source_db => 'MIJN_DB', source_sch => 'RAW', source_tbl => 'KLANTEN' ); -- Maakt: MIJN_DB.RAW.KLANTEN_20240412_143000
3. Snapshot registreren en analyseren
CALL datamodder.register_pits(); CALL datamodder.update_statistics(); -- Bekijk de resultaten: SELECT * FROM datamodder.statistics ORDER BY snapshot_ts DESC;