Apache Hive 4.0.0-alpha-2: что нового?

Apache Hive примеры курсы обучение Hadoop SQL SQL-on-Hadoop, обучение дата-инженеров Apache Hive Data Lake, Школа Больших Данных Учебный центр Коммерсант

16 ноября 2022 года вышел 2-ой альфа-релиз Apache Hive 4.0.0. Какие ошибки в нем исправлены и что за новые функции, важные для дата-инженера и администратора кластера Hadoop, появились. А перед этим вспомним основные принципы работы Apache Hive.

Принципы работы Apache Hive

Apache Hive является популярным инструментом стека SQL-on-Hadoop, позволяя обращаться к данным, хранящимся в распределенной файловой системе Hadoop (HDFS) через стандартные SQL-запросы. В действительности Hive использует SQL-подобный язык запросов HiveQL вместо программ MapReduce, скрывая от пользователя этот перевод в Java-код. Это упрощает обработку и анализ огромных объемов данных. Алгоритм работы Hive можно представить следующим образом:

  • executeQuery — пользовательский интерфейс вызывает интерфейс выполнения для драйвера;
  • getPlan — драйвер принимает запрос, создает дескриптор сеанса для запроса и передает запрос компилятору для создания плана выполнения;
  • getMetaData — компилятор отправляет запрос метаданных в хранилище метаданных;
  • sendMetaData – хранилище метаданных отправляет метаданные компилятору, который использует их для проверки типов и семантического анализа выражений в дереве запросов. Затем компилятор генерирует план выполнения как направленный ациклический граф (DAG). Для заданий MapReduce план содержит деревья операторов сопоставления и дерево операторов сокращения.
  • sendPlan – компилятор отправляет сгенерированный план выполнения драйверу;
  • executePlan – после получения плана выполнения от компилятора драйвер отправляет план выполнения механизму выполнения для выполнения плана;
  • отправка задания в MapReduce в механизм выполнения. Все этапы DAG отправляются соответствующим компонентам. Для каждой задачи (преобразователь, Reducer, десериализатор, связанный с таблицей или промежуточным выводом) используется чтения строк из файлов HDFS, а затем они передаются через соответствующее дерево операторов. После создания выходных данных они записываются во временный файл HDFS через сериализатор. Эти временные файлы HDFS далее используются для предоставления данных для последующих этапов отображения/уменьшения плана. Для операций DML окончательный временный файл затем перемещается в расположение таблицы.
  • sendResult — механизм выполнения считывает содержимое временных файлов непосредственно из HDFS как часть вызова выборки из драйвера. Наконец, драйвер отправляет результаты в интерфейс Hive.

Таким образом, пользователь (дата-инженер, аналитик данных или разработчик распределенных приложений) взаимодействует с Hive через пользовательский интерфейс, отправляя HiveQL-запросы. Драйвер передает запрос Hive компилятору, а тот генерирует план выполнения, который выполняет механизм исполнения.

Новинки выпуска 4.0.0

Ноябрьский выпуск Apache Hive 4.0.0 содержит около сотни исправленных ошибок и улучшений, а также 10 новых фич:

  • добавлена позиция и вхождения в функцию instr(str, substr[, pos[, occurrence]]), которая возвращает начальную позицию подстроки в строке;
  • добавлена поддержка таблиц по умолчанию на каждом уровне базы данных;
  • исправлен сбой при создании таблицы HBase, если SERDEPROPERTIES содержат специальные символы. Ранее оператор Create table не работал для HBase, проходящего через Ranger из-за проблем с методом getURIForAuth().
  • реализована функция отката таблицы Iceberg;
  • отключена векторизация при запросе метаданных таблиц Iceberg;
  • реализована поддержка CREATE TABLE LIKE FILE для Parquet, чтобы позволить пользователю создать таблицу и вывести схему из предоставленного пользователем файла это колоночного формата. Также другие сериализаторы и десериализаторы смогут реализовать эту функцию. Также эта DDL-команда теперь поддерживается для строкового формата ORC.
  • пропущена проверка сертификата SSL для загрузки JWKS в HS2. В среде разработки и тестовой среде часто используется промежуточный сертификат letsencrypt для службы генерации токенов. Но его сертификат не принимается JVM по умолчанию. Чтобы упростить тестирование JWT в таких средах, введено свойство, отключающее проверку сертификата только для загрузок JWKS.
  • добавлена приоритетная очередь для операции уплотнения данных, которая является ресурсоемкой (в случае полного уплотнения) и позволяет сэкономить место на жестком диске;
  • реализовано использование Apache Calcite для удаления разделов плана запроса, о которых известно, что они никогда не создают строк. Напомним, Apache Calcite – это платформа с открытым исходным кодом для создания баз данных и СУБД. Она включает синтаксический анализатор SQL, API для построения выражений в реляционной алгебре и механизм планирования запросов. В Calcite есть набор правил для удаления разделов плана запроса, который никогда не создает никаких строк. В некоторых случаях весь план может быть удален. Такие планы представлены одним оператором Values без кортежей.

Больше подробностей про администрирование и эксплуатацию Apache Hive и других компонентов

экосистемы Hadoop для хранения и аналитики больших данных вы узнаете на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:

Я даю свое согласие на обработку персональных данных и соглашаюсь с политикой конфиденциальности.

Источники

  1. https://adosi12.medium.com/apache-hive-uses-a-hive-query-language-which-is-a-declarative-language-similar-to-sql-a5e466a66b1
  2. https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12351489&styleName=Html&projectId=12310843
Поиск по сайту