DATAMIMIC
DATAMIMIC — modellgetriebene, deterministische Testdaten.
Open-Source-Bibliothek (CE) und On-Prem-Plattform für Unternehmen (EE) auf derselben DSL.
Dokumentation: https://docs.datamimic.io
Community-Projekt: https://github.com/rapiddweller/datamimic
Enterprise Edition: https://datamimic.io
DATAMIMIC erzeugt Testdaten für Banken, Versicherungen und den öffentlichen Sektor. Regelbasierte Generatoren für regulierte Datenformate (IBAN, BIC) und Template-Exporter für SWIFT-, PACS-, EDIFACT- und HL7-Nachrichten arbeiten deterministisch: gleicher Seed, gleicher Content-Hash, byte-identische Ausgaben — über Umgebungen und Releases hinweg. Die Enterprise Edition ergänzt auto-regressive ML-Generatoren für Fälle, in denen statistische Verteilungstreue gefragt ist.
Zwei Editionen, gemeinsame DSL — unterschiedliche Laufzeit¶
CE und EE teilen sich den Großteil der DSL-Oberfläche, sodass die meisten Modelle in beiden Editionen laufen. Sie unterscheiden sich beim Laufzeitverhalten, im Integrationsumfang und in der operativen Tiefe.
| CE — Community Edition | EE — Enterprise Edition | |
|---|---|---|
| Was es ist | Python-Bibliothek und datamimic-CLI |
On-Prem-Plattform: Web-UI, REST-API, Scheduler, Worker (die die EE-Core-Engine kapseln), optional LSP |
| Verarbeitungskern | Python | Python und Rust-Schnellpfad, deutlich stärker optimiert |
| Datenquellen-Scan | Skip/Offset (OFFSET / LIMIT) Paginierung in der Datenbank |
Keyset + Manifest, über Worker-Prozesse synchronisiert |
| Logs & Fehlerbehandlung | Standard | Strukturierte Logs, ausgebauter Fehlerkatalog und Recovery |
| Streaming / Messaging | — | Apache Kafka als Quelle und Ziel |
| ML | — | Auto-regressives ML (TabularARGN, Apache 2.0) |
| Auslösen durch | Lokale CLI / Python-Skripte | UI oder CI via REST, als Worker-Task ausgeführt |
| Bereitstellung | pip install datamimic-ce |
Docker, Podman, Kubernetes, OpenShift oder Helm-Chart |
| Governance | — | Benutzer- und Gruppenverwaltung, Audit-Trail für Tasks und Schedules, strukturierte Pro-Task-Logs, deterministische Wiederholungsläufe |
| CE-stärker | MCP-Support, umfangreichere demografische Profile | — |
Seiten mit dem Tag (CE+EE) gelten für beide Editionen. (CE) kennzeichnet CE-spezifische Inhalte. (EE) kennzeichnet Funktionen, die die Enterprise Edition voraussetzen.
Schlüsselfunktionen¶
- Komponierbare Modelle (CE+EE): Modelle werden über
<include>zusammengesetzt. Wiederverwendbare Fragmente deklarieren ihre erwarteten Eingaben mit<param>auf Wurzelebene; aufrufende Stellen übergeben Werte pro Instanz über<property>-Overlays — ein Fragment bedient viele Geschäftsvarianten ohne Copy-Paste. Siehe Release Notes für 3.3.0. - Multi-Format-Output (CE+EE): Ein Modell schreibt im selben Lauf nach SQL-Datenbanken, JSON, XML, CSV und EDIFACT. Kafka-Quelle und -Ziel sind ausschließlich in der EE verfügbar.
- JSON- und XML-Verarbeitung (CE+EE): Tief verschachtelte Strukturen werden erzeugt und transformiert, mit voller Kontrolle über Hierarchie und Typen.
- Datenanonymisierung und -pseudonymisierung (CE+EE): Feldbasiertes Masking, deklariert im Modell. Gleiche Konfiguration reproduziert über Läufe hinweg dieselben maskierten Ausgaben.
- MCP-Support (CE): Anbindung an das Model Context Protocol in der Community Edition für LLM-gestützte Workflows.
- Demografische Profile (CE): CE liefert umfangreichere demografische Profile bereits ab Werk mit.
- Automatische PII-Erkennung (EE): Beim Generieren eines Modells aus Datenbank-Metadaten werden PII-verdächtige Felder automatisch mit
#SENSITIVEmarkiert und sind damit standardmäßig maskiert. Autoren prüfen und justieren vor dem Export. - Datenschutz-Ausrichtung (CE+EE): Ausgerichtet auf DSGVO Art. 25 (Privacy by Design); unterstützt BCBS 239- und DORA-Nachvollziehbarkeitsanforderungen.
- ML-basierte Generierung, auto-regressiv (EE): Auto-regressive ML-Generatoren (TabularARGN, Apache 2.0). Versioniert und qualitätsbewertet; ML-Ausgaben sind statistisch konsistent (nicht byte-identisch — byte-identische Ausgaben gibt es nur bei seed-gesteuerten regelbasierten Generatoren).
- Performance (EE): Verarbeitungskern aus Python mit Rust-Schnellpfad. Produktiv eingesetzt, um Streaming-Zahlungsverkehrstransaktionen im Mehrmillionen-Maßstab zu anonymisieren. CE läuft auf einem reinen Python-Kern und ist deutlich weniger optimiert.
- Erweitertes Datenquellen-Scanning (EE): EE liest Quelldatenbanken über Keyset-Paginierung mit einem worker-synchronisierten Manifest aus und vermeidet damit die Latenz- und Konsistenzkosten von
OFFSET / LIMITbei Skalierung. CE nutzt Standard-Skip/Offset-Paginierung in der Datenbank. - Audit-Nachweis pro Task (EE): Jeder Task wird mit Task-ID, Eingaben, Status und strukturierten Pro-Task-Logs protokolliert. Bei gesetztem
rngSeedim<setup>liefert ein erneuter Lauf des Modells deterministisch identische Ausgaben — über Maschinen und Releases hinweg. - Reproduzierbare Testdaten in CI/CD: CE —
datamimicdirekt im CI-Runner aufrufen. EE — Generierung per REST-API auslösen; Worker führen die EE-Core-Engine aus und liefern Artefakte zurück. - Editor-Unterstützung, LSP v2 (EE, opt-in): Kontextsensitive Vervollständigung in
script=- undcondition=-Attributen, inklusive sichtbarer Variablen, Skript-Symbolen im Projekt,.ent.csv-Spalten sowie Fragment-Property-Inputs an<include>-Aufrufstellen. Siehe Experimental LSP. - Web-UI und Referenzdokumentation (EE): Projekt-, Schedule- und Task-Management im Browser; vollständige Referenz für Modell, Generatoren und API.
- Generator-Bibliothek (CE+EE): Eingebaute Generatoren für domänen-, demografie- und protokollspezifische Daten. Erweiterbar durch eigenen Python-Code.
- Integrationsoberfläche: CE — Python-API und
datamimic-CLI. EE — REST-API, Helm-Chart, Datenbank-Konnektoren für PostgreSQL, Oracle, MongoDB, Streaming via Apache Kafka und Template-Exporter für Industrie-Nachrichtenformate (SWIFT, PACS, HL7, EDIFACT).
Voraussetzungen¶
- CE: Python 3.11
- EE: Moderner Webbrowser — die DATAMIMIC UI ist als SaaS verfügbar oder On-Premise installierbar (Docker, Podman, Kubernetes, OpenShift, Helm)
Beispiel UI Testdatengenerierung (EE)¶
Login und Demo-Store¶
- Klicke auf Klonen in der Kachel des 'Basic Script', um dein erstes Projekt zu erstellen.
Generieren¶
- Starte deine erste DATAMIMIC-Aufgabe, indem du auf den Button 'GENERIEREN' klickst.
- Das Statusfenster informiert dich über den Fortschritt der Verarbeitung.
Prüfen¶
- Klicke auf 'Previews', um eine Vorschau der erstellten Daten zu sehen.
- Oder klicke auf 'Logs', um detaillierte Einblicke in die Aufgabe, die Verarbeitungsgeschwindigkeit, Durchsätze und mehr zu erhalten.
- Oder navigiere zu 'Tasks', um einen Überblick über alle Aufgabenausführungen und deren Status zu erhalten.
Zwischen den Hauptansichten (Editor, Schedules, Tasks, Settings) wird in der Projektleiste gewechselt.
Artefakte laden¶
- Navigiere zu 'Tasks'.
- Klicke auf das 'Artefakt'-Symbol und wähle die generierte(n) Datei(en) zum Herunterladen aus.
Beispiel eines DATAMIMIC-Modells¶
In DATAMIMIC beginnt jedes Projekt mit einem XML-basierten Hauptmodell. Diese Modelle können aus verbundenen Datenbanken, JSON, XML oder anderen Dateitypen automatisch generiert werden. In diesem Beispiel beginnen wir mit einem einfachen Skriptbeispiel.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
-
<setup>: Dieser Knoten umschließt jedes DATAMIMIC-Modell und nimmt fortgeschrittenere Konfigurationen auf. -
<generate>: Definiert den zu generierenden Datensatz mit Namen, Datensatzanzahl und Zielformaten. -
<variable>: Hier wird eine Variable namens "person" definiert und mit der Entität "Person" verknüpft. Die Entität ist so konfiguriert, dass Daten für Personen im Alter zwischen 18 und 90 Jahren mit einer 50-prozentigen Frauenquote erzeugt werden. -
<key>: Schlüsselelemente repräsentieren die Attribute jedes Datensatzes. Beispiele: - "id" wird mit dem "IncrementGenerator" generiert.
- "first_name" stammt aus
given_namedes Person-Objekts. - "last_name" stammt aus
family_namedes Person-Objekts. - "gender" stammt aus
genderdes Person-Objekts. - "birthDate" stammt aus
birthdateund wird mit dem "DateFormat"-Konverter formatiert. - "email" wird mit einem Skript erstellt, das "family_name" und "given_name" kombiniert.
- "ce_user" und "ee_user" werden zufällig auf "True" oder "False" verteilt.
- "datamimic_lover" ist ein konstanter Wert "DEFINITIV".
Dieses minimale Beispiel zeigt, wie ein DATAMIMIC-Modell Datengenerierung definiert. Reale Projekte verteilen die Logik typischerweise auf mehrere Dateien und setzen sie über <include> zusammen — siehe das Tutorial für ein durchgängiges Kompositionsbeispiel. Erneutes Ausführen desselben seed-gesteuerten Modells erzeugt byte-identische CSV-, JSON- und XML-Ausgaben.
Weiterer Support¶
Für neue Kund:innen
Im Demo-Termin zeigen unsere Architekt:innen, wie DATAMIMIC zu deinem Testdaten- und Compliance-Workflow passt. Bring ein echtes Schema oder einen konkreten Anwendungsfall mit.
Für bestehende Kund:innen
Für fortgeschrittene Funktionen oder Produktionsfragen: Support-Ticket öffnen oder eine dedizierte Session mit dem Team buchen.
Mehr
Auf www.datamimic.io gibt es Services, Use Cases und Details zur Enterprise Edition.