I have a use case where we want to make Hbase-Phoenix as a backend database for a WEB-Application.
The web-app will perform all CRUD operations and the performance should be fast as reply to user must be quick.
Also the web-app will fire search queries on big tables (300M + rows), hence performance should be good.
I want to know, what way of accessing the PhoenixDB will be good,
1) Directly using JDBC drivers
2) Using Query server
Note: Since we are building the app in python, we have some limitations in using JDBC drivers directly.
If you have the ability to use the Phoenix "thick" JDBC driver, do so.
If you have a requirement to access Phoenix via another language, using the QueryServer would be ideal. There isn't a ready-for-production driver to pull off of the shelf for Python, but there is a starting point: https://bitbucket.org/lalinsky/python-phoenixdb
Thanks for the reply Josh.
I'm already exploring the Phoenixdb library for python. But facing too many limitations there.
It has very limited support for Phoenix4.4. No support for DateTime, Array fields etc.
Also I wanted to check whether Query Server will give good performance (reply within 2/3 sec.) in case for search queries on large tables(300 M+ rows).
The limitation on performance will be on Apache Phoenix itself, not the Query Server. Remember, PQS is just a thin-wrapper around the normal Phoenix JDBC driver -- the underlying performance will be dominated by Phoenix itself, not the Query Server.