что такое hive и impala

Что такое hive и impala

В прошлой статье мы рассмотрели основные возможности и ключевые характеристики Apache Hive и Cloudera Impala. Сегодня подробнее поговорим про то, что между ними общего и чем отличаются друг от друга эти SQL-инструменты для обработки больших данных (Big Data), хранящихся в кластере Hadoop.

Что общего между Apache Hive и Cloudera Impala: 5 главных сходств

Сначала поговорим о том, чем похожи рассматриваемые SQL-инструменты для Apache Hadoop. Проанализировав их основные функциональные возможности и примеры использования, мы выделили следующие общие характеристики:

В чем разница между Hive и Impala: 10 ключевых отличий

При всех вышеотмеченных сходствах, рассматриваемые SQL-инструменты для Apache Hadoop существенно отличаются друг от друга по следующим параметрам:

Таким образом, рассмотренные сходства и различия Cloudera Impala и Apache Hive подтверждают, что данные SQL-инструменты для аналитической обработки данных, хранящихся в экосистеме Hadoop, не конкурируют, а дополняют друг друга. Аргументы выбора того или иного решения мы приводим здесь, вместе с реальными примерами использования. А в следующей статье подробнее рассмотрим разницу их использования и работы с точки зрения разработчика Big Data: процесс генерации и выполнения запросов, потребление памяти, расширяемость и другие аспекты, важные для программиста, а также поговорим про язык HiveQL.

Узнайте больше про аналитику больших данных с помощью этих SQL-инструментов на наших практических курсах в лицензированном учебном центре обучения и повышения квалификации ИТ-специалистов (менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data) в Москве:

Источник

Что такое hive и impala

Завершая сравнение SQL-инструментов для больших данных (Big Data), хранящихся в среде Hadoop, сегодня мы рассмотрим аргументы в пользу Apache Hive и Cloudera Impala – когда стоит выбирать ту или иную систему и почему. Также в этой статье мы собрали для вас несколько практических примеров реального использования Импала и Хайв в крупных Big Data проектах.

5 аргументов в пользу Apache Hive для аналитики Big Data

В большинстве случаев выбор Apache Hive в качестве основного SQL-средства для анализа данных, хранящихся в кластере Hadoop (HDFS или HBase), обусловлен ключевыми преимуществами этой системы относительно Cloudera Impala:

В связи с вышеперечисленными достоинствами Хайв активно применяется в масштабных Big Data проектах. Например, в соцсети знакомств Badoo, которая поддерживает множество языков и работает во всех странах мира, именно Apache Hive используется для ежедневного сбора суточных счетчиков пользователей, агрегации, фильтрации и ручного SQL-анализа данных, хранящихся в Hadoop [4]. Также стоит отметить опыт использования Hive в лаборатории реактивного движения научного центра NASA для построения и оценки климатической модели по данным дистанционного зондирования. Региональная система оценки климатической модели (RCMES) состоит из двух компонентов [5]:

7 причин выбрать Cloudera Impala в качестве SQL-средства для Apache Hadoop

Как мы уже отмечали, Impala дополняет Hive, предоставляя удобный и быстрый способ анализировать большие данные, хранящиеся в Hadoop (HDFS, HBase) и другие распределенных файловых системах, в частности, Amazon S3. При этом главным плюсом Импала считается высокая скорость обработки простых SQL-запросов, обусловленная следующими факторами:

Также среди достоинств Impala можно назвать встроенную поддержку безопасного сетевого протокола аутентификации Kerberos, работу в многопользовательской среде с высокой конкуренцией запросов, кеширование часто запрашиваемых данных в памяти, приоритезацию и возможность управления очередью запросов. Благодаря этим качествам Impala широко востребована на практике для реализации ETL-процессов у аналитиков и ученых по данным (Data Analyst, Data Scientist). В частности, именно Cloudera Impala была выбрана банком ВТБ в качестве дополнительного ETL-инструмента при разгрузке корпоративного хранилища и озера данных (Data Lake) при построении собственной Big Data системы клиентской аналитики [6].

что такое hive и impala. vib 2. что такое hive и impala фото. что такое hive и impala-vib 2. картинка что такое hive и impala. картинка vib 2.Архитектура Big Data системы клиентской аналитики банка ВТБ с применением Cloudera Impala

В заключение следует еще раз подчеркнуть, что Импала и Хайв не конкурируют друг с другом, т.к. ориентированы на разные задачи. Быстрота и удобство использования Impala компенсируются отказоустойчивостью и широкой расширяемостью Hive. Импала подходит для интерактивной аналитики в режиме реального времени с помощью множества простых SQL-запросов, а Хайв можно назвать идеальным инструментом для построения сложных ETL-конвейеров. В любом случае, при выборе той или иной платформы стоит, помимо функциональных характеристик самой системы, также учитывать контекст бизнеса, перспективы развития, текущие и будущие особенности эксплуатации.

Станьте профессионалом SQL-аналитики больших данных среды Hadoop, освоив администрирование, настройку и эффективную эксплуатацию Хайв и Импала на наших практических курсах в лицензированном учебном центре обучения и повышения квалификации ИТ-специалистов (менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data) в Москве:

Источник

Что такое HiveQL: SQL для Big Data в Apache Hadoop — как работают Hive и Impala

что такое hive и impala. 2*5fBPyd 8GVI2BK J2TyMw. что такое hive и impala фото. что такое hive и impala-2*5fBPyd 8GVI2BK J2TyMw. картинка что такое hive и impala. картинка 2*5fBPyd 8GVI2BK J2TyMw.

Dec 9, 2019 · 6 min read

что такое hive и impala. 0*RnWkT8Sv545Yyqnw. что такое hive и impala фото. что такое hive и impala-0*RnWkT8Sv545Yyqnw. картинка что такое hive и impala. картинка 0*RnWkT8Sv545Yyqnw.

Мы уже разобрали, что общего между Apache Hive и Cloudera Impala. В этой статье рассмотрим работу этих систем с точки зрения программиста, а также поговорим про язык HiveQL. Читайте в сегодняшнем материале, как эти системы выполняют SQL-запросы для аналитики больших данных (Big Data), хранящихся в кластере Hadoop.

Что такое HiveQL, зачем он нужен и чем отличается от классического SQL

Напомним, среда Hadoop неэффективна в интерактивной ( п отоковой) обработке масштабных структурированных данных из-за пакетной специфики вычислительной модели MapReduce, которая не позволяет выполнять сложные аналитические запросы в режиме реального времени с максимально допустимой задержкой в несколько миллисекунд. Эта проблема успешно решается в реляционных OLTP-системах с помощью SQL-запросов, которые дают разработчику возможность формулировать задачи на декларативном языке высокого уровня и оставлять детали оптимизации внутреннему механизму.

В Apache Hive и Cloudera Impala запросы к данным, хранящимся в Hadoop, реализуются на SQL-подобном декларативном языке Hive Query Language (HiveQL), который является подмножеством SQL92. Однако, в ряде случаев HiveQL отличается от стандартного SQL, в частности [1]:

· разные способы определения операций join для максимальной производительности;

· в HiveQL нет некоторых функций, операций и операторов SQL (UPDATE и DELETE statements, INSERT для отдельных строк);

· HiveQL позволяет вставлять пользовательский код для ситуаций, которые не вписываются в типовой SQL, предоставляя соответствующие инструменты для обработки входа и выхода — определенные пользователем функции: User Defined Function (UDF), User Defined Aggregate Function (UDAF), User Defined Tabular Function (UDTF);

· HiveQL не поддерживает типы данных даты и времени, т.к. они рассматриваются как строки.

Как и в SQL, в HiveQL имеется собственные парсер, планировщик, исполнитель и оптимизатор запросов, который ускоряет трансляцию запроса в исполняемый код, о чем мы рассказывали здесь на примере Catalyst — оптимизатора Apache Spark. Хайв и Импала по-разному работают с HiveQL, реализуются свои механизмы выполнения запросов, которые мы рассмотрим далее.

Как выполняется SQL-запрос в Cloudera Impala

Импала выполняет структурированные запросов к данным, хранящимся в Apache Hadoop, последовательно в несколько этапов [2]:

1. Big Data приложение со стороны пользователя отправляет SQL-запрос в Impala через ODBC или JDBC. Эти драйверы предоставляют стандартизованные интерфейсы запросов, благодаря чему пользовательское приложение может подключаться к любой системной службе Импала (impala daemon, impalad) в кластере. Далее этот impalad становится координатором текущего запроса.

2. Импала анализирует SQL-запрос, чтобы определить, какие задачи должны выполняться impalad-экземплярами в кластере. С учетом оптимальной эффективности планируется выполнение запроса.

3. Доступ impalad к данным в HDFS и HBase осуществляется напрямую локальными экземплярами сервисов для предоставления данных.

4. Каждый daemon возвращает данные координирущему impalad, который отправляет эти результаты клиенту в пользовательское приложение.

Отметим, что Impala избегает любых возможных накладных расходов при запуске, поскольку все процессы системных демонов запускаются непосредственно во время загрузки. Это существенно экономит время выполнения запроса. Дополнительное повышение скорости работы Импала обусловлено тем, что этот SQL-инструмент для Hadoop, в отличие от Hive, не сохраняет промежуточные результаты и обращается напрямую к HDFS или HBase. Кроме того, Impala генерирует программный код во время исполнения (runtime), а не при компиляции (compile time), как это делает Hive. Однако, побочным эффектом такой высокой скорости работы Impala является понижение надежности. В частности, если во время выполнения SQL-запроса узел данных отключится, экземпляр Импала запустится заново, а Hive продолжит держать соединение с источником данных, обеспечивая отказоустойчивость [3].

При кодогенерации во время выполнения программы в Impala используется LLVM (Low Level Virtual Machine) — проект инфраструктуры для создания компиляторов и сопутствующих утилит. Этот компилятор на виртуальной машине с RISC-подобными инструкциями генерирует оптимальный код выполнения SQL-запроса, представляя собой набор компиляторов из языков высокого уровня, системы оптимизации, интерпретации и компиляции в машинный код [4].

что такое hive и impala. . что такое hive и impala фото. что такое hive и impala-. картинка что такое hive и impala. картинка .

Как Cloudera Impala выполняет SQL-запросы к Apache Hadoop

Как работает Apache Hive: Big Data аналитика для Hadoop

Как в большинстве СУБД, в Hive есть несколько способов запуска SQL-запросов [5]:

· интерфейс командной строки — Hive Shell (CLI, Command Line Interface);

· подключение к БД через JDBC или ODBC с помощью драйвера Hive;

· использование клиента, установленного на уровне пользователя (среднее звено классической трехуровневой архитектуры). Этот клиент общается с сервисами Hive, работающими на сервере. Такой подход можно применять в приложениях, написанных на разных языках (C++, Java, PHP, Python, Ruby), используя эти клиентские языки со встроенным SQL для доступа к базам данных. По сути, таким образом реализуется web-UI Хайв.

Hive включает в себя следующие обязательные компоненты [5]:

· HCatalog для управления таблицами и хранилищами Hadoop, который снабжает пользователей различными инструментами обработки больших данных, включая MapReduce и Apache Pig для более простого чтения и записи данных.

· WebHCat предоставляет сервисы, которые можно использовать для запуска задач Hadoop MapReduce, Pig, заданий (jobs) или операций с метаданными Hive с помощью интерфейса HTTP в стиле REST.

Для доступа к метахранилищу (MetaStore) используется Apache Thrift — фреймворк удаленного вызова процедур (RPC, Remote Procedure Call), высокоуровневый язык описания интерфейсов, который позволяет определять и создавать службы под разные языки программирования [6].

что такое hive и impala. 0*WYJp YdGhD1CwPA0. что такое hive и impala фото. что такое hive и impala-0*WYJp YdGhD1CwPA0. картинка что такое hive и impala. картинка 0*WYJp YdGhD1CwPA0.

Архитектура и принцип работы Apache Hive

Hive является средством трансляции SQL-запросов в задачи MapReduce: HiveQL-выражения преобразуются в задания MapReduce, которые выполняются в Apache кластере Hadoop и формируются в окончательный результат. Из-за этого даже простейшие запросы к таблице приводят к полному сканированию данных, содержащихся в ней. Это приводит к временной задержке при обработке данных. Что избежать такого полного сканирования данных, можно некоторые столбцы таблицы распределить по разным разделам (partition). Эта операция называется партиционирование и означает, что данные, относящиеся к разным колонкам, будут физически храниться в разных папках на HDFS. Партиционирование позволяет существенно сократить время исполнения SQL-запроса. Например, таким образом можно разделить хранимые логи по датам, что является частой задачей при анализе статистических данных с привязкой в временным периодам [5].

Партиционирование таблиц возможно и в Impala, однако при выделении разделов стоит помнить о размерах блока HDFS. Например, в случае таблиц из файлов Parquet размер блока HDFS составляет 256 МБ в Impala 2.0 и более поздних версиях. Таким образом, механизм секционирования (партиционирования) таблиц значительно повышает быстродействие HiveQL-запросов как в Хайв, так и в Импала [4].

что такое hive и impala. 0*D3NyAZuA dIlAddZ. что такое hive и impala фото. что такое hive и impala-0*D3NyAZuA dIlAddZ. картинка что такое hive и impala. картинка 0*D3NyAZuA dIlAddZ.

Пример партиционирования таблиц в Apache Hive и Cloudera Impala

Наконец, резюмируя отличия Hive и Impala в плане выполнения SQL-запросов с точки зрения разработчика Big Data, отметим разницу в поддерживаемых типах данных. Хайв поддерживает все основные примитивные (integer, float и string), а также сложные типы данных (map, list и struct), в отличие от Impala [7]. В плане обеспечения информационной безопасности Импала и Хайв также отличаются друг от друга. Об этом мы расскажем в следующей статье.

Как настроить и эффективно запустить аналитику больших данных с помощью этих SQL-инструментов вы узнаете на наших практических курсах в лицензированном учебном центре обучения и повышения квалификации ИТ-специалистов (менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data) в Москве:

Источник

Что такое hive и impala

Impala – это массово-параллельный механизм интерактивного выполнения SQL-запросов к данным, хранящимся в Apache Hadoop (HDFS и HBase), написанный на языке С++ и распространяющийся по лицензии Apache 2.0. Также Импала называют MPP-движком (Massively Parallel Processing), распределенной СУБД и даже базой данных стека SQL-on-Hadoop.

Как появился Apache Impala и чем это связано с Cloudera: история разработки

Изначально рассматриваемый продукт был разработан компанией Cloudera и представлен на рынок в 2012 году, а 2 декабря 2015 года был принят в инкубатор фонда Apache Software Foundation. Поэтому сегодня Apache Импала обычно означает свободно распространяемое решение, а Cloudera Impala – коммерчески поддерживаемую версию от исходной компании-разработчика (Cloudera) [1].

Разумеется, Импала – это не единственное решение класса SQL-on-Hadoop. Помимо рассматриваемого продукта, такими аналитическими средствами для Big Data являются другие проекты Apache: Hive (Хайв), Drill, Phoenix. Потребность в разработке инструментов SQL-on-Hadoop возникла из-за необходимости аналитики больших данных, хранящихся в HDFS и HBase. Например, в рамках BI-приложений (Business Intelligence), когда требуется быстро ответить на сложный логический запрос, например, при поиске оптимального авиамаршрута или другой подобной задачи с непростой логистикой [2]. Благодаря автоматической трансляции запроса в исполнительный код, реализованной внутри средства SQL-on-Hadoop, разработчик Big Data системы может работать с данными, хранящимися в HBase или HDFS, как с реляционными таблицами, формируя различные выборки и условные фильтрации, а также изменяя значение данных.

Как устроена Impala: архитектура

Impala работает в распределенном режиме, когда экземпляры процессов выполняются на разных узлах кластера, получая, планируя и координируя запросы от клиентов. При этом возможно параллельное выполнение фрагментов SQL-запроса. Клиенты – это пользователи и приложения, которые отправляют SQL-запросы к данным, хранящимся в Apache Hadoop (HBase и HDFS) или Amazon S3. Взаимодействие с Импала происходит через веб-интерфейс HUE (Hadoop User Experience), ODBC, JDBC и оболочку командной строки Impala Shell.

Импала инфраструктурно зависит от другого популярного SQL-on-Hadoop инструмента, Apache Hive, используя его хранилище метаданных. В частности, Hive Metastore позволяет Impala знать о доступности и структуре баз данных. При создании, изменении и удалении объектов схемы или загрузке данных в таблицы через SQL-инструкции, соответствующие изменения метаданных автоматически передаются всем узлам Impala с помощью специализированной службы каталогов [3].

Ключевыми компонентами Импала являются следующие исполняемые файлы [3]:

Как работает Импала: главные принципы выполнения SQL-запросов к Hadoop

Cloudera Impala, как и Apache Hive вместо SQL использует аналогичный декларативный язык запросов Hive Query Language (HiveQL), который является подмножеством SQL92. Он немного отличается от стандартного SQL, о чем мы подробно рассказывали здесь.

Само выполнение запроса в Импала происходит следующим образом [3]:

Благодаря MPP-механизму параллельного распределения запросов, кэшированию часто запрашиваемых данных в памяти, предварительному запуску системных служб (при загрузке) и генерации программного кода во время исполнения (runtime), а не при компиляции (compile time), Импала работает быстрее надежной и отказоустойчивой Hive. Подробнее про исполнение SQL-запросов в Apache Hive и Cloudera Impala читайте в нашей отдельной статье.

что такое hive и impala. impa3. что такое hive и impala фото. что такое hive и impala-impa3. картинка что такое hive и impala. картинка impa3.Компоненты Impala для выполнения SQL-запросов к данным в Apache Hadoop

Примеры использования, ключевые преимущества и главные недостатки Impala

Вышеописанные архитектурные особенности обусловливают следующие преимущества Импала:

Обратной стороной всех этих достоинств Импала является снижение надежности, отказоустойчивости и пропускной способности по сравнению c Apache Hive. Также, в отличие от Hive, Импала не поддерживает сложные типы данных (map, list и struct) [5]. Несмотря на эти недостатки, Cloudera Impala активно используется в различных Big Data проектах по всему миру. Благодаря своей быстроте, эта система востребована не только у аналитиков и инженеров по данным, но и в крупных production-решениях. Например, здесь мы рассказывали, как банк ВТБ использует Cloudera Impala в качестве дополнительного ETL-инструмента для собственной Big Data системы клиентской аналитики, работающей с корпоративным хранилищем и озером данных (Data Lake).

что такое hive и impala. vib 2. что такое hive и impala фото. что такое hive и impala-vib 2. картинка что такое hive и impala. картинка vib 2.Архитектура Big Data системы клиентской аналитики банка ВТБ с применением Cloudera Impala

Источник

Impala vs Hive vs Spark SQL: Выбор правильного SQL движка для правильной работы в Cloudera Data Warehouse

что такое hive и impala. . что такое hive и impala фото. что такое hive и impala-. картинка что такое hive и impala. картинка .

Нам всегда не хватает данных. И мы не просто хотим больше данных… мы хотим новые типы данных, которые позволят нам лучше понимать свою продукцию, клиентов и рынки. Мы все-время находимся в поиске новых данных, данных всех форм и размеров, структурированных и не очень. Мы хотим распахнуть свои двери для нового поколения бизнес-специалистов и технических специалистов, которые будут увлеченно вместе с нами открывать новые базы данных и технологии, которые впоследствии изменят характер того, как мы взаимодействуем с данными и какое влияние они оказывают на нашу жизнь.

Я приведу пример из жизни, чтобы вы лучше понимали, что я имею в виду. Примерно два года назад данные спасли жизнь дочери моего друга. Когда она родилась ей диагностировали семь пороков сердца. Благодаря новым технологиям, таким как интерактивная 3D графика, виртуальное моделирование, более интеллектуальный анализ ЭКГ, современные решения для мониторинга пациентов соблюдающих постельный режим и благодаря другим усовершенствованным медицинским процедурам, основанных на данных, она сумела пережить две операции на открытом сердце и сейчас живет здоровой жизнью. Данные спасли ей жизнь. Именно это и подталкивает меня каждый день к поиску новых инновационных решений и способов более быстрой передачи данных тем, кто в них нуждается больше остальных.

Я горжусь тем, что являюсь частью команды Cloudera Data Warehouse (CDW) работающей на платформе Cloudera Data Platform (CDP). CDP был создан с нуля как корпоративное облако данных или Enterprise Data Cloud (EDC). EDC это многофункциональный инструмент для реализации многих задач на одной платформе. Благодаря использованию гибридных и мульти-облачных систем, CDP может работать где угодно — как на платформе без операционной системы, так и в частном и публичном облаке. По мере внедрения большего количества облачных решений в рамках нашего плана развития цифровых технологий, мы видим, что гибридные и мульти-облачные решения становятся новой нормой. Однако эти комбинированные решения создают проблемы в управлении ими, что в свою очередь порождает новые риски в области безопасности, вероятность возникновения слежки за пользователем и впоследствии нарушение закона. Для решения этих проблем CDP обладает расширенными возможностями для обеспечения безопасности и контроля, которые позволят сделать доступ к данным открытым без риска нарушить чью либо политику безопасности или даже закона.

CDW on CDP — это новый сервис позволяющий создать self-service хранилища данных для команд BI аналитиков. Вы можете быстро создавать новые хранилища данных и пользоваться ими самостоятельно или предоставить к ним доступ группе лиц и пользоваться единой базой вместе c ними. Помните ли вы времена, когда можно было самостоятельно управлять хранилищем данных? Управлять им без участия платформ и необходимой для его работы инфраструктуры? Такого никогда не было. CDW сделал это возможным.

Благодаря CDW стали доступны различные движки SQL, однако с предоставлением больших возможностей выбора возникает и путаница. Давайте рассмотрим движки SQL доступные в CDW on CDP, и обсудим, какой вариант SQL больше подходит для выполнения определенной задачи.

Такой большой выбор! Impala? Hive LLAP? Spark? Что использовать и когда? Давайте разберемся.

Impala SQL Engine

Impala — это популярный движок MPP с открытым исходным кодом и широким спектром возможностей в Cloudera Distribution Hadoop (CDH ) и CDP. Impala заслужила доверие рынка благодаря low-latency highly interactive SQL-запросам. Возможности Impala очень широки, Impala не только поддерживает Hadoop Distributed File System (HDFS — распределенную файловую систему Hadoop) с Parquet, Optimized Row Columnar (ORC — оптимизированный узел хранения), JavaScript Object Notation (JSON), Avro, и текстовые форматы, но также имеет встроенную поддержку Kudu, Microsoft Azure Data Lake Storage (ADLS) и Amazon Simple Storage Service (S3). Impala обладает высоким уровнем безопасности при помощи either sentry или ranger и, как известно, может поддерживать тысячи пользователей с кластерами из сотен узлов на многпетабайтных датасетах. Давайте же рассмотрим общую архитектуру Impala.

что такое hive и impala. image loader. что такое hive и impala фото. что такое hive и impala-image loader. картинка что такое hive и impala. картинка image loader.

Для проверки работоспособности кластера Impala использует StateStore. Если узел Impala по какой-либо причине переходит в режим «оффлайн», то StateStore передаст сообщение об этом по всем узлам и пропустит недоступный узел. Служба каталога Impala управляет метаданными для всех инструкций SQL для всех узлов кластера. StateStore и служба каталогов обмениваются данными с хранилищем Hive MetaStore для размещения блоков и файлов, а затем передают метаданные рабочим узлам. При поступлении запроса он передается одному из многочисленных программ согласования, где выполняется компиляция и инициируется планирование. Фрагменты плана возвращаются, и программа согласования организует его выполнение. Промежуточные результаты передаются между службами Impala и затем возвращаются.

Такая архитектура идеально подходит для тех случаев, когда нам нужны витрины данных для бизнес-аналитики для получения ответов на запросы с низким временем задержки, как это обычно бывает в случаях с использованием ad-hoc, self-service и discovery types. При таком сценарии мы имеем клиентов сообщающих нам ответы на сложные запросы от менее одной секунды до пяти секунд.

Для данных Internet of Things (IoT) и связанных с ними сценариях, Impala вместе со streaming решениями, такими как NiFi, Kafka или Spark Streaming, и соответствующими хранилищами данных, такими как Kudu, может обеспечить непрерывную конвейерную обработку со временем задержки менее чем десять секунд. Благодаря встроенным функциям чтения/записи на S3, ADLS, HDFS, Hive, HBase и многим другим, Impala является превосходным SQL-движком для использования при запуске кластера до 1000 узлов, и более 100 триллионов строк в таблицах или датасетах размером в 50BP и более.

Hive LLAP

«Live Long And Process» или «Long Delay Analytics Processing», также известная как LLAP, является механизмом выполнения под управлением Hive, который поддерживает длительные процессы используя одни и те же ресурсы для кэширования и обработки. Этот механизм обработки дает нам ответ от SQL с очень низким временем задержки, так как у нас нет времени на запуск запрашиваемых ресурсов.

что такое hive и impala. image loader. что такое hive и impala фото. что такое hive и impala-image loader. картинка что такое hive и impala. картинка image loader.

Кроме того, LLAP обеспечивает и устанавливает контроль над исполнением политики безопасности, поэтому вся работа LLAP для пользователя прозрачна, что помогает Hive конкурировать по показателям производительности рабочих нагрузок даже с наиболее популярными и традиционно используемыми средствами хранения данных на сегодняшний день.

Hive LLAP предлагает самый развитый движок SQL в экосистеме больших данных. Hive LLAP создан для огромного количества данных, предоставляя пользователям широкие возможности хранилища данных Enterprise Data Warehouse (EDW), которое поддерживает преобразование данных больших объемов, выполнение долгих запросов или тяжелых SQL запросов с сотней join-ов. Hive поддерживает materialized views, суррогатные ключи и различные ограничения, аналогичные традиционным реляционным системам управления базами данных, включая встроенное кэширование для получения запроса результатов и запросов данных. Hive LLAP может уменьшить нагрузку от повторяющихся запросов сократив время ответа до доли секунды. Hive LLAP может поддерживать федеративные запросы на HDFS (распределенную файловую систему Hadoop) и о object stores, а также потоковую передачу в реальном времени, работая с Kafka и Druid.

Таким образом Hive LLAP идеально подходит в качестве решения Enterprise Data Warehouse (EDW ), в котором мы будем вынуждены столкнуться с большим количеством длительных запросов, требующих крупных преобразований или множественных join-ов между таблицами и большими датасетами. Благодаря технологии кэширования, включенной в Hive LLAP, у нас появились клиенты, которые могут сделать join 330 миллиардов записей с 92 миллиардами других записей с partition key или без него и получить результат за секунды.

Spark SQL

Spark — это высокоэффективный движок обработки данных общего назначения, служащий для поддержки работы по обработке и распределению данных и который имеет широкий спектр областей применения. Существует множество библиотек данных Spark для специалистов data science и машинного обучения, которые поддерживают higher-level programming model для быстрой разработки. Уровнем выше Spark располагаются Spark SQL, MLlib, Spark Streaming и GrapX.

что такое hive и impala. image loader. что такое hive и impala фото. что такое hive и impala-image loader. картинка что такое hive и impala. картинка image loader.

Spark SQL — это модуль для структурированной обработки данных, совместимый с различными источниками данных, с поддержкой Hive, Avro, Parquet, ORC, JSON и JDBC. Spark SQL эффективен на semi-structured наборах данных и интегрирован с Hive MetaStore и NoSQL хранилищами такими как HBase. Spark часто используется с различными программными API на наших любимых языках программирования, таких как Java, Python, R и Scala.

Spark может быть очень полезен при возникновении необходимости встраивания SQL-запросов вместе с программами Spark в случае его работы с большими объемами данных и высокой нагрузкой. Spark помогает многим нашим пользователям, работающим на предприятиях входящих в Global 100, сокращать обработку потоковых данных. Объединяя это с MLlib, мы видим, как многие наши клиенты положительно отзываются о Spark, как об отличной системе способной к машинному обучению при работе с приложениями хранилища данных. Благодаря высокой производительности, низкой задержке и отличной интеграции инструментов сторонних производителей, Spark SQL обеспечивает лучшие условия для переключения между программированием и SQL.

Так какой же движок SQL использовать?

Так как вы можете комбинировать одни и те же данные в CDW на CDP, Вы можете выбрать правильный движок для каждой из типов рабочих нагрузок, таких как data engineering, традиционный EDW, ad hoc аналитика, BI дашборды, Online Analytical Processing (OLAP) или Online Transaction Processing (OLTP). На приведенной ниже диаграмме представлены некоторые принципы направленные на упрощение выбора, в соответствии с которыми движки и их механизмы неплохо подходят для каждой из поставленных целей.

что такое hive и impala. image loader. что такое hive и impala фото. что такое hive и impala-image loader. картинка что такое hive и impala. картинка image loader.

Вывод

Если вы используете EDW поддерживающую BI дашборды, Hive LLAP даст Вам наилучшие результаты. Когда вам нужен ad-hoc, self-service и исследовательское хранилище данных, обратите свой взор в сторону преимуществ Impala. Если вы посматриваете на Data Engineering с долго выполняющимися запросами и без высокого параллелизма, Spark SQL — отличный выбор. Если требуется поддержка высокого параллелизма, то можно взглянуть на Hive on Tez. Ищите поддержки OLAP с данными временного ряда, добавьте Druid, а если вы ищете OLTP с низким временем задержки и высокий параллелизмом, то возможно Вам стоит добавить Phoenix.

Итого — существует множество движков SQL в CDW на CDP, и это сделано нарочно. Предоставление выбора до принятия решения — это лучший способ оптимизации процессов для высокопроизводительных приложений с много поточным процессом обработки на массивных хранилищах данных. CDW в CDP обеспечивает общий доступ к данным и совместное их использование под единой системой безопасности, управления, отслеживания данных и метаданных, что позволяет сочетать компоненты SQL в оптимизированных хранилищах. Тем самым это дает пользователю свободу выбрать лучший движок SQL в зависимости от его рабочих нагрузок.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *