Пустой результат Apache Drill при использовании предложения WHERE при запросе HBase

Я новичок в Drill и Hbase.
Я установил Hbase 1.2.1 и Drill 1.9.0 во встроенной конфигурации (с одним хостом). Я включил плагин HBase с параметрами по умолчанию.

У меня есть таблица, к которой мне удалось подключиться и получить:

SELECT CONVERT_FROM(row_key, 'UTF8') as key, 
       CAST(fogDecDB.Location.latitude AS FLOAT) as lat  
FROM fogDecDB LIMIT 10;

который дает

+-------------------------------------------------------------------+------------+
|                                key                                |    lat     |
+-------------------------------------------------------------------+------------+
| 00001e14dbf570471418f1c26384637a3154561bfc32062bbb416bedc165841d  | 51.971     |
| 0000c0ad64df90c8feebd4e191272413d01989c997d0e2aec34cf259f3207ddb  | 52.276943  |
| 00023c7cf936bd1933f8b0f690ae3f347d3fd3131278b4e0372d34dde9586b62  | 52.276943  |
| 0003164d842b488a1a0d8572ae06b983ceb3a645f41531acfe4962ad7ede80a2  | 52.276943  |
| 0003bd065e59d03f3907531279579025f49282a3aa1734d1c4d63df891420c58  | 52.1093    |
| 0006963d79ccf3a71f086f77b26a4db7da09a77c8b2c523fc51e04df4087abbd  | 52.1093    |
| 00069cd1f16dde18f4b6944c81015e4f7113ae447c02743a903814c0e64bb2e8  | 52.1093    |
| 00070d2b641fc506be01c4b0b15f102d01b43d34f0b98f054154d20ea1ad7aa1  | 52.1093    |
| 0007fd3e7db369f258173e7d47c13f81e3cbb48ecf446dd6ad4fe49bda2abcf0  | 52.276943  |
| 0009c8836878a0065a617ba066c5c6ba51a9e29d22c81a8df28be40352efd4bf  | 52.1093    |
+-------------------------------------------------------------------+------------+
10 rows selected (0.18 seconds)

Проблема в том, что я добавляю оператор WHERE для выполнения определенного выбора, например. только строки с широтой> 52,0

Я делаю следующую команду

enter SELECT CONVERT_FROM(row_key, 'UTF8') as key, 
             CAST(fogDecDB.Location.latitude AS FLOAT) as lat  
      FROM fogDecDB 
      WHERE fogDecDB.Location.latitude>52 
      LIMIT 10;

это дает пустую таблицу - очень странно.

Я попытался CAST также в WHERE заявлении fogDecDB.Location.latitude, но результат тот же.

Кто-нибудь может пролить свет на эту проблему. Я, конечно, много гуглил, но безуспешно.

Спасибо заранее.

Ваше здоровье,

Андреа


person andrea pagani    schedule 07.02.2017    source источник
comment
Я бы рекомендовал потратить некоторое время на форматирование вашего кода, чтобы он был удобочитаемым. В его нынешнем состоянии я не уверен, что вы предоставляете   -  person Takarii    schedule 07.02.2017
comment
Спасибо за комментарий, улучшили видимость кода!   -  person andrea pagani    schedule 07.02.2017


Ответы (1)


Я определил проблему, поведение и причину ошибки:

Моя схема HBase для этого столбца, который я пытаюсь выбрать, на самом деле:

fogDecDB.Location.Latitute с большой буквы

однако он каким-то образом идентифицируется и правильно анализируется в части оператора SELECT, даже если он неверен (лексикографически / сопоставление строк), а в части WHERE он почему-то больше не распознается.

О проблеме было сообщено в список рассылки Drill.

person andrea pagani    schedule 07.02.2017