Работа с данными 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.