我使用JAVA API通過部分行鍵掃描Bigtable,向後和向前。此代碼的工作很好,但只能向前:Bigtable Scan.setReversed()在版本1.2.1中不起作用?
Scan s = new Scan();
s.setReversed(true);
s.setStartRow(rowKey);
s.setStopRow(rowKeyEnd);
ResultScanner scanner = tbl.getScanner(s);
for (Result row : scanner)
{
String rk = new String(row.getRow());
System.out.println("Row: " + rk);
}
好像行.setReversed(true);
沒有對自己造成任何影響,無論我之前或設置開始和結束排鍵後設置它。如果我切換開始和.setStartRow()
和.setStopRow()
結束行鍵,然後我得到的迭代碼(Result row : scanner)
異常:com.google.bigtable.repackaged.io.grpc.StatusRuntimeException:
所致INVALID_ARGUMENT:現場錯誤「 row_ranges':錯誤的元素#0:start_key必須小於end_key
從這個討論when reversing a Scan in HBase, which is the startKey and which is the stopKey?據我瞭解,反向掃描沒有下文0.98版本,但我看到我的服務器端版本爲1.2 .1在Google Cloud Console中:
hbase(main):023:0>版本 1.2.1,r8d8a7107dc4ccbf3 6a92f64675dc60392f85c015,週三3月30日11點29分35秒CDT 2016
而且,我的客戶端JAR是BigTable中,HBase的-1.2-0.9.4.jar
我排鍵在下列方式格式化,作爲一個測試:
約翰* 1 * XXX
約翰* 2 * XXX
約翰* 3 * XXX
有沒有更好的方式來完成這件事嗎?
感謝有用的職位。我從帖子中瞭解到協處理器也不支持。我有一個關於如何獲得返回掃描的行數的相關問題,這似乎涉及Coprocessor API在這裏:[http://stackoverflow.com/questions/41183912/aggregationclient-rowcount-in-bigtable-api-cant - 獲得,它到工作。我想我不能依靠那個嗎? –