您可以使用CreateIndex接口创建全局二级索引,也可以使用CreateTable接口在建表时直接创建全局二级索引。

CreateIndex

您可以使用创建索引表(CreateIndex)接口,在一张已经存在的主表上创建全局二级索引表。

接口
    /**
     * 创建二级索引。
     * @api
     *
     * @param [] $request
     *            请求参数,表名。
     * @return [] 请求返回
     * @throws OTSClientException 当参数检查出错或服务端返回校验出错时
     * @throws OTSServerException 当OTS服务端返回错误时
     * @example "src/examples/CreateIndex.php" 20
     */
    public function createIndex(array $request)
示例
$request = array(
    'table_name' => 'MainTableName',
    'index_meta' => array(
        'name' => self::$indexName1,
        'primary_key' => array('col1'),
        'defined_column' => array('col2')
    )
);
$this->otsClient->createIndex($request);

CreateTable

建表时直接创建全局二级索引。

示例
$request = array (
    'table_meta' => array (
        'table_name' => self::$tableName, // 表名为 testGlobalTableName
        'primary_key_schema' => array (
            array('PK0', PrimaryKeyTypeConst::CONST_INTEGER),
            array('PK1', PrimaryKeyTypeConst::CONST_STRING)
        ),
        'defined_column' => array(
            array('col1', DefinedColumnTypeConst::DCT_STRING),
            array('col2', DefinedColumnTypeConst::DCT_INTEGER)
        )
    ),

    'reserved_throughput' => array (
        'capacity_unit' => array (
            'read' => 0, // 预留读写吞吐量设置为:0个读CU,和0个写CU
            'write' => 0
        )
    ),
    'table_options' => array(
        'time_to_live' => -1,   // 数据生命周期, -1表示永久,单位秒
        'max_versions' => 1,    // 最大数据版本
        'deviation_cell_version_in_sec' => 86400  // 数据有效版本偏差,单位秒
    ),
    'index_metas' => array(
        array(
            'name' => self::$indexName1,
            'primary_key' => array('col1'),
            'defined_column' => array('col2')
        ),
        array(
            'name' => self::$indexName2,
            'primary_key' => array('PK1'),
            'defined_column' => array('col1', 'col2')
        )
    )
);
$this->otsClient->createTable($request);