Apache Impala

Бесплатно
Открытый исходный код
Linux

Сайт: impala.apache.org

Apache Impala — это высокопроизводительный распределённый SQL-движок с открытым исходным кодом, разработанный для интерактивного выполнения аналитических запросов по большим объёмам данных, хранящимся в распределённых файловых системах и хранилищах объектов. Impala предоставляет реализацию стандартного SQL с поддержкой параллельного выполнения запросов, векторной обработки и оптимизаций, ориентированных на низкую задержку отклика при работе с данными в HDFS, HBase и совместимых облачных хранилищах, таких как S3. Архитектурно система состоит из демонов обработчиков и сервера метаданных, использует каталог метаданных совместимый с Hive и интегрируется с существующими экосистемами Hadoop для управления доступом и форматами данных.

Проект возник в контексте потребности в интерактивной аналитике на больших данных, где традиционные пакетные движки давали слишком большие задержки. Impala сочетает подходы реляционных СУБД и параллельной обработки данных в распределённой среде, поддерживает широкий набор форматов файлов (Parquet, ORC, text и др.), чтение столбцовых форматов и возможности работы с сжатием. Система ориентирована на масштабирование по узлам кластера и эффективное использование сетевых и дисковых ресурсов для обеспечения производительности при одновременной обработке множества пользовательских запросов.

  • Интерактивный SQL: поддержка стандарта SQL для аналитических запросов с возможностями агрегирования, оконных функций и джойнов.
  • Низкая задержка: оптимизации выполнения для минимизации времени отклика по сравнению с пакетными движками.
  • Распределённое выполнение: параллельное планирование и исполнение запросов на множестве узлов.
  • Интеграция с Hadoop-экосистемой: совместимость с метаданными Hive, доступ к данным в HDFS и HBase.
  • Поддержка форматов данных: чтение столбцовых и файловых форматов, включая Parquet и ORC, с учётом сжатия и схем.
  • Масштабируемость: способность работать в кластерах различного размера и распределять нагрузку между узлами.
  • Параллельная обработка ввода-вывода: оптимизированные механизмы чтения данных для эффективного использования дисковых подсистем и сетевого ввода-вывода.
  • Управление безопасностью: поддержка механизмов аутентификации и авторизации, интеграция с системами контроля доступа в Hadoop-стеке.
  • Экосистемная совместимость: возможность использования с инструментами визуализации и BI, которые работают через JDBC/ODBC-драйверы.
  • Открытый исходный код: разработка и поддержка в рамках сообщества с доступностью исходного кода и возможностью модификации.
Подробнее