Simulation@1
Der Node Simulation@1 wird verwendet, um mithilfe verschiedener Simulatoren realistische Testdaten zu erzeugen. Er kann alles von Zufallszahlen und Adressen bis hin zu komplexen Energiemessdaten erzeugen.
Adapter-Voraussetzungen
- Allgemeine Verfügbarkeit: Alle Adapter unterstützen diesen Node-Typ.
Node-Konfiguration
transformations:
- type: Simulation@1
locale: "en" # Optional: Locale for data generation (default: "en")
simulations:
- targetPath: $.customer.firstName # Path where the generated value should be stored
simulatorKey: Person.FirstName # The simulator to use (see complete list below)
configuration: "{}" # Optional: JSON configuration for the simulator
- targetPath: $.customer.age
simulatorKey: Math.IntRandom
configuration: "{\"min\": 18, \"max\": 80}"
- targetPath: $.energy.meteringPoint
simulatorKey: Energy.MeteringPointNumber
configuration: "{\"length\": 33, \"countryCode\": \"AT\"}"
Konfigurationseigenschaften
| Eigenschaft | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
locale | string | Nein | Locale für die Datenerzeugung (Standard: "en"). Beeinflusst sprachspezifische Daten wie Namen, Adressen |
simulations | array | Ja | Liste von Simulationskonfigurationen |
simulations[].targetPath | string | Ja | JSONPath, unter dem der erzeugte Wert gespeichert werden soll |
simulations[].simulatorKey | string | Ja | Bezeichner des zu verwendenden Simulators |
simulations[].configuration | string | Nein | JSON-String mit simulatorspezifischen Optionen (Standard: "") |
Verfügbare Simulatoren
Diese Implementierung basiert auf Bogus mit zusätzlichen benutzerdefinierten Generatoren.
Adress-Simulatoren
# Basic address components
- simulatorKey: Address.Country
- simulatorKey: Address.CountryCode
- simulatorKey: Address.ZipCode
- simulatorKey: Address.City
- simulatorKey: Address.StreetAddress
- simulatorKey: Address.StreetName
- simulatorKey: Address.BuildingNumber
Personen-Simulatoren
# Basic person data
- simulatorKey: Person.FirstName
- simulatorKey: Person.LastName
- simulatorKey: Person.FullName
- simulatorKey: Person.Email
- simulatorKey: Person.UserName
- simulatorKey: Person.Avatar
- simulatorKey: Person.Phone
- simulatorKey: Person.DateOfBirth
- simulatorKey: Person.Gender
# Company information (consistent per person instance)
- simulatorKey: Person.Company.Name
- simulatorKey: Person.Company.CatchPhrase
- simulatorKey: Person.Company.Bs
# Address information (consistent per person instance)
- simulatorKey: Person.Address.Street
- simulatorKey: Person.Address.State
- simulatorKey: Person.Address.Suite
- simulatorKey: Person.Address.City
- simulatorKey: Person.Address.ZipCode
- simulatorKey: Person.Address.Geo.Lat
- simulatorKey: Person.Address.Geo.Lng
Energie-Simulatoren
# Metering point numbers for energy systems
- simulatorKey: Energy.MeteringPointNumber
configuration: |
{
"length": 33, # Total length of the number (default: 31)
"countryCode": "AT" # Country code prefix (default: "AT")
}
# Random timestamps for energy data
- simulatorKey: Energy.DateTime
configuration: |
{
"startDate": "2024-01-01T00:00:00.000Z", # Start date (ISO format)
"endDate": "2024-12-31T23:59:59.999Z" # End date (ISO format)
}
Mathematik-Simulatoren
# Sine wave generator
- simulatorKey: Math.Sinus
configuration: |
{
"amplitude": 1.0, # Wave amplitude (default: 1)
"frequency": 1.0 # Wave frequency (default: 1)
}
# Triangle wave generator
- simulatorKey: Math.Triangle
configuration: |
{
"amplitude": 1.0, # Wave amplitude (default: 1)
"frequency": 1.0 # Wave frequency (default: 1)
}
# Constant value generator
- simulatorKey: Math.Constant
configuration: |
{
"amplitude": 1 # Constant value to return (default: 1)
}
# Random integer generator
- simulatorKey: Math.IntRandom
configuration: |
{
"min": 1, # Minimum value (default: 1)
"max": 100 # Maximum value (default: 100)
}
# Random double generator
- simulatorKey: Math.DoubleRandom
configuration: |
{
"min": 1.0, # Minimum value (default: 1.0)
"max": 100.0 # Maximum value (default: 100.0)
}
Text-Simulatoren
# Lorem ipsum word generator
- simulatorKey: Text.Lorem.Word
configuration: |
{
"count": 3 # Number of words to generate (default: 1)
}
Hinweise zum Verhalten
- Konsistenz von Personendaten: Personenbezogene Simulatoren wahren die Konsistenz innerhalb einer einzelnen Node-Ausführung. Wenn Sie
Person.FirstNameundPerson.LastNameim selben Simulations-Node erzeugen, gehören sie zur selben virtuellen Person. - Wellengeneratoren: Die Generatoren Math.Sinus und Math.Triangle verwenden die aktuelle Systemzeit, um zeitbasierte Wellenmuster zu erzeugen.
- Locale-Unterstützung: Der Locale-Parameter beeinflusst die sprachspezifische Datenerzeugung. Die unterstützten Locales hängen von der Bogus-Bibliothek ab.
- Energie-Nummern: Der Generator Energy.MeteringPointNumber erzeugt realistische Zählpunktbezeichner, wie sie in europäischen Energiesystemen üblich sind.
Beispiel-Anwendungsfälle
Vollständiges Kundenprofil
- type: Simulation@1
locale: "de"
simulations:
- targetPath: $.customer.firstName
simulatorKey: Person.FirstName
- targetPath: $.customer.lastName
simulatorKey: Person.LastName
- targetPath: $.customer.email
simulatorKey: Person.Email
- targetPath: $.customer.age
simulatorKey: Math.IntRandom
configuration: "{\"min\": 18, \"max\": 80}"
- targetPath: $.customer.address.street
simulatorKey: Person.Address.Street
- targetPath: $.customer.address.city
simulatorKey: Person.Address.City
- targetPath: $.customer.company
simulatorKey: Person.Company.Name
Energiezählerdaten
- type: Simulation@1
simulations:
- targetPath: $.meter.meteringPointId
simulatorKey: Energy.MeteringPointNumber
configuration: "{\"length\": 33, \"countryCode\": \"AT\"}"
- targetPath: $.meter.timestamp
simulatorKey: Energy.DateTime
configuration: "{\"startDate\": \"2024-01-01T00:00:00.000Z\", \"endDate\": \"2024-12-31T23:59:59.999Z\"}"
- targetPath: $.meter.consumption
simulatorKey: Math.DoubleRandom
configuration: "{\"min\": 0.1, \"max\": 15.0}"
Zeitreihendaten
- type: Simulation@1
simulations:
- targetPath: $.signal.sineWave
simulatorKey: Math.Sinus
configuration: "{\"amplitude\": 10, \"frequency\": 0.5}"
- targetPath: $.signal.triangleWave
simulatorKey: Math.Triangle
configuration: "{\"amplitude\": 5, \"frequency\": 1.0}"
- targetPath: $.signal.noise
simulatorKey: Math.DoubleRandom
configuration: "{\"min\": -0.5, \"max\": 0.5}"