当hive中分区字段有NULL值时,hive会使用dynamic partition,数据会放到一个特殊的分区,这个分区由参数“hive.exec.default.partition.name”控制,默认为“__HIVE_DEFAULT_PARTITION__”,即上面这种情况. 如果不想保留,则使用下面命令删除该分区,同时手工删除hdfs上该分区文件. 下面用于删除null分区. ALTER TABLE table DROP IF EXISTS PARTITION (pk_year='__HI
我是在hive删除表的时候出现这个错误的,看到这个错误应该就知道是字符集错误. 但是我用 alter database hive character set latin1; 这个命令将其改成拉丁之后还是不行,然后我想到是不是这次hive是重装的,然后还保留有上次存在的hive表结构等存在mysql的数据信息,所以果断将mysql里面的hive数据库删了,然后重新: create database hive; alter database hive character set latin1; 之
近日,由于部门数据库读库空间过小,提出删除掉两个月之前日志表的分区(数据库分区是按时间月分区),记述如下: 上网搜索资料发现删除表分区大概分这么几步: 1.查询需要删除掉的分区: select t.DATAPARTITIONNAME from syscat.datapartitions t where tabname = '?' with ur syscat.datapartitions表存放所有的分区,根据表名时间查询出所要删除的分区名. 2.detach分区到一张临时表(该操作会创建临
目的,有一个清理数据的需求,需要删除历史的一个分区所有记录信息,但是存在主键global索引,如何更好的维护. 如下测试流程一 提前创建好一个已时间created 字段作为分区键的范围分区表 SQL> select TABLE_OWNER,TABLE_NAME,PARTITION_NAME,HIGH_VALUE,TABLESPACE_NAME from dba_tab_partitions where TABLE_OWNER='TEST' and TABLE_NAME='A';TABLE_OWN