一:分区表
- 简介
- 创建分区表语法
- 加载数据到分区表中
- 查询分区表中数据
- 多分区联合查询
- 增加分区
⑴创建单个分区
⑵同时创建多个分区
- 查看分区表有多少分区
- 删除分区
a:删除单个分区
b:删除多个分区
- 创建二级分区表
- 导入数据
二:把数据直接上传到分区目录上,让分区表和数据产生关联的三种方式
- 方式一:上传数据后修复
⑴创建目录
⑵上传数据
⑶查询数据,发现刚刚上传的20190824没有数据
⑷执行修复命令:msck repair table dept_partition2;
- 方式二:上传数据后添加分区
⑴上传数据
⑵执行添加分区
⑶查询数据
- 方式三:上传数据后 load 数据到分区
⑴ 创建目录,上传数据
⑵查询数据
三:修改表
- 重命名表
- 增加/修改/替换列信息
四:数据导入
- 向表中装载数据(Load)
⑴语法:load data [local] inpath '/opt/module/datas/student.txt' [overwrite] into table student [partition (partcol1=val1,…)];
⑵实操案例
a:创建一张表
b:加载本地文件到 hive
c: 上传文件到 HDFS ,加载 HDFS 上数据
d:加载数据覆盖表中已有的数据
- 通过查询语句向表中插入数据(Insert)
五:数据导出
- 将查询的结果格式化导出到本地
命令:insert overwrite local directory '/opt/module/datas/export/student'
row format delimited fields terminated by '\t' select * from student ;
- 将查询的结果导出到 HDFS 上(没有 local)
命令:insert overwrite directory '/user/kgf/student' row format delimited fields terminated by '\t' select * from student;
- Hadoop 命令导出到本地
命令:dfs -get /user/hive/warehouse/dept_partition2/month=201907/day=23 /opt/module/datas/export/;
- Hive Shell 命令导出
- Export 导出到 HDFS 上
- 清除表中数据(Truncate)
六:每个 MapReduce 内部排序(Sort By)
七:分区排序(Distribute By)
八: Cluster By
九:分桶及抽样查询
- 分桶表数据存储简介
- 数据准备
- 创建分桶表
创建的表以id进行分区和排序,并且分为4桶。
- 数据通过子查询的方式导入到分桶表中 (直接导入没有效果)
a:先建一个普通的 stu 表 ,向普通的 stu 表中导入数据
b:设置一个属性 ,打开分桶
c:通过子查询导入
命令:insert into table stu_buck select id,name from stu;
- 分桶抽样查询
- 数据块抽样