Реестры схем для Kafka ClickPipe
ClickPipes поддерживает интеграцию с реестром схем для декодирования топиков в форматах Avro и Protobuf.
Поддерживаемые реестры для Kafka ClickPipes
Поддерживаются реестры схем, API-совместимые с Confluent Schema Registry. К ним относятся:
- Confluent Schema Registry
- Redpanda Schema Registry
ClickPipes пока не поддерживает AWS Glue Schema Registry или Azure Schema Registry. Если вам требуется поддержка этих реестров схем, свяжитесь с нашей командой.
Конфигурация
Чтобы интегрироваться с реестром схем при настройке ClickPipes, необходимо использовать один из следующих подходов:
- Указать полный путь к subject схемы (например,
https://registry.example.com/subjects/events)- При необходимости можно указать конкретную версию, добавив
/versions/[version]к URL (в противном случае ClickPipes получит последнюю версию).
- При необходимости можно указать конкретную версию, добавив
- Указать полный путь к идентификатору схемы (например,
https://registry.example.com/schemas/ids/1000) - Указать корневой URL реестра схем (например,
https://registry.example.com)
Как это работает
ClickPipes динамически получает и применяет схему из настроенного реестра схем.
- Если в сообщение встроен идентификатор схемы, ClickPipes использует его для получения схемы.
- Если в сообщении нет встроенного идентификатора схемы, для получения схемы будет использоваться идентификатор схемы или имя subject, указанные в конфигурации ClickPipe.
- Если сообщение записано без встроенного идентификатора схемы и в конфигурации ClickPipe не указаны ни идентификатор схемы, ни имя subject, схема не будет получена, а сообщение будет пропущено; при этом в таблице ошибок ClickPipes будет зарегистрирована ошибка
SOURCE_SCHEMA_ERROR. - Если сообщение не соответствует схеме, оно будет пропущено; при этом в таблице ошибок ClickPipes будет зарегистрирована ошибка
DATA_PARSING_ERROR. - Только для схем Protobuf: ClickPipes загрузит все импортированные схемы, определённые как зависимости. Схемы Avro с внешними ссылками пока не поддерживаются.
Сопоставление схем
К сопоставлению между полученной схемой и целевой таблицей ClickHouse применяются следующие правила:
- Если схема содержит поле, которое не включено в сопоставление с целевой таблицей ClickHouse, это поле игнорируется.
- Если в схеме отсутствует поле, определённое в сопоставлении целевой таблицы ClickHouse, соответствующий столбец ClickHouse будет заполнен «нулевым» значением, таким как 0 или пустая строка. Обратите внимание, что выражения
DEFAULTне поддерживаются. - Если поле схемы и столбец ClickHouse несовместимы, попытки вставки такой строки/сообщения будут завершаться с ошибкой, и эта ошибка будет зафиксирована в таблице ошибок ClickPipes. Обратите внимание, что поддерживается несколько неявных преобразований (например, между числовыми типами), но не все (например, поле записи Avro не может быть вставлено в столбец ClickHouse типа
Int32).