redash-presto-mysql-json字段

presto读取mysql中的json类型字段数据解决办法

转载:http://www.manongjc.com/article/44673.html
prestodb
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

接下来你们也知道怎么处理了
cast
try_cast 报错了可以过滤掉出错的数据

数组 [1,2,3]

SELECT 
try_cast(json_extract(json_parse(trim(try_cast(try_cast(sdsd AS char(65536))AS varchar(65536)))),'$[0]') as bigint) adad,
                                                                                                                       sdsd sdsd,
                                                                                                                       asas 
FROM asasas
WHERE asa = 16
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,以下是CentOS 7安装redash的步骤: 1. 更新系统 使用以下命令更新系统: ``` sudo yum update -y ``` 2. 安装必要的软件包 运行以下命令安装所需的软件包: ``` sudo yum install -y gcc libffi-devel python-devel python-pip python-wheel openssl-devel ``` 3. 安装 PostgreSQL Redash需要一个数据库来存储数据。推荐使用PostgreSQL作为数据库。运行以下命令安装PostgreSQL: ``` sudo yum install -y postgresql-server postgresql-contrib ``` 4. 初始化 PostgreSQL 安装完成后,执行以下命令初始化PostgreSQL: ``` sudo postgresql-setup initdb ``` 5. 启动 PostgreSQL 使用以下命令启动PostgreSQL: ``` sudo systemctl start postgresql ``` 6. 设置 PostgreSQL 自启动 使用以下命令设置PostgreSQL自启动: ``` sudo systemctl enable postgresql ``` 7. 创建数据库用户 使用以下命令创建一个名为redash的数据库用户,并设置密码: ``` sudo -u postgres createuser redash -P ``` 8. 创建数据库 使用以下命令创建一个名为redash的数据库: ``` sudo -u postgres createdb redash --owner=redash ``` 9. 安装 Redash 使用以下命令安装Redash: ``` sudo pip install redash[all] ``` 10. 初始化 Redash 使用以下命令初始化Redash: ``` sudo /opt/redash/current/manage.py database create_tables ``` 11. 启动 Redash 使用以下命令启动Redash: ``` sudo supervisorctl start all ``` 12. 访问 Redash 现在您可以通过在浏览器中输入Redash服务器的IP地址来访问Redash了。 默认端口是5000,例如:http://your_server_ip:5000 希望这些步骤对您有所帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值