您现在的位置是:首页 > 电脑 > 

hive insert、select组合动态插入分区表

2025-07-27 20:19:15
使用waterdrop操作hive的时候遇到一个问题,按照sql的insert、select组合插入应该使用下面的语句: ISERT ITO table t_ads_gsddy_jzfdl_day SELECT a.senid AS senid,a.jlsj AS jlsj,a.v AS v,a.name AS name, 水电 AS stag

使用waterdrop操作hive的时候遇到一个问题,按照sql的insert、select组合插入应该使用下面的语句:

ISERT ITO table t_ads_gsddy_jzfdl_day

SELECT a.senid AS senid,a.jlsj AS jlsj,a.v AS v, AS name, 水电 AS stage ,partition_year AS partition_year FROM t_ads_gsddy_sjjzfdl_day a

运行发现报错,查看表结构之后,发现要插入的表有分区,于是修改之后:

ISERT ITO table t_ads_gsddy_jzfdl_day PARTITIO(partition_year)

SELECT a.senid AS senid,a.jlsj AS jlsj,a.v AS v, AS name, 水电 AS stage ,partition_year AS partition_year FROM t_ads_gsddy_sjjzfdl_day a

但是waterdrop却又报错了,提示设置partition=true或者使用静态分区

思考了一下,发现默认是静态插入,所以采用了以下语句

SET dynamic.partition=true;                                 --开启动态分区,默认是false

SET dynamic.=ntric;                 -- 开启允许所有分区都是动态的,否则必须要有静态分区才能使用。

ISERT ITO table t_ads_gsddy_jzfdl_day PARTITIO(partition_year)

SELECT a.senid AS senid,a.jlsj AS jlsj,a.v AS v, AS name, 水电 AS stage ,partition_year AS partition_year FROM t_ads_gsddy_sjjzfdl_day a

最后提示插入成功!!!

回头试了下,在开启了动态分区的情况下,不指定分区使用常规的insertselect进行插入,发现也是可以的

SET hdynamic.partition=true;

SET dynamic.=ntric;

ISERT ITO table t_ads_gsddy_jzfdl_day

SELECT a.senid AS senid,a.jlsj AS jlsj,a.v AS v, AS name, 水电 AS stage ,partition_year AS partition_year FROM t_ads_gsddy_sjjzfdl_day a

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/diannao/549497.html

相关标签:无
上传时间: 2023-06-29 02:02:13
留言与评论(共有 10 条评论)
本站网友 对路
3分钟前 发表
select进行插入,发现也是可以的 SET hdynamic.partition=true; SET dynamic.=ntric; ISERT ITO table t_ads_gsddy_jzfdl_day SELECT a.senid AS senid
本站网友 但斌博客
10分钟前 发表
使用waterdrop操作hive的时候遇到一个问题,按照sql的insert
本站网友 看穿读心术
7分钟前 发表
AS name
本站网友 中国华粮物流集团公司
6分钟前 发表
水电 AS stage
本站网友 中国二汽集团
14分钟前 发表
a.jlsj AS jlsj
本站网友 名门摄影
30分钟前 发表
a.jlsj AS jlsj
本站网友 陕西旅游路线
30分钟前 发表
AS name
本站网友 十里蓝山
28分钟前 发表
水电 AS stage
本站网友 汽车市场分析
26分钟前 发表
partition_year AS partition_year FROM t_ads_gsddy_sjjzfdl_day a 运行发现报错,查看表结构之后,发现要插入的表有分区,于是修改之后: ISERT ITO table t_ads_gsddy_jzfdl_day PARTITIO(partition_year) SELECT a.senid AS senid