排序依据和偏移量的 Apache phoenix 问题在分页中给出重复结果

Apache phoenix problem with order by and offset giving duplicate results in paging

我在 apache phoenix 中使用 order by with offset 进行分页。我在下一页得到了重复的结果。

我在 Apache phoenix 中查看了 HBase table。我正在使用 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                |

下一个查询:

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

结果:

+------------+------------------+
| 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 可以用于相同的目的吗?

好吧,我想是因为所有这些记录的数量都相等:

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

对于您的查询,您无法保证这 4 条记录的顺序,因此您的分页查询将无法按预期工作。

您也可以尝试在 'ORDER BY' 中添加标题作为第二列。你应该有更一致的结果。