|Apache Phoenix Now HBase 2.0 Compatible|
|Written by Kay Ewbank|
|Friday, 20 July 2018|
Apache Phoenix 5.0 has been released. This is a major version upgrade to bring the compatibility for HBase to 2.0+, and to support Apache Hadoop 3.0.
Phoenix adds support for SQL-based OLTP and operational analytics for Apache Hadoop using Apache HBase as its backing store. It also provides integration with other projects in the Apache ecosystem such as Spark, Hive, Pig, Flume, and MapReduce.
Phoenix provides an open source SQL skin for HBase. You use it via standard JDBC APIs instead of the HBase client APIs to create tables, insert data, and query your HBase data. It compiles SQL queries to native HBase scans, and can be used to access data stored and produced in other Hadoop products such as Spark, Hive, Pig, Flume, and MapReduce. Phoenix uses secondary indexes to make queries faster, and makes use of parallel processing by executing aggregate queries through server-side hooks (called co-processors). This means queries are executed on the nodes where data is stored, greatly reducing the need to send data over the network.
The new release has feature parity with the recently released 4.14.0 version. The developers say that highlights of the release start with a clean up of deprecated APIs that were included to support HBase 0.98, and new performant APIs supporting HBase 2.0 have been brought into use instead.
The developers have also refactored coprocessor implementations to make use new Coprocessor or Observer APIs in HBase 2.0.
Alongside the support for HBase and Hadoop, the Hive and Spark Integration in the new version work in the latest versions of Hive (3.0.0) and Spark (2.3.0) respectively.
There are some new features in the release alongside the HBase 2.0 support. HBase namespaces are now surfaced in Phoenix. HBase supports the concept of namespaces in the form of myNamespace:MyTable, and Phoenix can now make use of this feature to give a database-like feature on top of the table.
Improvements for MySQL include support for its Limit +Offset clause when creating a query with a Serial hint or a Limit without an Order By. This means that you can limit each scan using a page filter. The previous version could only use Limit. The new version enables you to forward the relevant client iterators to the offset provided and then return the result..
The final improvement provides better handling of Big*Big joins. Phoenix already supported hash joins and sort-merge joins, but they were not processed very well when both sides of the join were large. The new release has a Hive-Phoenix handler that can access an Apache Phoenix table on HBase using HiveQL. This is much faster than the Hive-HBbase handler because the Hive-Phoenix handler applys Predicate push down.
or email your comment to: email@example.com