What's New in Schema Registry
Learn about the new features of Schema Registry in Cloudera Runtime 7.2.17.
KafkaAvroSerializer and KafkaAvroDeserializer improvements
- KafkaAvroSerializer and KafkaAvroDeserializer can now handle null values without Avro
- The
KafkaAvroSerializer
andKafkaAvroDeserializer
now support a configuration property callednull.passthrough.enabled
, which is false by default. If enabled, null data is handled as null, and no schema is sent to Schema Registry. This behavior enables client applications to write tombstone messages into compact topics. TheKafkaAvroDeserializer
also handles null values by returning null without any regards to the schema.
- Support deserialization when the topic and schema names don't match
- From now on, the
KafkaAvroDeserializer
uses the schema version's ID in the Avro byte stream to access the actual schema and disregards schema names.
- Logical types conversion for the KafkaAvroSerliazier and KafkaAvroDesrializer
- The
KafkaAvroSerializer
andKafkaAvroDeserializer
can now properly handle and convert Avro logical types at a record level. This means that if you have a record that has a field with a built-in Avro logical type (for example aBigDecimal
field with BYTES type and decimal logical type), you can now properly serialize the records. After deserialization, aGenericRecord
is returned, including the typedBigDecimal
field, instead of aByteBuffer
. Logical type conversion can be enabled using thelogical.type.conversion.enabled
property. This property is set to false by default for backward compatibility.
Principal mapping rules can be defined without quotes
The SSL Client Authentication Mapping Rules
(schema.registry.ssl.principal.mapping.rules
) property now accepts rules that
are defined without quotes. As a result, when adding multiple rules, you no longer need to
enclose each rule in quotes.
Remove modules section from registry.yaml
In previous versions, the registry.yaml
configuration file contained a
modules section. This section was used to list pluggable modules that extended Schema Registry’s
functionality. However, modules were never fully supported and have been removed in a previous
release. The modules section in registry.yaml
was kept for backwards
compatibility. Starting with this version, the modules section is removed by default from
registry.yaml
.