Выпущен Apache Phoenix 5.0. Это основное обновление версии, обеспечивающее совместимость с HBase до 2.0+ и поддержку Apache Hadoop 3.0.
Phoenix добавляет поддержку OLTP на основе SQL и оперативной аналитики для Apache Hadoop, используя Apache HBase в качестве резервного хранилища. Он также обеспечивает интеграцию с другими проектами в экосистеме Apache, такими как Spark, Hive, Pig, Flume и MapReduce.
Phoenix предоставляет оболочку SQL с открытым исходным кодом для HBase. Вы используете его через стандартные API-интерфейсы JDBC вместо клиентских API-интерфейсов HBase для создания таблиц, вставки данных и запроса данных HBase. Он компилирует запросы SQL для сканирования HBase и может использоваться для доступа к данным, которые хранятся и создаются в других продуктах Hadoop, таких как Spark, Hive, Pig, Flume и MapReduce. Phoenix использует вторичные индексы для ускорения запросов и использует параллельную обработку, выполняя агрегированные запросы через обработчики на стороне сервера (называемые сопроцессорами). Это означает, что запросы выполняются на узлах, где хранятся данные, что значительно снижает необходимость отправки данных по сети.
Новый выпуск имеет те же функции, что и недавно выпущенная версия 4.14.0. Разработчики говорят, что основные моменты выпуска начинаются с очистки устаревших API-интерфейсов, которые были включены для поддержки HBase 0.98, а вместо этого были введены в действие новые производительные API-интерфейсы, поддерживающие HBase 2.0.
Разработчики также реорганизовали реализации сопроцессоров, чтобы использовать новые API сопроцессора или наблюдателя в HBase 2.0.
Помимо поддержки HBase и Hadoop, интеграция Hive и Spark в новой версии работает в последних версиях Hive (3.0.0) и Spark (2.3.0) соответственно.
В выпуске есть несколько новых функций, помимо поддержки HBase 2.0. Пространства имен HBase теперь отображаются в Phoenix. HBase поддерживает концепцию пространств имен в форме myNamespace: MyTable, и теперь Phoenix может использовать эту функцию, чтобы добавить функцию, подобную базе данных, поверх таблицы.
Усовершенствования для MySQL включают поддержку предложения Limit + Offset при создании запроса с указанием Serial или Limit без Order By. Это означает, что вы можете ограничить каждое сканирование с помощью фильтра страниц. В предыдущей версии можно было использовать только ограничение. Новая версия позволяет вам перенаправить соответствующие клиентские итераторы на указанное смещение, а затем вернуть результат.
Последнее улучшение обеспечивает лучшую обработку соединений Big * Big. Phoenix уже поддерживал хэш-соединения и соединения сортировки-слияния, но они не очень хорошо обрабатывались, когда обе стороны соединения были большими. В новом выпуске есть обработчик Hive-Phoenix, который может обращаться к таблице Apache Phoenix на HBase с помощью HiveQL. Это намного быстрее, чем обработчик Hive-HBbase, потому что обработчик Hive-Phoenix применяет Predicate push down.