Skip to main content

Описание

Apache Avro — это строчно-ориентированный формат сериализации, использующий двоичное кодирование для эффективной обработки данных. Формат Avro поддерживает чтение и запись файлов данных Avro. Этот формат предполагает самоописываемые сообщения со встроенной схемой. Если вы используете Avro с реестром схем, обратитесь к формату AvroConfluent.

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

В таблице ниже приведены все типы данных, поддерживаемые форматом Apache Avro, и соответствующие им типы данных ClickHouse в запросах INSERT и SELECT. ** Тип Variant неявно допускает null в качестве значения поля, поэтому, например, Avro union(T1, T2, null) будет преобразован в Variant(T1, T2). В результате при генерации Avro из ClickHouse нам всегда нужно включать тип null в набор типов Avro union, поскольку во время вывода схемы мы не знаем, является ли какое-либо из значений фактически null. *** Логические типы Avro Неподдерживаемые логические типы данных Avro:
  • time-millis
  • time-micros
  • duration

Настройки формата

Примеры

Чтение данных в формате Avro

Чтобы прочитать данные из файла Avro в таблицу ClickHouse:
Корневая схема принимаемого Avro-файла должна иметь тип record. Чтобы определить соответствие между столбцами таблицы и полями схемы Avro, ClickHouse сравнивает их имена. Сравнение чувствительно к регистру, а неиспользуемые поля пропускаются. Типы данных столбцов таблицы ClickHouse могут отличаться от соответствующих полей вставляемых данных Avro. При вставке данных ClickHouse интерпретирует типы данных в соответствии с таблицей выше, а затем приводит данные к соответствующему типу столбца. При импорте данных, если поле не найдено в схеме и включена настройка input_format_avro_allow_missing_fields, вместо ошибки будет использовано значение по умолчанию.

Запись данных в формате Avro

Чтобы записать данные из таблицы ClickHouse в файл Avro:
Имена столбцов должны:
  • Начинаться с [A-Za-z_]
  • Содержать далее только [A-Za-z0-9_]
Сжатие вывода и интервал синхронизации для файлов Avro можно настроить с помощью параметров output_format_avro_codec и output_format_avro_sync_interval соответственно.

Определение схемы Avro

С помощью функции ClickHouse DESCRIBE можно быстро просмотреть автоматически выведенную схему файла Avro, как в следующем примере. В этом примере используется URL общедоступного файла Avro из публичного бакета S3 ClickHouse:
Последнее изменение 23 июля 2026 г.