像普通sql一样查询hbase

sak*_*ake 2 sql hadoop hbase

我知道Hbase这不像正常人SQL

但是可以像这样查询 Hbase 吗?

 select row-key from Table 
 where cf:first="ram" and cf:middle="leela" and cf:last="ban";

 // ram(first name) leela(middle name) ban(last name)
Run Code Online (Sandbox Code Playgroud)

Man*_*ath 5

有两种方法可以做到这一点:

  1. 使用Apache Phoenix推荐)。它是 HBase 的强大 SQL 包装器。
  2. 使用阿帕奇蜂巢。Hive 可以使用 HiveQL 创建“外部表”:
CREATE EXTERNAL TABLE employees (
    empid int,
    ename String
)
ROW FORMAT DELIMITED
COLLECTION ITEMS TERMINATED BY '#'
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf:ename")
TBLPROPERTIES ("hbase.table.name" = "employees");
Run Code Online (Sandbox Code Playgroud)