美文网首页大数据学习
Hive使用Beeline的DDL操作

Hive使用Beeline的DDL操作

作者: TZX_0710 | 来源:发表于2020-03-10 13:27 被阅读0次

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';

相关文章

  • Hive使用Beeline的DDL操作

    beeline进入交互命令行 内部表 外部表 分区表 分桶表 分桶表&分区表 导入数据的时候需要指定分区 倾斜表 ...

  • Hive数据操作

    Hive数据操作 Hive执行命令方式 cli,jdbc,hwi,beeline cli shellhive -h...

  • 07 通过webhcat访问hive

    WebHCat提供了Rest接口,使用户能够通过安全的HTTPS协议执行行Hive DDL操作、运行Hive HQ...

  • hive on spark Timed out waiting

    在beeline中使用hive on spark ,报错 由于hive程序的是通过yarn 去跑spark的,到H...

  • beeline 连接hive数据库 2021-02-24

    打开beeline:beeline 交互式登录 命令登录beeline -u jdbc:hive2://127.0...

  • hive笔记之beeline

    beeline 连接hive 建表 查询 聚合运算 一般用beeline连接hive进行建表 !connect j...

  • beeline源码分析

    本文基于hive-1.2.2源码beeline模块在beeline目录下 入口文件 beeline/src/jav...

  • Hive beeline初次使用

    今日份工作填坑。 工作上说从今天开始要用 beeline 的方式输入账号密码访问 hive,之前写的定时脚本都要改...

  • 18Hive中DDL与分区(hive学习1)

    DDL:数据库定义语言DML:数据库操作语言DCL:数据库控制语言Hive的数据类型 Hive完整的DDL建表语法...

  • 大数据分析利器之hive(三)

    大数据分析利器之hive 一、课前准备 安装hive环境 掌握hive sql常见的DDL和DML操作 掌握hiv...

网友评论

    本文标题:Hive使用Beeline的DDL操作

    本文链接:https://www.haomeiwen.com/subject/cepudhtx.html