Im Vergleich zu JSON, das Daten in einem lesbaren Format speichert, verwendet AVRO eine binäre Kodierung, die die Bandbreite und den benötigten Speicherplatz reduziert.

ibaPDA verwendet das folgende Schema zur Serialisierung der Signaldaten:

{

   "namespace": "de.iba",

   "type": "record",

   "name": "PdaRecord",

   "fields": [

     {"name": "Signal", "type": "string"},

     {"name": "ID", "type": ["null", "string"]},

     {"name": "Name", "type": ["null", "string"]},

     {"name": "Unit", "type": ["null", "string"]},

     {"name": "Comment1", "type": ["null", "string"]},

     {"name": "Comment2", "type": ["null", "string"]},

     {"name": "Timestamp", "type": [

       "null",

       {"type": "long", "logicalType": "timestamp-micros"}

     ]},

     {"name": "Identifier", "type": ["null", "string"]},

     {"name": "ValueType", "type": {

       "type": "enum",

       "name": "ValueTypeEnum",

       "symbols": ["BOOLEAN", "BYTES", "DOUBLE", "FLOAT", "INT", "LONG", "STRING"]

      }},

     {"name": "BooleanValue", "type": ["null", "boolean"]},

     {"name": "BytesValue", "type": ["null", "bytes"]},

     {"name": "DoubleValue", "type": ["null", "double"]},

     {"name": "FloatValue", "type": ["null", "float"]},

     {"name": "IntValue", "type": ["null", "int"]},

     {"name": "LongValue", "type": ["null", "long"]},

     {"name": "StringValue", "type": ["null", "string"]}

   ]

}

ibaPDA unterstützt auch eine Verbindung zu einer Confluent Schema Registry. Dies ist jedoch nicht unbedingt erforderlich, sodass dieses Feld leer gelassen werden kann. Wenn eine Schema Registry konfiguriert wird, registriert ibaPDA das für die Kodierung verwendete Schema in der Schema Registry. Die zurückgegebene ID wird dann wie folgt an jeden Datensatz angehängt:

Byte Offset

Beschreibung

0

0x00 (Confluent AVRO Marker)

1

Schema ID (Big Endian)

5

Signaldaten

Die Adresse und der Port der Schema Registry können im Feld Schema Registry-Adresse eingegeben werden.

Mit dem Button <Verbindung testen> können Sie die Verbindung zur Schema Registry testen.

Wenn keine Schema Registry verwendet wird, wird jeder Datensatz wie folgt kodiert:

Byte Offset

Beschreibung

0

0xC3 0x01 (Single-object encoding marker)

2

CRC-64-AVRO fingerprint of encoding schema

10

Signaldaten