Apache Phoenix compiles SQL to optimized native HBase calls and thus delivers a bridge between HBase and a relational model and approach to manipulate data. Phoenix takes SQL queries, compiles them into table scans through a heavy use of HBase coprocessors, and exposes the results via a JDBC interface.
For more details on Phoenix mechanics and its envisaged use cases, check out the Apache Phoenix project website.
HFactory Tools takes a totally different route. Instead of trying to put back the SQL in NoSQL, which too often ends up in inadequate design choices, it focuses on exposing HBase data as standard JSON objects. For the new kind of data applications and web services that are being developed today, this appears to us as both a more natural and better-perfoming approach.
Learn more on our approach in the “Why use HFactory Tools” section.
Overall, we believe Apache Phoenix and HFactory Tools are quite complementary solutions. They both aim at simplifying the iteraction with HBase, taking very different technical routes. So really the choice between the two will depend heavily on your project specific requirements and objectives. Check out our “Use cases” section to see when you should definitely use HFactory Tools.
And you can even decide to use them in parallel! Design constraints may for example differ between operational tables that need to be accessed by high-performance web services and contextual tables mapping to traditional enterprise SQL schemas.