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

Работа с данными форматов Avro, Arrow и ORC в ClickHouse

Apache выпустила несколько форматов данных, активно используемых в аналитических средах, включая популярные Avro, Arrow и Orc. ClickHouse поддерживает импорт и экспорт данных, используя любой из этих форматов.

Импорт и экспорт в формате Avro

ClickHouse поддерживает чтение и запись файлов данных Apache Avro, которые широко используются в системах Hadoop.

Чтобы импортировать из avro файла, мы должны использовать формат Avro в операторе INSERT:

С помощью функции file() мы также можем исследовать Avro файлы перед фактическим импортом данных:

Чтобы экспортировать в файл Avro:

Типы данных Avro и ClickHouse

Рассматривайте соответствие типов данных при импорте или экспорте файлов Avro. Используйте явное приведение типов для преобразования при загрузке данных из файлов Avro:

Сообщения Avro в Kafka

Когда сообщения Kafka используют формат Avro, ClickHouse может читать такие потоки, используя формат AvroConfluent и движок Kafka:

Работа с форматом Arrow

Еще один колоночный формат - Apache Arrow, также поддерживаемый ClickHouse для импорта и экспорта. Чтобы импортировать данные из Arrow файла, мы используем формат Arrow:

Экспорт в файл Arrow выполняется тем же способом:

Также проверьте соответствие типов данных, чтобы узнать, следует ли что-либо конвертировать вручную.

Потоковые данные Arrow

Формат ArrowStream может быть использован для работы с потоками Arrow (используется для обработки в памяти). ClickHouse может читать и записывать потоковые данные Arrow.

Чтобы продемонстрировать, как ClickHouse может потоково передавать данные Arrow, давайте передадим их на следующий python-скрипт (он читает входной поток в формате потокового передачи Arrow и выводит результат в виде таблицы Pandas):

Теперь мы можем потоково передавать данные из ClickHouse, перенаправив его вывод в скрипт:

ClickHouse также может читать потоковые данные Arrow, используя тот же формат ArrowStream:

Мы использовали arrow-stream в качестве возможного источника потоковых данных Arrow.

Импорт и экспорт данных ORC

Формат Apache ORC - это колоночный формат хранения, обычно используемый для Hadoop. ClickHouse поддерживает как импорт, так и экспорт Orc данных с использованием формата ORC:

Также посмотрите соответствие типов данных, а также дополнительные настройки, чтобы настроить экспорт и импорт.

Дальнейшее чтение

ClickHouse вводит поддержку множества форматов, как текстовых, так и бинарных, чтобы покрыть различные сценарии и платформы. Изучите больше форматов и способов работы с ними в следующих статьях:

Также проверьте clickhouse-local - портативный многофункциональный инструмент для работы с локальными/удаленными файлами без необходимости в сервере Clickhouse.