hive创建分区表

目录

1.什么是分区表

2.创建数据

3.创建静态表

4.导入数据

5.创建动态分区表结构

6.开启动态分区

7.把刚才静态分区的数据导入到静态分区



1.什么是分区表

分区表就是将一个大表分成若干个小表。分区表分的是文件夹

2.创建数据

[root@hadoop dool]# vim data.txt #创建文本
for i in $(seq 10) #输入这个脚本,会自动生成数据
do
  echo -e  "$(date -d "$RANDOM minute ago"  +%F' '%T'.'%N)"
done|sort -nk1|awk '{print NR"\t"$0}'>test.txt
[root@hadoop dool]# sh data.txt #运行文本会产生数据
[root@hadoop dool]# ls
data.txt  test.txt
[root@hadoop dool]# cat test.txt
1	2021-11-02 16:28:39.931093193
2	2021-11-03 15:19:39.933868815
3	2021-11-04 17:14:39.929646653
4	2021-11-05 11:04:39.934388378
5	2021-11-06 09:02:39.932742132
6	2021-11-07 01:47:39.931626788
7	2021-11-07 13:52:39.934925865
8	2021-11-12 01:06:39.930461977
9	2021-11-20 13:16:39.932218685
10	2021-11-20 16:10:39.933310604

3.创建静态表

0: jdbc:hive2://192.168.171.151:10000> create table orders #创建静态表
. . . . . . . . . . . . . . . . . . > (id int,ord_num string)
. . . . . . . . . . . . . . . . . . > partitioned by(month string)
. . . . . . . . . . . . . . . . . . > row format delimited fields
. . . . . . . . . . . . . . . . . . > terminated by '\t';
No rows affected (0.117 seconds)
0: jdbc:hive2://192.168.171.151:10000> show tables; #查看所有表
+---------------+--+
|   tab_name    |
+---------------+--+
| bucket        |
| dept          |
| orders        |
| student       |
| student_ext   |
| student_info  |
| student_ptn   |
+---------------+--+
7 rows selected (0.057 seconds)

4.导入数据

0: jdbc:hive2://192.168.171.151:10000> load data local inpath '/usr/word/dool/test.txt'
. . . . . . . . . . . . . . . . . . > into table orders partition(month='2022-03');
No rows affected (0.624 seconds)

5.创建动态分区表结构

0: jdbc:hive2://192.168.171.151:10000> create table dynamic_table(
. . . . . . . . . . . . . . . . . . > ord_num int
. . . . . . . . . . . . . . . . . . > )
. . . . . . . . . . . . . . . . . . > partitioned by(ord_date string)
. . . . . . . . . . . . . . . . . . > row format delimited fields terminated
. . . . . . . . . . . . . . . . . . > by '\t';
No rows affected (0.106 seconds)

6.开启动态分区

0: jdbc:hive2://192.168.171.151:10000> set hive.exec.dynamic.partition=true; #使用动态分区
No rows affected (0.027 seconds)
0: jdbc:hive2://192.168.171.151:10000> set hive.exec.dynamic.partition.mode=nonstrict; #无限制模式
No rows affected (0.005 seconds)

7.把刚才静态分区的数据导入到静态分区

用ord_date自动分区

0: jdbc:hive2://192.168.171.151:10000> insert into table dynamic_table
. . . . . . . . . . . . . . . . . . > partition(ord_date)
. . . . . . . . . . . . . . . . . . > select id,ord_num from orders;
WARNING: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
No rows affected (19.511 seconds)

 端口10002上有显示运行中 

  查看wed界面动态分区成功

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lambda-小张

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值