本文主要介绍如何使用表格存储搭建海量智能元数据管理系统。
前提条件
已完成准备工作。
步骤一: 创建数据表
通过以下两种方式创建一张店铺信息表:
通过控制台创建和管理数据表。具体操作,请参见创建数据表。
通过SDK直接创建和管理数据表。
步骤二: 创建数据表索引
Tablestore会自动进行全量、增量的索引数据同步。您可以通过以下两种方式创建和管理多元索引:
通过控制台创建和管理多元索引,具体参见通过控制台使用多元索引。
通过SDK创建和管理多元索引。
步骤三: 导入数据
控制台项目样例中插入了1亿条数据,您可以通过控制台插入少量测试数据。
步骤四: 读取数据
数据读取包括如下两种方式:
主键读取
通过getRow, getRange, batchGetRow等接口基于原生表格存储的主键列读取数据。主键读取用于索引(自动)反查,您也可以提供主键(文件编号md5)的单条查询的页面,亿量级下查询速度保持在十毫秒量级。单主键查询方式不支持多维度检索。
索引读取
通过多元索引的search接口基于多元索引读取数据。您可以自由设计索引字段的多维度条件组合查询。通过设置不同的查询参数构建不同的查询条件和不同排序方式。目前支持精确查询、范围查询、前缀查询、匹配查询、通配符查询、短语匹配查询、多词精确查询、嵌套查询、地理位置查询等查询方式,多个查询支持通过布尔与、或组合使用。更多信息,请参见多元索引介绍。
例如通过SDK与控制查询标签为
表格存储
,创建时间为[2018-01-01, 2018-12-01)
,文件类型为image
的文件信息。List<Query> mustQueries = new ArrayList<Query>(); //嵌套字段Query TermQuery termQuery = new TermQuery(); termQuery.setFieldName("tags.tag"); termQuery.setTerm(ColumnValue.fromString("表格存储")); NestedQuery nestedQuery = new NestedQuery(); nestedQuery.setPath("tags"); nestedQuery.setScoreMode(ScoreMode.Avg); nestedQuery.setQuery(termQuery); mustQueries.add(nestedQuery); //范围Query RangeQuery rangeQuery = new RangeQuery(); rangeQuery.setFieldName("createdAt"); rangeQuery.setFrom(ColumnValue.fromLong(1514793600000, true); rangeQuery.setTo(ColumnValue.fromLong(1543651200000, false); mustQueries.add(rangeQuery); //精确Query TermQuery termQuery = new TermQuery(); termQuery.setFieldName("type"); termQuery.setTerm(ColumnValue.fromString("image")); mustQueries.add(termQuery); BoolQuery boolQuery = new BoolQuery(); boolQuery.setMustQueries(mustQueries);
技术支持
表格存储为您提供专业的免费的技术咨询服务,欢迎通过钉钉加入相应交流群。
为互联网应用、大数据、社交应用等开发者提供的最新技术交流群有36165029092(
表格存储技术交流群-3
)。说明表格存储用户群11789671(
表格存储技术交流群
)和23307953(表格存储技术交流群-2
)已满,暂时无法加入。为物联网和时序模型开发者提供的技术交流群有44327024(
物联网存储 IoTstore 开发者交流群
)。