Перейти к основному содержимому
Перейти к основному содержимому

Регистры схем

ClickPipes поддерживает регистры схем для потоков данных Avro.

Поддерживаемые регистры для Kafka ClickPipes

Поддерживаются регистры схем, совместимые с API Confluent Schema Registry. Это включает в себя:

  • Confluent Schema Registry
  • Redpanda Schema Registry

ClickPipes пока не поддерживает AWS Glue Schema Registry или Azure Schema Registry. Если вам требуется поддержка этих регистров схем, свяжитесь с нашей командой.

Конфигурация

ClickPipes с данными Avro требуют наличия регистра схем. Это можно настроить одним из трех способов:

  1. Указав полный путь к субъекту схемы (например, https://registry.example.com/subjects/events)
    • Необязательно, можно указать конкретную версию, добавив /versions/[version] к URL (в противном случае ClickPipes получит последнюю версию).
  2. Указав полный путь к идентификатору схемы (например, https://registry.example.com/schemas/ids/1000)
  3. Указав корневой 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).