最近在 HUE 里面查询有中文字段相关的东西被报错警告。。。
(1366, Incorrect string value: \\xE4\\xBA\\xAC\\xE4\\xB8\\x9C... for column search at row 1)
通过调整 HUE 使用的某些元数据表的表编码来解决这个问题:
ALTER TABLE desktop_document2 modify column name varchar(255) CHARACTER SET utf8;
ALTER TABLE desktop_document2 modify column description longtext CHARACTER SET utf8;
ALTER TABLE desktop_document2 modify column search longtext CHARACTER SET utf8;
alter table beeswax_queryhistory modify `query` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;
在书写在 MySQL 中能使用的语句的时候还遇到一些无法直接在 hive 或者 presto 中运行的兼容性问题。
例如:
presto 可以运行的版本
--三人团奖学金表1select
'200元奖学金' AS "卡券类型",'线上H5' AS "渠道",9000 AS "总发放数量",
count(*) AS "总领取数",
count(*)/9000 AS "总领取率",
count(*) AS "总有效使用率"
fromcourse.user_taste t1
join
analytics_db.hd_new_user_info t2
on
t1.taste_type=6and t1.quota=1and t1.status=1and t1.user_id= t2.user_id
hive 可以运行个的版本
--三人团奖学金表1select
'200元奖学金'AS `卡券类型`,
'线上H5'AS `渠道`,9000AS `总发放数量`,
count(*) AS `总领取数`,
count(*)/9000AS `总领取率`,
count(*) AS `总有效使用率`fromcourse.user_taste t1
join
analytics_db.hd_new_user_info t2
on
t1.taste_type=6and t1.quota=1and t1.status=1and t1.user_id= t2.user_id
MySQL 以上两个版本都可以运行,不得不佩服 MySQL 对 SQL 的语句兼容性和包容性真的非常好。
为了让 hive 和 presto 兼容得比较好,字符串最好都用 单引号引起来这个都没问题,as xxx 后面 hive 需要使用 ` ` 引起来。而 presto 需要使用双引号引起来。