赞
踩
LanguageManual DML - Apache Hive - Apache Software Foundation
|
语法很简单,说明也很简单, insert into 是追加,insert overwrite 是覆盖不过只会覆盖对应分区或者全表数据
关键点在下面
IF NOT EXISTS
is provided for a partition (as of Hive 0.9.0).这里提到了hive2.3.0之后 如果表属性有("auto.purge"="true"),当insert overwrite的时候,之前的数据是不会移动到垃圾箱的(会移动哪里呢,实际就是会直接删除,垃圾箱回收站都不放?),也就是说,哎呀 我不小心删除了,想恢复都不可以的。
这里提到了一个比较有意思的参数("immutable"="true") 这个单词是不可变的意思,insert into本身是追加的意思,加了这个参数后, 就代表数据/分区只能被插入一次。(当然overwrite 这个表 也可以)
类型检查和自动转换
其余的都没啥说的。。
动态分区插入参数
|
| Needs to be set to |
|
| In |
| 100 | Maximum number of dynamic partitions allowed to be created in each mapper/reducer node |
| 1000 | Maximum number of dynamic partitions allowed to be created in total |
| 100000 | Maximum number of HDFS files created by all mappers/reducers in a MapReduce job |
|
| Whether to throw an exception if dynamic partition insert generates empty results |
---其实这个没啥说的主要是我在hive3.1看到表创建自动带purge=ture ,以为会有详细的解释的。
--后续待补充
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。