Я только что начал использовать Apache Phoenix на HBase. У нас есть настройка, в которой Phoenix работает при вызове из узлов кластера (мы умеем CRUD в таблицах чисто). Теперь мы хотим, чтобы приложение, работающее за пределами сети (например, система с мобильным приложением), могла запрашивать таблицу Phoenix. Для этого одним из вариантов, которые мы пытаемся использовать, является Phoenix Query Server (PQS). Я заверил, что порт 8765 доступен из внешней сети и поэтому, когда мы используем ниже команды CURL, мы ожидаем, что желаемый результат:Phoenix Query Server не возвращает никаких результатов
[корень @ externalsystem ~] # Curl -XPOST -H «запрос: { «запрос»: «prepareAndExecute», «connectionId»: «000000-0000-0000-00000000», «statementId»: 12345, «sql»: «SELECT * FROM QUESTTWEETS1», «maxRowCount»: 1} 'http://here.comes.external.ip:8765/
Но ответ, который мы получаем:
{ "ответ": "executeResults", "missingStatement": правда, "rpcMetad ата ": {" ответ ":" rpcMetadata " "АдресСервера":" viper.quest.com:8765"},"results":null}
Мы используем HDP 2.3.4.7-4 и приведены в соответствие версии HBase и PQS.
Очень ясно, что я передаю SQL как один из ключей в запросе. Может кто-нибудь, пожалуйста, помогите мне понять, что я делаю неправильно здесь? Кроме того, поскольку целью этого является предоставление доступа к столам Phoenix при высоком уровне параллелизма (которые могут потребовать приложения для мобильных телефонов), является ли PQS достойным решением или есть лучшие варианты доступа к таблицам Phoenix? Поскольку я новичок в использовании HBase и Phoenix, пожалуйста, дайте мне знать, если есть какие-либо другие детали.