先确定hive表的元数据信息存放位置:
默认存放在 derby数据库
大部分用户选择放到mysql数据库
mysql数据库又分为远程 数据库 和 本地数据库
区分放在那个mysql数据库,要查看hive-site.xml配置文件
我这里演示的是:
hive元数据存放到本地mysql数据库
先进入到本地mysql数据库:
直接登录进去:
查看一下数据库信息
我的hive元数据放在的是hive库中:
show tables
重点关注一下这几张表:
COLUMNS_V2 hive表中字段字符集
TABLE_PARAMS hive表注释字符集
PARTITION_PARAMS hive分区表参数使用中文注释
PARTITION_KEYS hive分区表参数使用中文注释
INDEX_PARAMS
TBLS hive表中视图字段支持中文注解
1、修改字段字符集
ALTER TABLE COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;
2、修改表注释字符集
ALTER TABLE TABLE_PARAMS modify column PARAM_VALUE varchar(10000) character set utf8;
3、分区参数使用中文
ALTER TABLE PARTITION_PARAMS modify column PARAM_VALUE varchar(10000) character set utf8;
ALTER TABLE PARTITION_KEYS modify column PKEY_COMMENT varchar(10000) character set utf8;
4、表注释支持中文
ALTER TABLE INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
5、表视图支持中文
ALTER TABLE TBLS modify COLUMN VIEW_EXPANDED_TEXT mediumtext CHARACTER SET utf8;
ALTER TABLE TBLS modify COLUMN VIEW_ORIGINAL_TEXT mediumtext CHARACTER SET utf8;
修改 1、 2 基本够用后面如果用的着可以自己研究一下
到hive中找到一张测试表:
alter table
default.dept
add columns
( testColumn string COMMENT'中文乱码') ;
查看表结构:
DESCRIBE default.dept;