创建索引
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中执行成功,可以查询相关元数据信息校验。