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 )映射到索引表democollectionname_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中写入数据

写入数据参见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,就可以获得完整数据。