Проблема Apache Phoenix с упорядочением по порядку и смещению, дающая дублирующие результаты в подкачке - PullRequest
1 голос
/ 06 ноября 2019

Я использую order by со смещением для подкачки в Apache Phoenix. Я получаю повторяющиеся результаты на следующей странице.

У меня есть вид таблицы HBase в Apache Phoenix. Я использую TO_NUMBER (), чтобы преобразовать мой строковый столбец в целое число. Я хочу отсортировать этот преобразованный столбец в порядке убывания.

Пример: у меня есть представление Hbase, например:

 ------------------------------
| TITLE      |   COUNT          |
  ------------------------------
| t8         | 10               |
  ------------------------------
| t9         | 2                |
| t4         | 1                |
| t6         | 1                |
| t10        | 1                |
| t7         | 1                |
| t43        | 0                |
| t14        | 0                |
| t11        | 0                |
| t42        | 0                |

Мой запрос:

Select TITLE,COUNT from Hbase_view order by TO_NUMBER(COUNT) desc limit 5 offset 0;

Результат:

+------------+------------------+
| TITLE      |   COUNT          |
+------------+------------------+
| t8         | 10               |
| t9         | 2                |
| t4         | 1                |
| t7         | 1                |
| t10        | 1                |

Следующий запрос:

Выберите TITLE, COUNT из порядка Hbase_view по TO_NUMBER (COUNT) предел предела desc 5, смещение 5;

result:

+------------+------------------+
| TITLE      |        COUNT     |
+------------+------------------+
| t7         | 1                |
| t43        | 0                |
| t14        | 0                |
| t11        | 0                |
| t42        | 0                |
+------------+------------------+

Здесь t7 повторяется для обоих результатов.

Ожидаемый результат:

1st Query:-
+------------+------------------+
| TITLE      |COUNT             |
+------------+------------------+
| t8         | 10               |
| t9         | 2                |
| t4         | 1                |
| t6         | 1                |
| t10        | 1                |

2nd Query
+------------+------------------+
| TITLE      |COUNT             |
+------------+------------------+
| t7         | 1                |
| t43        | 0                |
| t14        | 0                |
| t11        | 0                |
| t42        | 0                |
+------------+------------------+

Пожалуйста, помогите мне узнать, что именно является проблемой? Кроме того, я хочу знать, можно ли использовать CURSOR для той же цели?

1 Ответ

0 голосов
/ 11 ноября 2019

Ну, я думаю, потому что все эти записи имеют одинаковое количество:

| t4    | 1 |
| t6    | 1 |           
| t10   | 1 |           
| t7    | 1 |

С помощью вашего запроса вы не можете гарантировать порядок этих 4 записей, и поэтому ваш запрос разбивки на страницы не будет работать так, как вы ожидаете.

Вы также можете попытаться добавить заголовок в поле «ORDER BY» в качестве столбца второго порядка. И у вас должны быть более последовательные результаты.

...