从HBase增强版Shell访问页面下载最新版本的HBase Shell,并根据Shell使用指导完成Shell访问HBase的相关配置,同时需要确认配置好白名单。
HBase实例中创建表
hbase(main):002:0> create 'testTable', {NAME => 'f'}
上面的命令在HBase中创建了一张名为testTable
,列族ColumnFamily为f
的表。
Search实例中创建索引
在Search实例的控制台,单击数据库连接
可以看到WebUI访问
。注意:使用前需要设置好访问白名单和访问密码。
config set
可以选择_indexer_default
作为配置集,numShards
设置为节点个数,其它采用默认值即可。
建立映射关系
假设我们需要将testTable
表中f:name
这一列(列族为f,列名为name )映射到索引表democollection
的name_s
这一列。于是我们将下述JSON写入到一个文件中,如schema.json
{
"sourceNamespace": "default",
"sourceTable": "testTable",
"targetIndexName": "democollection",
"indexType": "SOLR",
"rowkeyFormatterType": "STRING",
"fields": [
{
"source": "f:name",
"targetField": "name_s",
"type": "STRING"
}
]
}
备注:JSON文件中各个参数的含义参见HBase索引管理。
在HBase shell中执行:
hbase(main):006:0> alter_external_index 'testTable', 'schema.json'
等待命令结束后,索引映射关系就已经创建完毕。
HBase中写入数据
写入数据参见使用 Java API访问增强版集群,这里使用Shell写入一条示例数据
hbase(main):008:0> put 'testTable', 'row1', 'f:name', 'foo'
Took 0.1697 seconds
Search实例中查询数据
在Search的WebUI中,选中刚才创建的索引democollection
,单击Query
查询,就可以查到刚才写入的一行数据。
查询HBase
在Search的使用场景中,一般是将HBase表一行数据的部分列同步到Search实例,即只需要将那些需要多维查询的列配置到映射JSON文件中。通过Search查询的结果中,每行数据都会有一个列id
,这个id
即为这一行数据在HBase表中的rowkey。拿到这个rowkey后,回查HBase,就可以获得完整数据。