JsonToAvroBinaryPostExecuter

Konfigurationsdatei

Keine. Konfiguration erfolgt durch einen String im Feld Konfigurationsdatei.

Klassenname

com.ebd.hub.datawizard.postexec.JsonToAvroBinaryPostExecuter

Beschreibung


Dieser Postexecuter kann Daten im AVRO-Format anhand einer Schema-Datei kodieren und wird dazu im Zusammenspiel in erster Linie mit dem Antwortweg Kafka verwendet (siehe dort), kann aber auch mit anderen verwendet werden.

Der Pfad zur Schema-Datei wird im Feld Konfigurationsdatei angegeben.

Beispiel


Schema
{
"name": "complexOuterRecord",
"type": "record",
"fields":
[
{
"name": "primitiveNull",
"type": "null"
},
{
"name": "primitiveBoolean",
"type": "boolean"
},
{
"name": "primitiveInt",
"type": "int"
},
{
"name": "primitiveLong",
"type": "long"
},
{
"name": "primitiveFloat",
"type": "float"
},
{
"name": "primitiveDouble",
"type": "double"
},
{
"name": "primitiveBytes",
"type": "bytes"
},
{
"name": "primitiveString",
"type": "string"
},
{
"name": "complexNestedRecord",
"type":
[
"null",
{
"name": "complexInnerRecord",
"type": "record",
"fields":
[
{
"name": "innerRecordPrimitiveInt",
"type":
[
"null",
"int"
]
},
{
"name": "innerRecordPrimitiveString",
"type":
[
"null",
"string"
]
}
]
}
]
},
{
"name": "complexEnumValue",
"type":
{
"name": "complexEnumType",
"type": "enum",
"symbols":
[
"BLATTL",
"EICHEL",
"SCHELL",
"HERZ"
]
}
},
{
"name": "complexArrayValue",
"type":
{
"name": "complexArrayType",
"type": "array",
"items": "int",
"default": []
}
},
{
"name": "complexMapValue",
"type":
{
"name": "complexMapType",
"type": "map",
"values": "string",
"default": {}
}
},
{
"name": "complexFixedValue",
"type":
{
"name": "complexFixedType",
"type": "fixed",
"size": 1
}
},
{
"name": "complexUnionValue",
"type":
[
"null",
"string"
]
},
{
"name": "logicalDecimal",
"type":
{
"type": "bytes",
"logicalType": "decimal",
"precision": 3,
"scale": 1
}
},
{
"name": "logicalUUID",
"type":
{
"type": "string",
"logicalType": "uuid"
}
},
{
"name": "logicalDate",
"type":
{
"type": "int",
"logicalType": "date"
}
},
{
"name": "logicalDurationValue",
"type":
{
"name": "logicalDurationType",
"type": "fixed",
"logicalType": "duration",
"size": 12
}
},
{
"name": "logicalTimeMillis",
"type":
{
"type": "int",
"logicalType": "time-millis"
}
},
{
"name": "logicalTimeMicros",
"type":
{
"type": "long",
"logicalType": "time-micros"
}
},
{
"name": "logicalTimestampMillis",
"type":
{
"type": "long",
"logicalType": "timestamp-millis"
}
},
{
"name": "logicalTimestampMicros",
"type":
{
"type": "long",
"logicalType": "timestamp-micros"
}
},
{
"name": "logicalLocalTimestampMillis",
"type":
{
"type": "long",
"logicalType": "local-timestamp-millis"
}
},
{
"name": "logicalLocalTimestampMicros",
"type":
{
"type": "long",
"logicalType": "local-timestamp-micros"
}
}
]
}


Daten
{
"primitiveNull": null,
"primitiveBoolean": true,
"primitiveInt": 2134567890,
"primitiveLong": 9123456789012345678,
"primitiveFloat": 1.39e-45,
"primitiveDouble": 1.79301e308,
"primitiveBytes": "randomTextAsBytes",
"primitiveString": "IchBinNurEinTestMitEinemUmlautÜ",
"complexNestedRecord":
{
"complexInnerRecord":
{
"innerRecordPrimitiveInt":
{
"int": 4
},
"innerRecordPrimitiveString":
{
"string": "innerRecordStringValue"
}
}
},
"complexEnumValue": "BLATTL",
"complexArrayValue":
[
1,
2,
3
],
"complexMapValue":
{
"firstEntry": "first",
"secondEntry": "second"
},
"complexFixedValue": "\u00aa",
"complexUnionValue":
{
"string": "union"
},
"logicalDecimal": "\u00FF",
"logicalUUID": "ad0677ab-bd1c-4383-9d45-e46c56bcc5c9",
"logicalDate": 1643886644,
"logicalDurationValue": "\u0000\u1111\u2222\u3333\u4444\u5555\u6666\u7777\u8888\u9999\uaaaa\ubbbb",
"logicalTimeMillis": 7739955,
"logicalTimeMicros": 11223344,
"logicalTimestampMillis": 998877,
"logicalTimestampMicros": 66554433,
"logicalLocalTimestampMillis": 11223344,
"logicalLocalTimestampMicros": 5566778899
}