Описание
Avro поддерживает чтение и запись файлов данных Avro. Этот формат предполагает самоописываемые сообщения со встроенной схемой. Если вы используете Avro с реестром схем, обратитесь к формату AvroConfluent.
Сопоставление типов данных
INSERT и SELECT.
bytesis default, controlled by settingoutput_format_avro_string_column_pattern
null в качестве значения поля, поэтому, например, Avro union(T1, T2, null) будет преобразован в Variant(T1, T2).
В результате при генерации Avro из ClickHouse нам всегда нужно включать тип null в набор типов Avro union, поскольку во время вывода схемы мы не знаем, является ли какое-либо из значений фактически null.
*** Логические типы Avro
Неподдерживаемые логические типы данных Avro:
time-millistime-microsduration
Настройки формата
Примеры
Чтение данных в формате Avro
record.
Чтобы определить соответствие между столбцами таблицы и полями схемы Avro, ClickHouse сравнивает их имена.
Сравнение чувствительно к регистру, а неиспользуемые поля пропускаются.
Типы данных столбцов таблицы ClickHouse могут отличаться от соответствующих полей вставляемых данных Avro. При вставке данных ClickHouse интерпретирует типы данных в соответствии с таблицей выше, а затем приводит данные к соответствующему типу столбца.
При импорте данных, если поле не найдено в схеме и включена настройка input_format_avro_allow_missing_fields, вместо ошибки будет использовано значение по умолчанию.
Запись данных в формате Avro
- Начинаться с
[A-Za-z_] - Содержать далее только
[A-Za-z0-9_]
output_format_avro_codec и output_format_avro_sync_interval соответственно.
Определение схемы Avro
DESCRIBE можно быстро просмотреть автоматически выведенную схему файла Avro, как в следующем примере.
В этом примере используется URL общедоступного файла Avro из публичного бакета S3 ClickHouse: