hive动态分区表的创建 您所在的位置:网站首页 创建hive分区表 hive动态分区表的创建

hive动态分区表的创建

2023-12-18 02:34| 来源: 网络整理| 查看: 265

hive分区表分为静态表和动态表,静态表就是插入数据时指定分区,动态分区不用指定分区,根据数据动态的写入不同的分区。关于动态分区表的建立也比较特殊。下面举一个例子,阐述动态分区表的创建。

首先在hive shell中设置开启动态分区功能 set hive.exec.dynamic.partition =true; set hive.exec.dynamic.partition.mode=nonstrict; 创建动态分区表 CREATE TABLE `event_car_pass_partition`( `xxzjbh` string COMMENT '信息主键编号', `jdchp` string COMMENT '机动车号牌号码', `jcsd` string COMMENT '检测速度', `sbbh` string COMMENT '视频设备编码', `tdmc` string COMMENT '通道名称', `ztrq` string COMMENT '抓图日期', `zgxzsd` string COMMENT '最高限制速度', `zdxzsd` string COMMENT '最低限制速度', `sbjwd` string COMMENT '视频设备经纬度', `xxrksj` string COMMENT '入库时间', `sjgsdwdm` string COMMENT '数据归属单位代码', `sjgsdwnc` string COMMENT '数据归属单位名称', `gctp` string) COMMENT '卡口过车事件数据' partitioned by (cdbh string comment '车道编号');

其中cdbh是分区字段,不用再表中显示的定义分区字段,只用在partition中定义分区字段,表schema生成后,分区字段会自动变为表的字段之一。

插入数据到分区表 insert overwrite table event_car_pass_partition partition(cdbh) select `xxzjbh`, `jdchp`, `jcsd`, `sbbh`, `tdmc`, `ztrq`, `zgxzsd`, `zdxzsd`, `sbjwd`, `xxrksj`, `sjgsdwdm`, `sjgsdwnc`, `gctp`, `cdbh` from event_car_pass;

使用已经存在的表数据来插入分区表,select 后面需要显示的指定字段,不能使用*,否则插入的数据会存在问题,不会按照数据来分区。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有