Terug naar Utils

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:

MetriekBeschrijving
Null countAantal lege waarden per kolom
Distinct countAantal unieke waarden per kolom
Min / MaxLaagste en hoogste waarde
TekstlengteOverschrijdingen van configureerbare maximale lengte
Numerieke rangeWaarden buiten een configureerbaar bereik
DatumrangeDatums 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;