Интерфейс Apache Arrow Flight
ClickHouse поддерживает интеграцию с протоколом Apache Arrow Flight — высокопроизводительным RPC‑фреймворком, разработанным для эффективной передачи столбцовых данных в формате Arrow IPC по gRPC.
Этот интерфейс позволяет клиентам Flight SQL выполнять запросы к ClickHouse и получать результаты в формате Arrow, обеспечивая высокую пропускную способность и низкие задержки для аналитических нагрузок.
Возможности
- Выполнение SQL-запросов через протокол Arrow Flight SQL
- Потоковая передача результатов запросов в формате Apache Arrow
- Интеграция с BI-инструментами и пользовательскими приложениями для работы с данными, поддерживающими Arrow Flight
- Легковесное и высокопроизводительное взаимодействие по gRPC
Ограничения
Интерфейс Arrow Flight в настоящее время является экспериментальным и находится в активной разработке. Известные ограничения включают:
- Ограниченную поддержку сложных возможностей SQL, специфичных для ClickHouse
- Не все операции Arrow Flight SQL по работе с метаданными ещё реализованы
- Отсутствие встроенной аутентификации или настройки TLS в эталонной реализации
Если вы столкнётесь с проблемами совместимости или хотите внести свой вклад, пожалуйста, создайте issue в репозитории ClickHouse.
Запуск сервера Arrow Flight
Чтобы включить сервер Arrow Flight в самоуправляемом экземпляре ClickHouse, добавьте в конфигурационный файл сервера следующую конфигурацию:
Перезапустите сервер ClickHouse. После успешного запуска в журнале должно появиться сообщение, похожее на следующее:
Подключение к ClickHouse через Arrow Flight SQL
Вы можете использовать любой клиент, который поддерживает Arrow Flight SQL. Например, с помощью pyarrow:
Совместимость
Интерфейс Arrow Flight совместим с инструментами, поддерживающими Arrow Flight SQL, включая приложения, разработанные с использованием:
- Python (
pyarrow) - Java (
arrow-flight) - C++ и других языков, совместимых с gRPC
Если для вашего инструмента доступен нативный коннектор ClickHouse (например, JDBC, ODBC), предпочтительнее использовать его, если только Arrow Flight не требуется именно для повышения производительности или обеспечения совместимости форматов.
Отмена запросов
Длительные запросы можно отменить, закрыв соединение gRPC со стороны клиента. Поддержка более совершенных механизмов отмены запланирована.
Дополнительные сведения см. по следующим ссылкам: