Софт

Выпущен Apache Hudi 1.0

Выпущен Apache Hudi 1.0

Компания Apache выпустила Hudi 1.0, которую называют знаковым достижением, определяющим, чего должно достичь следующее поколение озер данных. Hudi стала пионером транзакционных озер данных в 2017 году.

Технология озер данных с открытым исходным кодом для потоковой обработки работает поверх Apache Hadoop и поддерживается как часть Amazon EMR компанией Amazon Web Services.

Название Hudi расшифровывается как Hadoop Upserts Deletes and Incrementals, описывая возможности технологии озера данных. Upserts - это операции, которые вставляют строки в таблицу базы данных, если они еще не существуют, или обновляют их, если они существуют. Hudi обеспечивает потоковую обработку данных поверх облачных хранилищ и распределенных файловых систем, совместимых с Apache Hadoop. Проект был первоначально разработан в Uber в 2016 году и получил открытый исходный код, после чего был представлен в Apache Incubator в январе 2019 года.

Apache Hudi может использоваться для управления озерами данных петабайтного масштаба. Озера данных Hudi предоставляют свежие данные и при этом на порядок эффективнее традиционной пакетной обработки.

Hudi обеспечивает поддержку апсерт и удалений, быструю, подключаемую индексацию, а также транзакционно совместимые фиксацию и откат. Он поддерживает механизмы запросов Apache Hive, Apache Spark, Apache Impala и Presto, а также имеет встроенный инструмент для ввода данных, который поддерживает Apache Kafka, Apache Sqoop и другие распространенные источники данных. Пользователи могут оптимизировать производительность запросов, управляя размерами файлов и расположением хранилищ.

В версии 1.0 добавлено больше программных возможностей, которые напрямую сравнимы с СУБД. В предыдущих версиях механизмы индексирования Hudi обеспечивали высокую производительность обновления, и разработчики хотели обобщить эти возможности для всех писателей и запросов. Они также хотели внедрить новые возможности, такие как быстрые метахранилища для планирования запросов, поддержка неструктурированных/мультимодальных данных и механизмы кэширования, которые могут быть глубоко интегрированы в движки запросов с открытым исходным кодом. Эти возможности были добавлены в слой движка хранения Hudi.

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

Команда планирует распространить преимущества механизма хранения данных на другие форматы таблиц с помощью стандартов взаимодействия, определенных в таких проектах, как Apache XTable.

В этом выпуске также представлен Non-Blocking Concurrency Control (NBCC). Это модель параллелизма общего назначения, предназначенная для использования в потоковой обработке данных или сценариях с высокой интенсивностью и частотой записи. В отличие от Optimistic Concurrency Control, где пишущие прерывают транзакцию при появлении намека на конфликт, это нововведение позволяет выполнять несколько потоковых записей в одну и ту же таблицу Hudi без каких-либо накладных расходов на разрешение конфликтов.

В Hudi 1 также появились новые индексы, которые призваны повысить производительность запросов за счет обрезки разделов и дальнейшего пропуска данных. Новый вторичный индекс позволяет пользователям создавать индексы на столбцах, которые не являются частью столбцов ключей записи в таблицах Hudi. Его можно использовать для ускорения запросов с предикатами на столбцы, отличные от столбцов ключа записи. Также появился новый индекс partition stats, который агрегирует статистику на уровне разделов для столбцов, для которых он включен. Это помогает эффективно обрезать разделы даже для полей, не являющихся разделами. Наконец, индекс выражений позволяет выполнять эффективные запросы к столбцам, полученным из выражений. Он может собирать статистику по столбцам, полученным из выражений, не материализуя их, и может использоваться для ускорения запросов с фильтрами, содержащими такие выражения.

Hudi 1 доступен уже сейчас.

Читайте также