本文介紹如何通過Java SDK查詢Lastpoint索引資料。
注意事項
Table StoreJava SDK從5.17.1版本開始支援Lastpoint索引功能。使用該功能時,請將SDK版本升級到5.17.1及以上版本。
說明
如果您需要下載新版本的Java SDK,請參見Java SDK歷史迭代版本。
前提條件
已在時序表上建立Lastpoint索引。具體操作,請參見建立Lastpoint索引。
範例程式碼
以下範例程式碼通過調用GetRange範圍查詢介面讀取Lastpoint索引中的全部資料。
private static void getRange(SyncClient client) {
// 設定Lastpoint索引名稱。
RangeRowQueryCriteria rangeRowQueryCriteria = new RangeRowQueryCriteria("<LASTPOINT_INDEX_NAME>");
// 構造起始主鍵和結束主鍵。起始主鍵均設定為INF_MIN,結束主鍵均設定為INF_MAX。
PrimaryKey startPrimaryKey = PrimaryKeyBuilder.createPrimaryKeyBuilder()
.addPrimaryKeyColumn("_#h", PrimaryKeyValue.INF_MIN)
.addPrimaryKeyColumn("_m_name", PrimaryKeyValue.INF_MIN)
.addPrimaryKeyColumn("_data_source", PrimaryKeyValue.INF_MIN)
.addPrimaryKeyColumn("_tags", PrimaryKeyValue.INF_MIN)
.build();
rangeRowQueryCriteria.setInclusiveStartPrimaryKey(startPrimaryKey);
PrimaryKey endPrimaryKey = PrimaryKeyBuilder.createPrimaryKeyBuilder()
.addPrimaryKeyColumn("_#h", PrimaryKeyValue.INF_MAX)
.addPrimaryKeyColumn("_m_name", PrimaryKeyValue.INF_MAX)
.addPrimaryKeyColumn("_data_source", PrimaryKeyValue.INF_MAX)
.addPrimaryKeyColumn("_tags", PrimaryKeyValue.INF_MAX)
.build();
rangeRowQueryCriteria.setExclusiveEndPrimaryKey(endPrimaryKey);
//設定最大版本數為1。時序表不支援資料多版本功能。
rangeRowQueryCriteria.setMaxVersions(1);
System.out.println("掃描結果為:");
while (true) {
GetRangeResponse getRangeResponse = client.getRange(new GetRangeRequest(rangeRowQueryCriteria));
for (Row row : getRangeResponse.getRows()) {
System.out.println(row);
}
// 如果nextStartPrimaryKey不為null,則繼續讀取資料。
if (getRangeResponse.getNextStartPrimaryKey() != null) {
rangeRowQueryCriteria.setInclusiveStartPrimaryKey(getRangeResponse.getNextStartPrimaryKey());
} else {
break;
}
}
}
相關文檔
如果您想瞭解更多通過Java SDK讀取資料的方式,請參見讀取資料。
如果需要更靈活豐富的資料加速查詢方式,例如多條件組合查詢、全文檢索索引、首碼查詢、模糊查詢等,您可以使用Lastpoint索引的多元索引功能實現。更多資訊,請參見檢索Lastpoint索引。