1、创建表
1.1 建HBase内表
CREATE TABLE hbase_inner_table(
  key1 string,
  bi bigint,
  dc decimal(10,2),
  ch varchar(10),
  ts timestamp,
  en string
)STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler';
-- 创建了一张名为 hbase_inner_table 的内表,存储格式为 HBaseStorageHandler 。 1.2 建HBase外表
CREATE EXTERNAL TABLE hbase_external_table(
  key1 string,
  ex1 double,
  ex3 date,
  ex5 string
)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping"=":key,f:q1,f:q4,f:q5") ①
TBLPROPERTIES ("hbase.table.name"="test.hbase_inner_table");②
-- ① 指定外表 hbase_external_table 和已存在的 hbase_inner_table 表的列映射关系。
-- ② 指定外表 hbase_external_table 中的列与源表的映射关系。映射时数据类型强行转换,转换失败则 为NULL。 2、为内表 hbase_inner_table 添加列
ALTER TABLE hbase_inner_table ADD COLUMNS (bl boolean);
-- 对表hbase_inner_table添加了一个数据类型为 boolean 列bl。 3、清空内表 hbase_inner_table
TRUNCATE TABLE hbase_inner_table;
-- 表中数据被清空,但表的元数据信息仍存在,可通过 DESCRIBE FORMATTED 查看。 4、删除表
DROP TABLE <tableName>; 5、创建索引
5.1 为内表 hbase_inner_table 创建全局索引
CREATE GLOBAL INDEX ch_global ON hbase_inner_table(ch(10));
-- 根据列ch创建一个名为ch_global的全局索引,并指定该索引字段的长度为10. 5.2 为内表 hbase_inner_table 创建全文索引
CREATE FULLTEXT INDEX ON hbase_inner_table(bi,ch,en) SHARD NUM 1;
-- 为内表hbase_inner_table根据列en、cn来创建全文索引 6、删除索引
6.1 删除全局索引:ch_global
DROP INDEX ch_global ON hbase_inner_table; 6.2 删除内表 hbase_inner_table 的全文索引
DROP FULLTEXT INDEX ON hbase_inner_table;
-- 目前HBase不支持使用SQL生成索引,您可以从hbase shell中执行 rebuild 指令来生成索引 7、插入数据
7.1 向hbase_inner_table表中单条插入数据
INSERT INTO hbase_inner_table
VALUES('001',1,1.01,'Hyperbase','2017-01-08 20:31:46','sunday',true);
INSERT INTO hbase_inner_table
VALUES('002',2,2.01,'transwarp hbase','2017-01-09 10:25:45','monday',true);
INSERT INTO hbase_inner_table
VALUES('003',3,3.01,'hbase','2017-01-10 15:05:20','tuesday',false); 7.2 向hbase_inner_table表中批量插入数据
BATCHINSERT INTO hbase_inner_table BATCHVALUES (
VALUES('004',4,4.01,'esdrive','2017-01-11 15:05:20','wednesday',false),
VALUES('005',5,5.01,'transwarp es','2017-01-12 15:18:18','thursday',false),
VALUES('006',6,6.01,'hyperdrive','2017-01-13 05:13:13','friday',false),
VALUES('007',7,7.01,'inceptor','2017-01-14 10:55:20','saturday',false),
VALUES('008',8,8.01,'fulltext','2017-01-15 17:23:40','tuestuesday',false)
); 8、更新数据
update hbase_inner_table set bl=false where key1='001'; 9、删除记录
DELETE FROM hbase_inner_table WHERE key1='001'; 10、利用索引查询
set ngmr.exec.mode=local;
-- 该参数设置完成后才能利用索引进行有效的查询 10.1 全局索引
10.1.1 用全局索引ch_global查询
select/*+USE_INDEX(t1 USING ch_global)*/ * from hbase_inner_table t1 where ch='hbase'and bl=false;
-- 利用全局索引‘ch_global’查询列ch中值为‘hbase’,且列bl值为false的记录。 10.1.2 不使用全局索引进行查询
select/*+USE_INDEX(t1 USING NOT_USE_INDEX)*/ key1, bi, dc, ch, ts, en, bl from hbase_inner_table t1 where ch='hbase'and bl=false;
-- 不利用索引查询列ch值为‘hbase’,且列bl值为false的记录。 10.2 全文索引
10.2.1 精确匹配(term)
select * from hbase_inner_table where contains(en, "term 'tuesday'"); 10.2.2 前缀匹配(prefix)
select * from hbase_inner_table where contains(en, "prefix 'tues'"); 10.2.3 模糊查询(wildcard)
select * from hbase_inner_table where contains(en, "wildcard 'tues*day'");
-- 查询 \* 前的字符 tues出现任意次,且以 day结尾记录。 10.2.4 多个操作符查询
select * from hbase_inner_table where contains(en, "wildcard 'tues*day'") and contains(bi,"term '3'"); 10.2.5 in表达式(in)//枚举
select * from hbase_inner_table where contains(en, "in 'sunday,monday'"); 10.2.6 正则表达式(regexp)
select * from hbase_inner_table where contains(en, "regexp 's.*y'");
-- 查询en列满足正则表达式为 's.*y' 的记录,.* 表示 s和 y间可出现任意个字符。 10.2.7 全文检索(match)
select * from hbase_inner_table where contains(en, "match 'tuesday'");
-- 不要对非 STRING 类型进行模糊、前缀、正则等查询。如果是对数字类型的进行范围查询,则需保证该列的数据类型为 #b 才可以 10.2.8 范围查询
select * from hbase_inner_table where contains(bi, "> '6'"); 10.2.9 范围表达式(range)
select * from hbase_inner_table where contains(bi, "range '[1,3)'");

Hyperbase常用SQL的更多相关文章

  1. Mysql 常用 SQL 语句集锦

    Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...

  2. oracle(sql)基础篇系列(一)——基础select语句、常用sql函数、组函数、分组函数

        花点时间整理下sql基础,温故而知新.文章的demo来自oracle自带的dept,emp,salgrade三张表.解锁scott用户,使用scott用户登录就可以看到自带的表. #使用ora ...

  3. 常用SQL[ORACLE]

        1.常用系统函数 2.常用sql语句 3.一些定义和关键字 4.需要注意点   1.常用系统函数 ↑ --decode decode(column,if_value,value,elseif_ ...

  4. Oracle常用SQL查询(2)

    三.查看数据库的SQL 1 .查看表空间的名称及大小 select  t.tablespace_name,  round ( sum (bytes / ( 1024 * 1024 )), 0 ) ts ...

  5. Oracle常用SQL查询

    一.ORACLE的启动和关闭 1.在单机环境下要想启动或关闭oracle系统必须首先切换到oracle用户,如下: su - oracle a.启动Oracle系统 oracle>svrmgrl ...

  6. Mysql 常用 SQL 语句集锦 转载(https://gold.xitu.io/post/584e7b298d6d81005456eb53)

    Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...

  7. 50个常用SQL语句

    50个常用SQL语句 Student(S#,Sname,Sage,Ssex) 学生表  S#学号,主键 Course(C#,Cname,T#) 课程表          C#课程号,主键 SC(S#, ...

  8. 测试常用SQL注入语句大全

    转载自Cracer,标题:<渗透常用SQL注入语句大全>,链接http://www.xxxx.com/?p=2226 1.判断有无注入点 整形参数判断 1.直接加' 2.and 1=1 3 ...

  9. oracle sqlplus及常用sql语句

    常用sql语句 有需求才有动力 http://blog.csdn.net/yitian20000/article/details/6256716 常用sql语句 创建表空间:create tables ...

随机推荐

  1. Lesson_strange_words6

    stylized 有艺术效果的 slide 幻灯片,滑动 template 模板,样板 grasp 掌握,领悟 factor 因素 twisted pair cable 双绞线 twisted 扭曲的 ...

  2. 【JavaWeb】Servlet 程序

    Servlet 程序 Servlet Servlet 是在 Web 服务器中运行的小型 Java 程序.Servlet 通常通过 HTTP(超文本传输​​协议)接收和响应来自 Web 客户端的请求. ...

  3. 【MyBatis】MyBatis 延迟加载策略

    MyBatis 延迟加载策略 文章源码 什么是延迟加载 延迟加载,就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据,也被成为懒加载. 好处:先从单表查询,需要时再从关联表去关联查询,大大提 ...

  4. RabbitMQ常用的几种消息模型

    第一种模型(HelloWorld) 上图来自官方文档 P代表生产者用来生产消息,发送给消费者C,中间的共色部分代表消息队列,用来缓存消息. 首先导入依赖 <dependency> < ...

  5. Java设计模式精讲之UML急速入门

    简单记录 - 慕课网 - Java设计模式精讲 Debug方式+内存分析 文章目录 第2章 UML急速入门 2-1.UML简单入门 UML定义 UML特点 UML 2.2分类 UML类图 理解泛化.实 ...

  6. ctfhub技能树—sql注入—Refer注入

    手注 查询数据库名 查询数据表名 查询字段名 查询字段信息 脚本(from 阿狸) #! /usr/bin/env python # _*_ coding:utf-8 _*_ url = " ...

  7. 详解MySQL执行事务的语法和流程

    摘要:MySQL 提供了多种存储引擎来支持事务. MySQL 提供了多种存储引擎来支持事务.支持事务的存储引擎有 InnoDB 和 BDB,其中,InnoDB 存储引擎事务主要通过 UNDO 日志和 ...

  8. 利用sql_tuning_Advisor调优sql

    1.赋权给调优用户 grant ADVISOR to xxxxxx; 2.创建调优任务 使用sql_text创建 DECLARE my_task_name VARCHAR2 (30); my_sqlt ...

  9. 让 Mongoose 不再重复链接数据库(如何正确连接以解决升级后的报错)

    升级了 Mongoose 后,发现项目打不开了.报错: MongooseError: You can not `mongoose.connect()` multiple times while con ...

  10. 干电池1.5V升压3.3V芯片电路图

    1.5V升压3.3V的芯片 PW5100 是一款大效率.10uA低功耗.低纹波.高工作频率1.2MHZ的 PFM 同步升压 DC/DC 变换器.输入电压可低0.7V,输入电压范围0.7V-5V之间,输 ...