Stored Procedure
Anonymizer
Anonimiseer persoonsgegevens in Snowflake voor veilig gebruik in test- en ontwikkelomgevingen.
Doel
Testomgevingen draaien idealiter met productiewaardige data, maar mogen geen echte persoonsgegevens bevatten. De Anonymizer lost dit op: hij verwerkt een kopie van je productietabel zodat de dataverdeling en statistieken bewaard blijven, maar de waarden niet meer herleidbaar zijn naar individuen.
Per kolom kies je de anonimiseringsmethode die het beste past bij het datatype en het doel van de testomgeving.
Wat je kunt verwachten
De stored procedure biedt zes anonimiseringsmethodes:
shuffle
Herverdeelt bestaande kolomwaarden willekeurig over de rijen. De data blijft realistisch, maar is niet meer herleidbaar naar een individu.
shuffle_name
Vermengt voor- en achternamen slim door ze afzonderlijk te shuffelen, inclusief tussenvoegsels. Zo blijft de naamstructuur intact.
shuffle_phone
Herverdeelt telefoonprefixen en -suffixen onafhankelijk per lengtegroep, zodat nummers realistisch blijven.
shift_housenumber
Wijzigt huisnummers met ±2 of ±4, zodat adressen plausibel maar niet correct zijn.
random_string
Genereert willekeurige strings op basis van een patroon. Gebruik 'a' voor een letter en '#' voor een cijfer, bijv. 'aa##aa' voor een postcode.
random_lookup
Vult rijen met willekeurige waarden uit een andere tabelkolom. Handig voor realistische testdata uit een referentielijst.
Gebruik
1. Eenmalige setup
Voer eerst de globale setup.sql uit als accountadmin. Daarna maak je de stored procedure aan:
-- Pas de variabelen bovenaan het script aan: -- MY_DATABASE, MY_WAREHOUSE -- Voer daarna uit: execute immediate $$ ... $$;
2. Procedure aanroepen
Roep de procedure aan met de doeltabel en een kolom-configuratie. Per kolom geef je de methode op:
CALL datamodder.anonymize(
'MIJN_DB.MIJN_SCHEMA.KLANTEN',
ARRAY_CONSTRUCT(
OBJECT_CONSTRUCT('column', 'NAAM', 'method', 'shuffle_name'),
OBJECT_CONSTRUCT('column', 'EMAIL', 'method', 'random_string',
'pattern', 'aaaa####@test.nl'),
OBJECT_CONSTRUCT('column', 'TELEFOON','method', 'shuffle_phone'),
OBJECT_CONSTRUCT('column', 'ADRES', 'method', 'shift_housenumber')
)
);3. Controleren met de testscripts
Het meegeleverde test_anonymize_sp.sql maakt voorbeelddata aan, voert de procedure uit en toont een voor-en-na vergelijking zodat je de output kunt valideren.