Phoenix is implemented as a JDBC driver. It makes use of various HBase features such as coprocessors and filters to push predicates into the server as much as possible. Queries are parallelized across RegionServers.
Phoenix has a formal data model that includes making use of the row key structure for optimization.
Currently Phoenix is limited to single table operations.