创建索引
without data模式创建的索引表无数据填充。with data模式创建的索引表有数据填充。
without data模式创建
执行以下命令即可创建索引表,创建成功后索引表为空,无数据填充。
hbase com.huawei.boostkit.hindex.mapreduce.GlobalTableIndexer -Dtablename.to.index=tablename -Dindexspecs.to.add='idx_0=>cf_0:[q_0->STRING],[q_1];cf_1:[q_0->STRING],[q_1]#idx_1=>cf_0:[q_1->STRING],[q_2];cf_1:[q_1->STRING],[q_2]' -Dindexspecs.covered.to.add='idx_0=>cf_0:[q_0];cf_1:[q_0]#idx_1=>cf_0:[q_0];cf_1:[q_0]'
参数 |
说明 |
---|---|
tablename.to.index |
表示创建索引的数据表的名称。 |
indexspecs.to.add |
表示索引名与对应数据表的列的映射,不会填充索引表数据。 |
indexspecs.covered.to.add(可选) |
表示索引中冗余存储的数据表的列(覆盖列定义)。 |
参数值 |
说明 |
---|---|
idx_0、idx_1 |
表示索引名称。 |
cf_0、cf_1 |
表示列族名称。 |
q_0、q_1、q_2 |
表示列名称。 |
STRING |
表示数据类型。支持STRING、INTEGER、FLOAT、LONG、DOUBLE、SHORT、BYTE和CHAR。 |
'#' |
表示分隔索引。 |
';' |
表示分隔列族。 |
',' |
表示分隔列限定符。 |
- 列名及其数据类型应包含在'[]'中。
- 列名及其数据类型通过'->'分隔。
- 如果未指定具体列的数据类型,则使用默认数据类型(STRING)。
- 索引列选择建议:由于基于索引查询时,查询条件必须包含第一列索引列。因此优先选择用作查询条件且选择率高的列作为索引列中的第一列。
- 创建索引时主备Master切换,会导致请求返回错误,不过创建流程可能会在备Master中执行成功,可以查询相关元数据信息校验。
with data模式创建
执行以下命令即可创建索引表并填充数据,创建成功后得到有索引数据的完整索引表。
hbase com.huawei.boostkit.hindex.mapreduce.GlobalTableIndexer -Dtablename.to.index=tablename -Dindexspecs.to.addandbuild='idx_0=>cf_0:[q_0->STRING],[q_1];cf_1:[q_0->STRING],[q_1]#idx_1=>cf_0:[q_1->STRING],[q_2];cf_1:[q_1->STRING],[q_2]' -Dindexspecs.covered.to.add='idx_0=>cf_0:[q_0];cf_1:[q_0]#idx_1=>cf_0:[q_0];cf_1:[q_0]'
参数 |
说明 |
---|---|
tablename.to.index |
表示创建索引的数据表的名称。 |
indexspecs.to.addandbuild |
表示索引名与对应数据表的列的映射,会填充索引表数据。 |
indexspecs.covered.to.add(可选) |
表示索引中冗余存储的数据表的列(覆盖列定义)。 |
参数值 |
说明 |
---|---|
idx_0、idx_1 |
表示索引名称。 |
cf_0、cf_1 |
表示列族名称。 |
q_0、q_1、q_2 |
表示列名称。 |
STRING |
表示数据类型。支持STRING、INTEGER、FLOAT、LONG、DOUBLE、SHORT、BYTE和CHAR。 |
'#' |
表示分隔索引。 |
';' |
表示分隔列族。 |
',' |
表示分隔列限定符。 |
- 列名及其数据类型应包含在'[]'中。
- 列名及其数据类型通过'->'分隔。
- 如果未指定具体列的数据类型,则使用默认数据类型(STRING)。
- 索引列选择建议:由于基于索引查询时,查询条件必须包含第一列索引列。因此优先选择用作查询条件且选择率高的列作为索引列中的第一列。
- 创建索引时主备Master切换,会导致请求返回错误,不过创建流程可能会在备Master中执行成功,可以查询相关元数据信息校验。