在数据表上创建索引表后,可根据需要读取索引表中的数据或者删除数据表上指定的索引表。
前提条件
- 已初始化Client。具体操作,请参见初始化。
- 已创建数据表,且数据表的数据生命周期(timeToLive)必须为-1,最大版本数(maxVersions)必须为1。
- 数据表已设置预定义列。
创建索引表(CreateIndex)
使用CreateIndex接口在已存在的数据表上创建索引表。
说明 您也可以使用CreateTable接口在创建数据表的同时创建一个或者多个索引表。具体操作,请参见
创建数据表。
- 接口
/** * 创建二级索引。 * @api * * @param [] $request * 请求参数,数据表名称。 * @return [] 请求返回 * @throws OTSClientException 当参数检查出错或服务端返回校验出错时抛出异常。 * @throws OTSServerException 当OTS服务端返回错误时抛出异常。 * @example "src/examples/CreateIndex.php" */ public function createIndex(array $request)
- 参数
参数 说明 table_name 数据表名称。 index_meta 索引表的结构信息,包括如下内容: - name:索引表名称。
- primary_key:索引表的索引列,索引列为数据表主键和预定义列的任意组合。
- defined_column:索引表的属性列,索引表属性列为数据表的预定义列的组合。
- index_update_mode:索引表更新模式,当前只支持IUM_ASYNC_INDEX。
- index_type:索引表类型,当前只支持IT_GLOBAL_INDEX。
include_base_data 索引表中是否包含数据表中已存在的数据。 当设置include_base_data为true时,表示包含存量数据;设置include_base_data为false时,表示不包含存量数据。
- 示例
$request = array( 'table_name' => 'MainTableName', 'index_meta' => array( 'name' => self::$indexName1, 'primary_key' => array('col1'), 'defined_column' => array('col2') ) ); $this->otsClient->createIndex($request);
读取索引表中数据
从索引表中单行或者范围读取数据,当返回的属性列在索引表中时,可以直接读取索引表获取数据,否则请自行反查数据表获取数据。
删除索引表(DropIndex)
使用DropIndex接口删除数据表上指定的索引表。
- 接口
/** * 删除全局二级索引。 * @api * * @param [] $request * 请求参数,数据表名称。 * @return [] 请求返回。 * @throws OTSClientException 当参数检查出错或服务端返回校验出错时抛出异常。 * @throws OTSServerException 当OTS服务端返回错误时抛出异常。 * @example "src/examples/DropIndex.php" */ public function dropIndex(array $request)
- 参数
参数 说明 table_name 数据表名称。 index_name 索引表名称。 - 示例
$request = array ( 'table_name' => 'MainTableName', 'index_name' => 'IndexName' ); $otsClient->dropIndex( $request );