Что такое Apache Hive?
Apache Hive – это распределенная, отказоустойчивая система хранения данных, которая позволяет проводить аналитику в огромных масштабах. Хранилище данных обеспечивает централизованное хранение информации, которую можно легко анализировать для принятия обоснованных решений на основе данных. Hive позволяет пользователям читать, записывать и управлять петабайтами данных с помощью SQL.
Система Hive создана на основе Apache Hadoop – платформы с открытым исходным кодом, которая используется для эффективного хранения и обработки больших наборов данных. Благодаря этому система Hive тесно интегрирована с Hadoop и предназначена для быстрой работы с петабайтами данных. Уникальность Hive заключается в возможности запрашивать большие наборы данных за счет применения Apache Tez или MapReduce с интерфейсом, похожим на SQL.
Как работает Hive?
Цель создания Hive – дать возможность пользователям, осведомленным в SQL, без знаний о программировании работать с петабайтами данных с помощью похожего на SQL интерфейса HiveQL. Традиционные реляционные базы данных предназначены для отправки интерактивных запросов к небольшим и средним наборам данных и плохо обрабатывают большие наборы данных. Hive же использует пакетную обработку для быстрой работы в очень большой распределенной базе данных. Hive преобразует запросы HiveQL в задания MapReduce или Tez, выполняемые на платформе для планирования распределенных задач Apache Hadoop – Yet Another Resource Negotiator (YARN). Инструмент запрашивает данные, хранящиеся в распределенном хранилище, например в распределенной файловой системе Hadoop (Hadoop Distributed File System, HDFS) или Amazon S3. Hive хранит метаданные своей базы данных и таблиц в хранилище метаданных – это хранилище на основе базы данных или файлов, которое дает возможность легко абстрагировать и находить данные.
Hive включает HCatalog – уровень управления таблицами и хранилищем, на котором данные считываются из метахранилища Hive для беспрепятственной интеграции между Hive, Apache Pig и MapReduce. Благодаря использованию этого метахранилища HCatalog дает возможность Pig и MapReduce использовать те же структуры данных, что и Hive, без необходимости повторного определения метаданных для каждого механизма. Настраиваемые приложения или сторонние интеграции могут использовать WebHCat – RESTful API для HCatalog – для доступа к метаданным Hive и их повторного использования.
В чем заключаются преимущества Hive?
Скорость
Система Hive разработана для быстрой обработки петабайтов данных путем пакетной обработки.
Знакомый интерфейс
Интерфейс Hive похож на знакомый SQL, что обеспечивает его доступность для пользователей, не связанных с программированием.
Масштабируемость
Hive легко распределяется и масштабируется в соответствии с вашими потребностями.
В чем разница между Apache Hive и Apache HBase?
Apache HBase – это распределенная база данных NoSQL, обеспечивающая произвольный, строго согласованный доступ к петабайтам данных в режиме реального времени. Apache Hive – это система распределенного хранилища данных, обеспечивающая возможности для выполнения запросов, похожих на SQL.
Характеристики |
Apache Hive |
Apache HBase |
Функция |
Механизм обработки запросов, похожих на SQL, предназначен для хранилищ больших объемов данных. Поддерживаются различные форматы файлов. |
Распределенное хранилище на основе пар «ключ – значение» с низкой задержкой и настраиваемыми возможностями запросов. Данные хранятся в формате, ориентированном на работу со столбцами. |
Тип обработки |
Пакетная обработка с использованием вычислительных платформ Apache Tez или MapReduce. |
Обработка в режиме реального времени. |
Задержка |
От средней до высокой, в зависимости от скорости отклика вычислительного механизма. Модель распределенного выполнения обеспечивает превосходную производительность по сравнению с монолитными системами запросов, например RDBMS, для тех же объемов данных. |
Низкая, но может быть непостоянной. Структурные ограничения архитектуры HBase могут привести к скачкам задержек при интенсивных нагрузках для выполнения записи. |
Интеграция с Hadoop |
Это надстройка сервиса Hadoop, использующая Apache Tez или MapReduce для обработки данных и HDFS или Amazon S3 для хранения данных. |
Это надстройка HDFS или Amazon S3. |
Поддержка SQL |
Предоставляет возможности для выполнения запросов, похожих на SQL, с помощью HiveQL. |
Поддержка запросов SQL сама по себе отсутствует. Для выполнения запросов SQL можно использовать Apache Phoenix. |
Схема |
Определенная схема для всех таблиц. |
Без схем. |
Типы данных |
Поддерживает структурированные и неструктурированные данные. Обеспечивает встроенную поддержку для распространенных типов данных SQL, таких как INT, FLOAT и VARCHAR. |
Поддерживает только неструктурированные данные. Пользователь определяет сопоставления полей данных с типами данных, поддерживаемыми Java. |
Каковы примеры использования Hive?
Компания Guardian обеспечивает безопасность 27 миллионов участников на достойном уровне за счет продуктов и услуг по страхованию и управлению капиталом. Компания Guardian использует Amazon EMR для запуска Apache Hive на базе озера данных S3. Apache Hive используется для пакетной обработки. Озеро данных S3 служит основой цифровой платформы Guardian Direct, которая дает потребителям возможность изучать и покупать продукты Guardian и сторонних производителей в страховом секторе.
Агентство по регулированию деятельности финансовых институтов (FINRA) – это крупнейший независимый орган контроля рынка ценных бумаг в США, который занимается отслеживанием и регулированием процедур финансовой торговли. Агентство FINRA использует Amazon EMR для запуска Apache Hive на базе озера данных S3. За счет запуска Hive в кластерах EMR агентство FINRA получает возможность обрабатывать и анализировать данные о торговле (до 90 миллиардов событий) с помощью SQL. Благодаря облачному озеру данных удалось сэкономить до 20 миллионов долларов США по сравнению с локальным решением FINRA и значительно сократить время, необходимое для восстановления и обновления.
Vanguard – зарегистрированный в США консультант по инвестициям, крупнейший поставщик паевых инвестиционных фондов и второй по величине поставщик биржевых фондов. Компания Vanguard использует Amazon EMR для запуска Apache Hive на базе озера данных S3. Данные хранятся в S3, и EMR создает на их основе метахранилище Hive. Хранилище метаданных Hive содержит все метаданные о данных и таблицах кластера EMR, что упрощает анализ данных. Hive также дает аналитикам возможность выполнять специальные SQL-запросы к данным, хранящимся в озере данных S3. Благодаря переходу на озеро данных S3 с помощью Amazon EMR более чем 150 аналитикам данных удалось повысить эффективность работы и снизить затраты на EC2 и EMR на 600 000 долларов США.
Как AWS может поддерживать Hive?
Сервис Amazon EMR предоставляет самую простую, быструю и экономичную управляемую платформу Hadoop, на которой пользователи могут обрабатывать огромные объемы данных в динамически масштабируемых инстансах EC2. Пользователи также могут запускать в EMR другие популярные распределенные платформы, такие как Apache Hive, Spark, HBase, Presto и Flink.
Подробнее об Amazon EMR
Создайте бесплатный аккаунт AWS и начните работу с Apache Hive на базе AWS уже сегодня.
AWS: дальнейшие шаги
Получите мгновенный доступ к уровню бесплатного пользования AWS.