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 queries 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).

register_pits()

Registreert nieuwe snapshots in een statistiekenregister. Haalt tabel- en kolommetadata op en koppelt de tijdstempel uit de tabelnaam.

update_statistics()

Berekent datakwaliteitsmetrieken over alle geregistreerde snapshots: null-tellingen, distinct waarden, min- en maxwaarden, en drempeloverschrijdingen.

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  => 'MY_DB',
  source_sch => 'RAW',
  source_tbl => 'CUSTOMERS'
);
-- Creates: MY_DB.RAW.CUSTOMERS_20240412_143000

3. Snapshot registreren en analyseren

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

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