Ориентированная на большие данные система Impala компании Cloudera продвигает выполнение SQL-запросов на уровень, где раньше использовался механизм MapReduce.

Компания Cloudera, которая выпускает коммерческую версию широко известной системы Hadoop, подготовила сюрприз для пользователей, который был анонсирован в конце октября 2012 г. на конференции Strata + Hadoop World в г. Нью-Йорке (США). Вместо того, чтобы пытаться уговорить профессионалов в области классических баз данных и бизнес-аналитики (т. е. фактически подавляющую часть разработчиков и администраторов в промышленных компаниях) перейти на Hadoop, она объявила о выходе бета-версии продукта Impala, который переносит Hadoop-подход на уровень классических задач. Система Impala, входящая в состав пакета CDH 4.1 (Cloudera Distribution Including Apache Hadoop), есть автономный механизм выполнения SQL-запросов, который работает на Hadoop-кластерах, и который обеспечивает простой доступ к данным, хранящимся либо в файловой системе HDFS (Hadoop Distributed File System), либо в базе данных HBase на основе Hadoop.

Компания Cloudera, которая продвигает Hadoop-подход, пытается бороться против устоявшегося мнения, что для запросов к большим данным может использоваться только пакетная обработка с применением механизма MapReduce. Благодаря ее разработке и в области больших данных появляются такие понятия как SQL-запросы, бизнес-аналитика и создание отчетов.

Дежавю?

Возможно, система, предложенная компанией Cloudera, вызовет определенный скептицизм у специалистов, поскольку некоторое время назад в рамках проекта Hive уже был разработан механизм исполнения SQL-запросов (совместимый со стандартными средствами бизнес-аналитики) к данным, хранящимся под управлением Hadoop.

О месте системы Impala и о ее технических деталях рассказал Майк Олсон — глава компании Cloudera. “Хотя Impala имеет программный интерфейс (API) к системе Hive, а также к ее ODBC-драйверу, это совершенно отличный от Hive продукт. Суть системы Hive заключается в том, что она просто преобразует/компилирует SQL-запросы в программу на языке Java с использованием MapReduce-функций, которая затем исполняется в пакетном режиме аналогично другим Hadoop-задачам. Таким образом, Hive добавляет дополнительный шаг перед использованием MapReduce, тогда как система Impala полностью заменяет MapReduce”, — подчеркнул Майк Олсон.

Чистый SQL — основа системы Impala

По определению, система Impala есть автономное средство выполнения SQL-запросов в распределенном режиме, которое работает на Hadoop-кластерах и заменяет собой MapReduce-механизм системы Hadoop. Соответственно, система Impala работает с HDFS — распределенной файловой системой, принятой в Hadoop. Это означает, что Impala работает на физически распределенной архитектуре. При этом, при выполнении запросов, по-прежнему, используется свойство локальности данных, поскольку распределение данных по узлам кластера не изменяется.

Совместимость со средствами бизнес-аналитики

Несмотря на инновационный подход, реализованный в системе Impala, она удачно вписывается в экосистему соответствующих программных продуктов. Один из основателей компании Pentaho Рич Дэйли, а также ее исполнительный вице-президент по развитию бизнеса Эдди Уайт отметили, что их компания активно работает с Cloudera по интеграции средств бизнес-аналитики, разработанных в Pentaho, в систему Impala.

Компания Pentaho подготовила демонстрационное приложение, в котором сопоставляется работа ее средств совместно с Impala с решением аналогичной задачи средствами Hive. В этом приложении запускается некоторый SQL-запрос для выполнения средствами Impalа из системы создания отчетов от Pentaho. Исполнение этого запроса сравнивается с исполнением аналогичного запроса, запущенного из командной строки в системе Hive. После получения результатов запроса от системы Impala над ними выполняется ряд задач отчетного вида, а также происходит визуализация данных, что заканчивается построением полного отчета. Исполнение того же запроса в системе Hive — с теми же самыми данными, на том же самом кластере — занимает значительно больше времени.

Доступность бета-версии

В настоящий момент, компания Cloudera обеспечила возможность свободного скачивания со своего сайта копии виртуальной машины (в форматах VMware, Virtual Box и KVM), в которой преинсталлирована система Impala. Также на ее сайте размещена документация на бета-версию системы.

Тема совместного существования SQL- и MapReduce-подходов в мире больших данных неоднократно поднималась на конференции Strata + Hadoop World. И система Impala — это только один из примеров такого сосуществования.