Zum Inhalt

Features

DATAMIMIC Features

DATAMIMIC kombiniert modellgetriebene Generierung mit deterministischer Reproduzierbarkeit (gleicher Seed → gleicher Content-Hash) in beiden Editionen. Die Enterprise Edition ergänzt auto-regressives ML, einen Rust-Schnellpfad, Kafka-Integration, erweitertes Datenquellen-Scanning, strukturiertes Logging und ausgebaute Fehlerbehandlung. Die folgenden Funktionen beschreiben, was jede Edition kann und wo sie sich unterscheiden.

Funktionen sind nach Edition gekennzeichnet:

  • (CE) — Community Edition, die Python-Bibliothek und datamimic-CLI. Enthält einige Funktionen, die in der EE nicht (oder weniger ausgeprägt) vorhanden sind (MCP-Support, umfangreichere demografische Profile).
  • (EE) — Enterprise Edition, die On-Prem-Plattform (Web-UI, REST-API, Scheduler, Worker, die die EE-Core-Engine kapseln, optional LSP). Ergänzt Rust-Schnellpfad, Kafka, erweitertes Datenquellen-Scanning und strukturiertes Logging.
  • (CE+EE) — DSL-Fähigkeit, die beide Editionen mitbringen.

Modellgetriebener Ansatz (CE+EE)

Der modellgetriebene Ansatz zentralisiert die Testdaten-Definition:

  1. Eine Definitionsquelle: Datenmodelle sind Blaupausen für die Generierung. Änderungen an Schema, Generator oder Constraint werden einmal auf Modellebene vorgenommen und greifen für jedes Ausgabeformat.
  2. Abstraktion über Datenformate: Autor:innen arbeiten mit Entitäten und Schlüsseln auf hoher Ebene, nicht mit formatspezifischen Strukturen. Dasselbe Modell liefert SQL-, JSON-, XML-, CSV- und EDIFACT-Ausgabe.
  3. Anpassbar: Änderungen an Formaten, neue Datenquellen oder veränderte Beziehungen werden im Modell vorgenommen. Nachgelagerte Pipelines bleiben unberührt.
  4. Konsistent und überprüfbar: Die Generierung folgt deklarierten Regeln und Constraints. Erneutes Ausführen eines seed-gesteuerten Modells erzeugt dieselbe Ausgabe — über Maschinen und Releases hinweg.

Komponierbare Modelle (CE+EE)

DATAMIMIC-Modelle sind auf Komposition ausgelegt, nicht auf monolithische Dateien:

  • <include> — Logik in mehrere Dateien (Konfigurations-.properties, Submodell-XML-Fragmente) aufteilen und im Haupt-Deskriptor zusammensetzen.
  • <param>-Deklarationen — wiederverwendbare Fragmente deklarieren ihre erwarteten Eingaben auf Wurzelebene und machen gemeinsam genutzte Modellkomponenten explizit.
  • <property>-Overlays unter <include> — aufrufende Stellen übergeben Werte pro Instanz (konstant oder per Skript), sodass dasselbe Fragment mehrere Geschäftsvarianten ohne Copy-Paste bedient.

Das ist das übliche Muster in Enterprise-Projekten. Siehe Release Notes zu 3.3.0 für die Include-Property- und Fragment-Param-Features.

Multi-Format-Output (CE+EE)

Ein Modell schreibt im selben Lauf nach SQL-Datenbanken, JSON, XML, CSV und EDIFACT — über mehrere <generate target="...">-Deklarationen. Kafka als Quelle und Ziel ist EE-exklusiv.

JSON- und XML-Verarbeitung (CE+EE)

Tief verschachtelte JSON- und XML-Strukturen werden erzeugt und transformiert, mit voller Kontrolle über Hierarchie, Typen und Arrays.

  1. Verschachtelte Strukturen: JSON- und XML-Objekte mit verschachtelten Strukturen definieren — Objekte oder Elemente, die andere Objekte/Elemente, Arrays und gemischte Datentypen in einer Struktur enthalten.
  2. Hierarchische Datenmodellierung: Komplexe Beziehungen zwischen Datenentitäten abbilden — nützlich für NoSQL-Datenbanken und XML-Schemata.
  3. Tiefe Verschachtelung: Tief verschachtelte JSON-Objekte und XML-Elemente, um real verflochtene Datenszenarien abzubilden.
  4. Anpassbarkeit: Jeder Aspekt der Struktur ist konfigurierbar — vom Layout bis zur Art, wie einzelne Werte erzeugt und formatiert werden.

Datenanonymisierung und -pseudonymisierung (CE+EE)

Feldbasiertes Masking, deklariert im Modell. Gleiche Seed- und Konfigurationsangaben reproduzieren dieselben maskierten Ausgaben über Läufe und Umgebungen hinweg.

MCP-Support (CE)

Die Community Edition liefert eine Integration mit dem Model Context Protocol (MCP) für LLM-gestützte Workflows auf der DSL. Die EE enthält diese Oberfläche aktuell nicht.

Demografische Profile (CE)

CE liefert umfangreichere demografische Profile ab Werk mit. Der Profil-Katalog ist auf DSL-Ebene geteilt; CE enthält heute schlicht mehr vorgefertigte Profile als EE.

Automatische PII-Erkennung (EE)

Beim Generieren eines DATAMIMIC-Modells aus Datenbank-Metadaten erkennt die Plattform Felder, die wahrscheinlich personenbezogene Daten (PII) enthalten, automatisch. Diese Felder werden im erzeugten Modell mit #SENSITIVE markiert und sind damit standardmäßig maskiert. Autor:innen prüfen und justieren, bevor synthetische Daten generiert oder exportiert werden.

Datenschutz-Ausrichtung (CE+EE)

Ausgerichtet auf DSGVO Art. 25 (Privacy by Design). Unterstützt BCBS-239-Lineage- und DORA-Nachvollziehbarkeitsanforderungen über Pro-Lauf-Task-IDs, Modell-Versionen und Content-Hashes.

ML-basierte Generierung, auto-regressiv (EE)

Auto-regressive ML-Generatoren auf Basis von TabularARGN (Apache 2.0). Modelle sind versioniert und qualitätsbewertet. ML-Ausgaben sind statistisch konsistent, aber nicht byte-identisch — byte-identische Ausgaben entstehen nur bei seed-gesteuerten regelbasierten Generatoren. ML-Generierung ist eine Enterprise-Edition-Fähigkeit; die Community Edition deckt regelbasierte Generierung ab.

Performance (EE)

Die Enterprise Edition läuft auf einem Verarbeitungskern aus Python mit Rust-Schnellpfad und wird produktiv eingesetzt, um Streaming-Zahlungsverkehrstransaktionen im Mehrmillionen-Maßstab zu anonymisieren. Die Community Edition läuft auf einem reinen Python-Kern und ist deutlich weniger optimiert — geeignet für einzelne Projekte, Skripte und CI-Nutzung, aber nicht auf dieselben Durchsatzziele ausgelegt.

Erweitertes Datenquellen-Scanning (EE)

Beim Lesen aus Quelldatenbanken nutzt EE Keyset-Paginierung mit einem worker-synchronisierten Manifest statt OFFSET / LIMIT-Abfragen. Das hält Multi-Worker-Scans konsistent, vermeidet Latenz- und Konsistenzkosten von Skip-and-Offset bei Skalierung und funktioniert unter Last. CE nutzt Standard-Skip/Offset-Paginierung in der Datenbank — ausreichend für kleine Datensätze, aber nicht auf gleiche Weise skalierbar.

Strukturiertes Logging und Fehlerbehandlung (EE)

Strukturierte Pro-Task-Logs, ein expliziter Fehlerkatalog und ausgebaute Recovery-Semantiken. CE bringt Python-Standard-Logging mit.

Audit-Nachweis pro Task (EE)

Jeder Worker-Task wird mit Task-ID, Eingaben, Status und strukturierten Pro-Task-Logs protokolliert. Bei gesetztem rngSeed im <setup> liefert ein erneuter Lauf des Modells deterministisch identische Ausgaben — über Maschinen und Releases hinweg. Das ist die Nachweisebene für Compliance- und Reproduzierbarkeits-Reviews.

Editor-Unterstützung — LSP v2 (EE, opt-in)

Kontextsensitive Vervollständigung in script=- und condition=-Attributen, inklusive sichtbarer Variablen, Skript-Symbolen im Projekt, .ent.csv-Spalten, mehrstufige Entity-Member sowie Fragment-Property-Inputs an <include>-Aufrufstellen. Pro Projekt unter Project Settings aktivierbar; siehe Experimental LSP.

Web-UI (EE)

Projekt-, Schedule- und Task-Management im Browser, inklusive Database View, Demo Store, Vorschauen sowie Pro-Task-Logs und -Artefakte.

Integrationsoberfläche

  • (CE) Python-API und datamimic-CLI für lokale Generierung und Scripting.
  • (EE) REST-API für CI/CD-Trigger (Worker führen die EE-Core-Engine aus und liefern Artefakte zurück); Helm-Chart für die Bereitstellung; Datenbank-Konnektoren für PostgreSQL, Oracle, MongoDB; Streaming via Apache Kafka; Template-Exporter für Industrie-Nachrichtenformate (SWIFT, PACS, HL7, EDIFACT).

Skaliert vom Einzelschema zur Enterprise-Plattform

  • (CE) Geeignet für einzelne Projekte, Skripte und CI-Nutzung der Python-Bibliothek.
  • (EE) Plattformweite Testdaten-Verwaltung über Teams hinweg; einsetzbar auf Docker, Podman, Kubernetes, OpenShift oder via Helm-Chart.

Generator-Bibliothek (CE+EE)

Eingebaute Generatoren für domänen-, demografie- und protokollspezifische Daten. Erweiterbar durch eigenen Python-Code.