查询Lastpoint索引数据
本文介绍如何通过Java SDK查询Lastpoint索引数据。
注意事项
表格存储Java 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索引。