Hello,
We have just started using Apache Phoenix on HBase. We have a setup where
Phoenix is working (We are able to CRUD in tables cleanly). Now, we want an
application running outside the network (say a system hosting a mobile app)
to be able to query Phoenix table. For that, one of the options we are
trying is using Phoenix Query Server (PQS). I have ensured that the port
8765 is accessible from outside network and so, when we use below CURL
command, we expect the desired result:
[root@externalsystem ~]# curl -XPOST -H
'request:{"request":"prepareAndExecute","connectionId":"000000-0000-0000-000
00000","statementId": 12345,"sql": "SELECT * FROM
QUESTTWEETS1","maxRowCount":1}' <http://here.comes.external.ip:8765/>
http://here.comes.external.ip:8765/
But the response which we get is:
{"response":"executeResults","missingStatement":true,"rpcMetadata":{"respons
e":"rpcMetadata","serverAddress":" <http://viper.quest.com:8765/>
viper.quest.com:8765"},"results":null}
We are using HDP 2.3.4.7-4 and aligned versions of HBase and PQS.
Very clearly, I am passing the SQL as one of the keys in the request. Can
somebody please help me understand what am I doing wrong here? Additionally,
since the goal of this is to provide a way to access Phoenix tables at high
concurrency (which moble apps can demand), is PQS a decent solution or there
are any better options to access Phoenix tables? Since I am a newbie in
using HBase and Phoenix, please let me know if there are any other details
required.
Best Regards
Puneeth