Сериализация
Сериализация — процесс преобразования объекта данных в битовую последовательность во время передачи в приемники, которые работают с сырыми
данными. К таким приемникам относятся:
Сериализацию можно настроить во время создания или изменения эндпоинта-приемника.
Сериализация при поставке в Object Storage
При поставке в Object Storage вы можете выбрать Выходной формат: JSON
, CSV
, PARQUET
или Сырые данные
. Для JSON
доступна настройка Преобразовать комплексные значения в строки.
Выходной формат данных зависит не только от выбора настройки Выходной формат, но и от типа и настроек правил конвертации эндпоинта-источника.
Ниже представлены различия выходных данных при отсутствии правил конвертации для эндпоинта-источника.
Примечание
Примеры выходных данных для формата PARQUET
не приводятся, так как это бинарный формат.
Yandex Data Streams
Входные данные — два сообщения:
Text string
{"device_id":"iv9,"speed":"5"}
Выходные данные:
<имя_потока>,<ключ_сегмента>,<порядковый_номер_сообщения>,<дата_и_время_записи_данных>,Text string
<имя_потока>,<ключ_сегмента>,<порядковый_номер_сообщения>,<дата_и_время_записи_данных>,"{""device_id"":""iv9"",""speed"":5}"
{"data":"Text string","partition":<ключ_сегмента>,"seq_no":<порядковый_номер_сообщения>,"topic":"<имя_потока>","write_time":"<дата_и_время_записи_данных>"}
{"data":"{\"device_id\":\"iv9\",\"speed\":5}","partition":<ключ_сегмента>,"seq_no":<порядковый_номер_сообщения>,"topic":"<имя_потока>","write_time":"<дата_и_время_записи_данных>"}
Text string
{"device_id":"iv9,"speed":"5"}
Managed Service for PostgreSQL
Входные данные — таблица:
device_id | speed |
---|---|
iv9 | 5 |
rhi | 10 |
Выходные данные:
{"device_id":"iv9","speed":5}
{"device_id":"rhi","speed":10}
iv9,5,
rhi,10,
Не поддерживается.
Сериализация при поставке в очереди сообщений
При поставке в очередь сообщений вы можете использовать сериализацию двух типов:
Auto
Автоматический выбор настроек сериализации в зависимости от типа источника.
Debezium
Сериализация Debezium
-
dt.add.original.type.info — определяет, добавлять ли информацию об исходных типах данных, чтобы восстановить их тип после переноса.
Исключение — типы данных даты и времени PostgreSQL
with time zone
. Информацию о часовом поясе восстановить невозможно.Значение по умолчанию —
false
. -
dt.mysql.timezone — часовой пояс для типов данных даты и времени MySQL® в формате IANA
.Значение по умолчанию —
UTC
. -
dt.unknown.types.policy — политика поведения при обработке пользовательских типов данных.
Возможные значения:
skip
— не прерывать трансфер и игнорировать пользовательские типы данных.to_string
— не прерывать трансфер и преобразовать пользовательские типы данных в текст.fail
— прерывать трансфер с ошибкой.
Значение по умолчанию —
skip
. -
decimal.handling.mode — режим обработки действительных чисел.
Возможные значения:
precise
— точное преобразование с помощью методаjava.math.BigDecimal
.double
— преобразование в тип данныхdouble
. Может привести к потере точности.string
— преобразование в текст.
Значение по умолчанию —
precise
. -
interval.handling.mode — режим обработки временных интервалов.
Возможные значения:
numeric
— приблизительное преобразование в микросекунды.string
— точное преобразование с использованием строкового шаблонаP<years>Y<months>M<days>DT<hours>H<minutes>M<seconds>S
.
Значение по умолчанию —
numeric
. -
key.converter и value.converter — конвертеры для ключей и значений.
Возможные значения:
org.apache.kafka.connect.json.JsonConverter
— JSON, стандартный для Debezium .io.confluent.connect.json.JsonSchemaConverter
— Confluent Schema Registry .
Значение по умолчанию —
org.apache.kafka.connect.json.JsonConverter
. -
key.converter.schemas.enable и value.converter.schemas.enable — определяют, добавлять ли описание схемы в каждое сообщение для ключей и значений при использовании конвертера
org.apache.kafka.connect.json.JsonConverter
.Значение по умолчанию —
true
. -
key.converter.schema.registry.url и value.converter.schema.registry.url — определяют, добавлять ли описание схемы в каждое сообщение для ключей и значений при использовании конвертера
io.confluent.connect.json.JsonSchemaConverter
.Возможные значения:
- пустая строка (значение по умолчанию) — не добавлять описание схемы;
- строковое значение URL, определяющее путь к сервису реестра схем.
-
key.converter.basic.auth.user.info и value.converter.basic.auth.user.info — имя пользователя и пароль для авторизации в Confluent Schema Registry для ключей и значений при использовании конвертера
io.confluent.connect.json.JsonSchemaConverter
.Формат значения:
<имя_пользователя>:<пароль>
. -
key.converter.ssl.ca и value.converter.ssl.ca — содержимое SSL-сертификата Confluent Schema Registry для ключей и значений при использовании конвертера
io.confluent.connect.json.JsonSchemaConverter
.Если значение настройки не указано, SSL-сертификат не проверяется.
-
unavailable.value.placeholder — значение, которое устанавливается вместо данных, если их тип не поддерживается.
Значение по умолчанию —
__debezium_unavailable_value
.