hive支持MySQL显示中文,解决字段注释乱码

乱码样式

在这里插入图片描述
在我想查看一张表某个字段的具体含义时发现出现了乱码现象,这是由于在hive改成MySQL管理元数据后,该数据库使用的是Latin1编码而非utf8或者gbk,所有会导致乱码,由于hive和其他很多hadoop生态也有一定的关联,所以不能直接修改管理元数据库的默认字符集,但是我们可以修改里面表的某些字段的字符集。
在这里插入图片描述

方法

第一步:在MySQL中指定管理hive元数据信息对应的数据库输入如下dml语句
ALTER TABLE COLUMNS_V2 MODIFY COLUMN COMMENT VARCHAR(256) CHARACTER SET utf8;
除了有修改表注释字符集的sql外,还带有分区,索引,视图等的sql。

#修改表注释字符集
ALTER TABLE TABLE_PARAMS MODIFY COLUMN PARAM_VALUE  VARCHAR(20000) CHARACTER SET utf8;
#修改分区参数,支持分区键用中文表示
ALTER TABLE PARTITION_PARAMS MODIFY COLUMN PARAM_VALUE VARCHAR(20000) CHARACTER SET utf8;
ALTER TABLE PARTITION_KEYS MODIFY COLUMN PKEY_COMMENT VARCHAR(20000) CHARACTER SET utf8;
#修改索引名注释,支持中文表示
ALTER TABLE INDEX_PARAMS MODIFY COLUMN PARAM_VALUE VARCHAR(4000) CHARACTER SET utf8;
#修改视图,支持视图中文
ALTER TABLE TBLS MODIFY COLUMN VIEW_EXPANDED_TEXT MEDIUMTEXT CHARACTER SET utf8;
ALTER TABLE TBLS MODIFY COLUMN VIEW_ORIGINAL_TEXT MEDIUMTEXT CHARACTER SET utf8;

第二步:修改hive中conf目录下的配置文件hive-site.xml
在原来的驱动中加上 &useUnicode=true&characterEncoding=UTF-8参数,然后重新进入hive客户端即可。

	<property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://hadoop002:3306/metastore?useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</value>
    </property>

测试结果

在这里插入图片描述
在这里插入图片描述
可以看到已经可以显示中文了,对后面的数据管理很有帮助。

注:该内容源于b站尚硅谷atlas课程内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值