Zum Inhalt

Erstes DATAMIMIC-Modell

Jeder DATAMIMIC-XML-Descriptor besitzt ein <setup>-Wurzelelement. Das kleinste sinnvolle Modell erzeugt Datensätze, definiert deren Schlüssel und sendet sie an ein Ziel.

minimal.xml
1
2
3
4
5
<setup>
    <generate name="output" count="10" target="CSV">
        <key name="counter" generator="IncrementGenerator"/>
    </generate>
</setup>

Es erzeugt zehn Zeilen in output.csv:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
counter
1
2
3
4
5
6
7
8
9
10

Ein Modell in wiederverwendbare Stufen teilen

Ein Projekt kann Eigenschaften laden, Quelldaten im Speicher vorbereiten und die finalen Datensätze aus getrennten Descriptoren erzeugen.

conf/base.properties
1
customer_count=10
data/car.ent.csv
1
2
3
4
brand
Audi
BMW
Volvo
datamimic.xml
1
2
3
4
5
<setup>
    <include uri="conf/base.properties"/>
    <include uri="1_prepare.xml"/>
    <include uri="2_generate.xml"/>
</setup>

<include> setzt die Projektdateien in Dokumentreihenfolge zusammen. Die Vorbereitungsstufe schreibt direkt in das In-Memory-Ziel mem.

1_prepare.xml
1
2
3
<setup>
    <generate name="CARS" source="data/car.ent.csv" target="mem"/>
</setup>

<generate> liest die Quelldatensätze und schreibt sie in das deklarierte Ziel, ohne zusätzliche Zeilen zu erfinden. Die gespeicherte Entity CARS kann danach von einer Variable verwendet werden.

2_generate.xml
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<setup>
    <generate name="customer" count="{customer_count}" target="JSON">
        <variable name="car" sourceEntity="CARS" source="mem" cyclic="true"/>
        <variable name="person" entity="Person(min_age=21, max_age=67, female_quota=0.5)"/>
        <variable name="company" entity="Company"/>

        <key name="id" generator="IncrementGenerator"/>
        <key name="car_brand" script="car.brand"/>
        <key name="first_name" script="person.given_name"/>
        <key name="last_name" script="person.family_name"/>
        <key name="birth_date" script="person.birthdate" converter="DateFormat('%d.%m.%Y')"/>
        <key name="email" script="'info@' + company.short_name.replace(' ', '-') + '.example'"/>
    </generate>
</setup>

Diese Stufe zeigt das grundlegende Kompositionsmuster:

  • <generate> besitzt Datensatzanzahl, Quellsemantik und Ziel.
  • <variable> wertet wiederverwendbare Quell-, Entity-, Generator- oder Scriptwerte einmal pro Datensatz aus.
  • <key> schreibt Felder in den erzeugten Datensatz.
  • cyclic="true" erlaubt ausdrücklich die Wiederverwendung einer endlichen Quelle, wenn mehr Ausgabedatensätze angefordert werden.

Beginne mit expliziten Werten und verschiebe danach gemeinsam genutzte Mengen und Verbindungskennungen in Properties. Für verschachtelte Datensätze hilft der Leitfaden zum Variablen-Scope.

Ablauf in der gehosteten Platform

Projekte anlegen, Tasks starten, Previews prüfen und Artefakte herunterladen sind Platform-Themen. Fahre nach einem validen Descriptor mit Erste Schritte in der Platform fort.

Referenz