我知道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)
有两种方法可以做到这一点:
- 使用 Apache Phoenix(推荐)。它是HBase的强大SQL包装器。
- 使用 Apache Hive。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");