superset-0.35 clickhouse_orm不支持decimal

     近期使用apache superset的报表系统,发现使用clickhouse数据源进行数据分析,发现当字段为decimal类型superset将会报如下错误  clickhouse error: No field class for Decimal

superset-0.35 clickhouse_orm不支持decimal_第1张图片
前端错误
superset-0.35 clickhouse_orm不支持decimal_第2张图片
后台错误日志

        经过查看后台日志发现 python3.7/site-packages/sqlalchemy_clickhouse/connector.py 类中没有decimal数据类型

superset-0.35 clickhouse_orm不支持decimal_第3张图片
connector.py源码

        于是依葫芦画瓢在里面添加对decimal数据类型的处理,但是如果是要在线上进行部署,通过pip install sqlalchemy-clickhouse安装clickhouse就需要手动修改此文件,当然如果在内网环境中,你可以通过把superset所依赖的包打包成tar.gz文件,然后丢到你的python目录下,然后通过非pip式安装superset直接一键式部署。

superset-0.35 clickhouse_orm不支持decimal_第4张图片

        将decimal转成string这种方式是可行,但是并不是比较正规的处理,最后在github上发现一种新的处理方式(sqlalchemy-clickhouse/connector.py at master · cloudflare/sqlalchemy-clickhouse · GitHub),将decimal类型转成了decimalfield类型,然后就可以正常的使用decimal数据字段(虽然网上没有人提及这个不支持decimal的问题,所以怀疑有没有可能是sqlalchemy_clickhouse版本问题,毕竟这样操作繁琐,等后续有解决方案再更新)

superset-0.35 clickhouse_orm不支持decimal_第5张图片

你可能感兴趣的:(superset-0.35 clickhouse_orm不支持decimal)