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