Hive使用Beeline的DDL操作

beeline进入交互命令行

beeline -u jdbc:hive2://node01:10000 -n root
--查看数据库列表
show databases;
--使用数据库
use database_name;
--创建数据库
create database if not exists hive_db
comment 'hive database'--数据库注释
location 'hiveDB'--存放在HDFS的路径
with dbproperties ('create='MrTan'')--数据库额外属性 创建者
--查看数据库信息
desc hive_db;
--删除数据库
drop database if exists hive_db cascade;--cascade级联删除 如果数据库中存在表默认行为是 restrict会删除失败

内部表

create table user_in (
stuNo int ,
stuName string
)
row format delimited fields terminated by '\t';

外部表

create external  table user_out(
stuNo  int,
stuName string,
age int,
sex char(1)
)row format delimited fields terminated by "\t"--指定使用的分隔符
location "/hive/studentNo" --存放在hdfs上的位置

分区表

 create external table user_partition(
userNo int,userName string
)
partitioned by(deptNo int)--根据部门字段分区 在查询数据的时候deptNo如果为1就到1的分区当中查找 如果为2就到2的分区中去查找数据
row format delimited fields terminated by '\t' 
location '/hivedb/emp_partition';存储位置

分桶表

CREATE external TABLE user_bucket(
stuNo INT,stuName STRING)
clustered BY(stuNo) sorted BY (stuNo) INTO 4 buckets --根据学生编号分桶现在是分4个桶 对stuNo进行取模  也就是说stuNo /4 余数相同的会在一个文件 所以会产生4个文件 
ROW FORMAT delimited FIELDS TERMINATED BY '\t'
location '/user_bucket';

分桶表&分区表

导入数据的时候需要指定分区

CREATE TABLE page_view_bucketed(
    viewTime INT, 
    userid BIGINT,
    page_url STRING, 
    referrer_url STRING,
    ip STRING )
 PARTITIONED BY(dt STRING)
 CLUSTERED BY(userid) SORTED BY(viewTime) INTO 32 BUCKETS
 ROW FORMAT DELIMITED
   FIELDS TERMINATED BY '\001'
   COLLECTION ITEMS TERMINATED BY '\002'
   MAP KEYS TERMINATED BY '\003'
 STORED AS SEQUENCEFILE;

倾斜表

create external table stu_skewed(
stuNo int,
stuName string
)
skewed by (stuNo)on(4,7,9)--设置倾泄值 设置的数据为严重倾斜,这些数据会单独成立一个文件,查询的时候直接从独立文件拉取值
row format delimited fields terminated by '\t'
location '/stu_skewed';

临时表

临时表仅对当前session可见,临时表的数据将暂时存储在用户的暂存目录中,并在会话结束后删除。如果临时表跟永久表名称相同,则对该表的任何引用都会解析成临时表。临时表不支持分区,不支持创建索引

create temoirary table stu_temp(
stuNo int,
stuName string
)row format delimited fields terminated by '\t';

复制表结构

create temporary external table if not exists stu_co like users;

加载本地数据文件到表中

load data local inpath "/usr/local/user.txt" into table users;--加载user文本文件到users表中

重命名表

alter table users rename to stu;--修改users表为stu

修改列

alter table stu users change stuNo No int;--修改列名
alter table stu change No stuNo int,after stuName--修改No名称为stuNo,并将放在stuName后面
--为字段增加注释
alter table stu change stuNo No int comment ‘学生编号’

清空表

truncate table users;>>目前只有内部表才可以执行truncate  外部表执行报错Cannot truncate non-managed table users.

删除表

drop table users if exists users;#内部表不仅删除表的数据,同时会删除HDFS上的数据,外部表删除的时候只会删除元数据,不会删除HDFS上的数据

sql插入数据

#插入数据可以使用sql插入
insert into table  users  values()
#更新语句
update users set No=12 where No=1
#删除数据
delete from users where No=11

查看表信息

#查看表
show tables
#查看数据库
show tables;
#查看创建视图或者表语句
show create  table tableName/viewName

Hive高级查询

#MAPJOIN 用来标记小表,如果所有表只有一张是小表。Hive把这张小表加载到内存中
select /*+MAPJOIN(d)*/  from user

#STREAMTABLE 在多表进行联结的时候,
#如果每个 ON 字句都使用到共同的列(如下面的 b.key)
#,此时 Hive 会进行优化,将多表 JOIN 在同一个 map / reduce 作业上进行。
#同时假定查询的最后一个表(如下面的 c 表)是最大的一个表,
#在对每行记录进行 JOIN 操作时,
#它将尝试将其他的表缓存起来,然后扫描最后那个表进行计算。因此用户需要保证查询的表的#大小从左到右是依次增加的。

SELECT /*+ STREAMTABLE(d) */  e.*,d.* 
FROM emp e JOIN dept d
ON e.deptno = d.deptno
WHERE job='CLERK';
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350