FAQ-执行CREATE VIEW UNION语句中语句时,正则规则内的汉字识别成?

问题现象

单独执行正则规则语句正常:
FAQ-执行CREATE VIEW  UNION语句中语句时,正则规则内的汉字识别成? - 图1
带上CREATE VIEW UNION语句后执行报错:
FAQ-执行CREATE VIEW  UNION语句中语句时,正则规则内的汉字识别成? - 图2
FAQ-执行CREATE VIEW  UNION语句中语句时,正则规则内的汉字识别成? - 图3
发现版本
所有版本

问题原因

CREATE VIEW语句会将定义VIEW的SQL持久化到Hive Metastore中,NDH部署的Hive Metastore MySQL后端默认使用latin1 编码,不支持中文;和常见的hive分区不支持中文问题同理

解决方案

修改HMS元数据库里面TBLS表中VIEW相关的字段编码为UTF8,sql如下:

ALTER TABLE TBLS MODIFY COLUMN VIEW_EXPANDED_TEXT mediumtext CHARACTER SET utf8;
ALTER TABLE TBLS MODIFY COLUMN VIEW_ORIGINAL_TEXT mediumtext CHARACTER SET utf8;

作者:曹俊