從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,就可以獲得完整資料。