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