mysql中如果字段类型为json类型的话,presto只可以查询,但是不能做转换操作,包括最常规的json函数全部不能用;说白了目前presto暂时不支持mysql 中json类型,先来看张mysql中的表
CREATE TABLE `test` (
`date` date NOT NULL DEFAULT '0000-00-00' ,
`id` varchar(20) NOT NULL ,
`data` json NOT NULL ,
PRIMARY KEY (`date`,`id`)
)
在presto中查看表结构
CREATE TABLE m_catalogs.m_schema.test (
date date,
id varchar(20),
data char(0) )
可以看到,data字段在presto中映射成了char(0),字段长度为零,你做任何操作转换操作都会报错,因为presto在解析的时候,发现你的字段长度为0,而你的实际长度不为零就会报如各种错,解决办法当然有,也比较简单
select json_extract(json_parse(trim(cast(cast(data as char(10000))as varchar(10000)))),'$.photo')
from m_catalogs.m_schema.test limit 10
接下来你们也知道怎么处理了