Stored Procedure
Anonymizer
Anonymisieren Sie personenbezogene Daten in Snowflake für die sichere Verwendung in Test- und Entwicklungsumgebungen.
Ziel
Testumgebungen laufen idealerweise mit produktionsnahen Daten, dürfen aber keine echten personenbezogenen Daten enthalten. Der Anonymizer löst dieses Problem: Er verarbeitet eine Kopie Ihrer Produktionstabelle, sodass Datenverteilung und Statistiken erhalten bleiben, die Werte aber nicht mehr auf Einzelpersonen zurückgeführt werden können.
Pro Spalte wählen Sie die Anonymisierungsmethode, die am besten zum Datentyp und Zweck der Testumgebung passt.
Was Sie erwarten können
Die Stored Procedure bietet sechs Anonymisierungsmethoden:
shuffle
Verteilt bestehende Spaltenwerte zufällig auf die Zeilen um. Die Daten bleiben realistisch, sind aber nicht mehr auf Einzelpersonen zurückführbar.
shuffle_name
Mischt Vor- und Nachnamen intelligent, indem sie separat geshuffelt werden, einschließlich Infixe. Die Namensstruktur bleibt erhalten.
shuffle_phone
Verteilt Telefonpräfixe und -suffixe unabhängig pro Längengruppe um, sodass Nummern realistisch bleiben.
shift_housenumber
Ändert Hausnummern um ±2 oder ±4, sodass Adressen plausibel, aber nicht korrekt sind.
random_string
Generiert zufällige Strings basierend auf einem Muster. Verwenden Sie 'a' für einen Buchstaben und '#' für eine Ziffer, z. B. 'aa##aa' für eine Postleitzahl.
random_lookup
Füllt Zeilen mit zufälligen Werten aus einer anderen Tabellenspalte. Nützlich für realistische Testdaten aus einer Referenzliste.
Verwendung
1. Einmalige Einrichtung
Führen Sie zuerst das globale setup.sql als accountadmin aus. Erstellen Sie dann die Stored Procedure:
-- Adjust variables at the top of the script: -- MY_DATABASE, MY_WAREHOUSE -- Then run: execute immediate $$ ... $$;
2. Prozedur aufrufen
Rufen Sie die Prozedur mit der Zieltabelle und einer Spaltenkonfiguration auf. Pro Spalte geben Sie die Methode an:
CALL datamodder.anonymize(
'MY_DB.MY_SCHEMA.CUSTOMERS',
ARRAY_CONSTRUCT(
OBJECT_CONSTRUCT('column', 'NAME', 'method', 'shuffle_name'),
OBJECT_CONSTRUCT('column', 'EMAIL', 'method', 'random_string',
'pattern', 'aaaa####@test.com'),
OBJECT_CONSTRUCT('column', 'PHONE', 'method', 'shuffle_phone'),
OBJECT_CONSTRUCT('column', 'ADDRESS', 'method', 'shift_housenumber')
)
);3. Mit Testskripten überprüfen
Das mitgelieferte test_anonymize_sp.sql erstellt Beispieldaten, führt die Prozedur aus und zeigt einen Vorher-Nachher-Vergleich.