Работа с данными 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 вводит поддержку многих форматов, как текстовых, так и бинарных, чтобы охватывать различные сценарии и платформы. Изучите больше форматов и способы работы с ними в следующих статьях:
- Форматы CSV и TSV
- Форматы JSON
- Регулярные выражения и шаблоны
- Нативные и бинарные форматы
- SQL форматы
Также проверьте clickhouse-local - портативный полнофункциональный инструмент для работы с локальными/удаленными файлами без необходимости в сервере ClickHouse.