本章节主要为您介绍如何使用表格存储搭建海量智能元数据管理系统。

前提条件

您已经完成了准备工作

步骤一: 创建数据表

通过以下两种方式创建一张店铺信息表:
  • 通过控制台创建、管理数据表,具体参见创建数据表
  • 通过SDK直接创建、管理数据表。

步骤二: 创建数据表索引

Tablestore自动进行全量、增量的索引数据同步。您可以通过以下两种方式创建、管理多元索引:

步骤三: 导入数据

控制台项目样例中插入了1亿条数据,您可以通过控制台插入少量测试数据。

步骤四: 读取数据

数据读取分为两类:

  • 主键读取

    基于原生表格存储的主键列获取:getRow, getRange, batchGetRow等。主键读取用于索引(自动)反查,用户也可以提供主键(文件编号md5)的单条查询的页面,亿量级下查询速度保持在十毫秒量级。单主键查询方式不支持多维度检索。

  • 索引读取

    基于新SearchIndex功能Query:search接口。用户可以自由设计索引字段的多维度条件组合查询。通过设置选择不同的查询参数,构建不同的查询条件、不同排序方式;目前支持:精确查询、范围查询、前缀查询、匹配查询、通配符查询、短语匹配查询、分词字符串查询、嵌套查询、GEO查询,并通过布尔与、或组合。

    例如,标签为:表格存储,创建时间为:[2018-01-01, 2018-12-01),文件的信息:(SDK与控制查询)

    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);

专家服务

表格存储提供专业的免费的技术咨询服务,欢迎加入我们的钉钉讨论群。