重庆网站建设微信开发,wordpress 编程,高职高专 网站建设与维护,品牌网站设计制作公司推荐文章目录 出现原因MySQL 字符集修改调整元数据库字符集测试 出现原因
一般 Hive 的元数据信息都存储在 MySQL 中#xff0c;但 MySQL 数据库中的 character_set_server 和 character_set_database 参数#xff0c;默认都为 latin1 字符集#xff0c;这两个参数决定了服务器… 文章目录 出现原因MySQL 字符集修改调整元数据库字符集测试 出现原因
一般 Hive 的元数据信息都存储在 MySQL 中但 MySQL 数据库中的 character_set_server 和 character_set_database 参数默认都为 latin1 字符集这两个参数决定了服务器和数据库如何处理和存储数据的字符编码而我们通常使用的字符集都是 utf8所以会造成 Hive 中注释出现 ???? 乱码的情况。
可以通过下面的命令在 MySQL 进行检查
-- 获取 MySQL 与字符集和校对规则相关的配置变量列表
show variables like colla%;-- 获取 MySQL 字符集变量列表
show variables like chara%;MySQL 字符集修改
修改 MySQL 配置文件
vim /etc/my.cnf添加下列内容
# 在 [mysqld] 标签下加入
character-set-serverutf8
collation-serverutf8_general_ci## 在末尾加入
[client]
default-character-setutf8添加完成后重新启动 MySQL 服务
systemctl restart mysqld调整元数据库字符集
进入 MySQL 中调整下列参数切换到存储 Hive 元数据信息的库然后执行。
-- 进入存储 Hive 元数据信息的库
use hive;-- 修改表字段注释和表注释
alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;
alter table TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;-- 修改分区字段注释
alter table PARTITION_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
alter table PARTITION_KEYS modify column PKEY_COMMENT varchar(4000) character set utf8;-- 修改索引注释
alter table INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;注意仅对修改后创建的新表生效
测试
在 Hive 中创建一个新表并添加注释信息。
DROP TABLE IF EXISTS sku_info;
CREATE TABLE sku_info(sku_id string COMMENT 商品id,name string COMMENT 商品名称,category_id string COMMENT 所属分类id,from_date string COMMENT 上架日期,price double COMMENT 商品单价
) COMMENT 商品属性表ROW FORMAT DELIMITED FIELDS TERMINATED BY \t;问题解决。