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

Реестры схем

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. Указать полный путь к subject схемы (например, 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 не указан ни идентификатор схемы, ни имя субъекта, то схема не будет получена, а сообщение будет пропущено; при этом в таблице ошибок ClickPipes будет зафиксирована ошибка SOURCE_SCHEMA_ERROR.
  • Если сообщение не соответствует схеме, то оно будет пропущено, а в таблице ошибок ClickPipes будет зафиксирована ошибка DATA_PARSING_ERROR.

Сопоставление схем

К сопоставлению между полученной схемой Avro и целевой таблицей ClickHouse применяются следующие правила:

  • Если схема Avro содержит поле, которое не включено в сопоставление с целевой таблицей ClickHouse, это поле игнорируется.
  • Если в схеме Avro отсутствует поле, определённое в сопоставлении целевой таблицы ClickHouse, соответствующий столбец ClickHouse будет заполнен «нулевым» значением, таким как 0 или пустая строка. Обратите внимание, что выражения DEFAULT в настоящий момент не вычисляются для вставок ClickPipes (это временное ограничение, действующее до обновления обработки значений по умолчанию сервером ClickHouse).
  • Если поле схемы Avro и столбец ClickHouse несовместимы, попытки вставки такой строки/сообщения будут завершаться с ошибкой, и эта ошибка будет зафиксирована в таблице ошибок ClickPipes. Обратите внимание, что поддерживается несколько неявных преобразований (например, между числовыми типами), но не все (например, поле записи Avro не может быть вставлено в столбец ClickHouse типа Int32).