type
status
date
slug
summary
tags
category
icon
password
Last edited time
Mar 1, 2025 05:05 AM
问题复述
业务方在同步Starrocks库到superset的时候遇到了这个问题:
在starrocks官方Python包的reflection.py中出现了空类型错误。似乎是因为没有将decimal128类型映射为空导致的。
排查过程
- DataGrip和Navicat都不能在线下的SR库中建字段类型为decimal128的表,会报错syntax error,因为用的都是MYSQL引擎。使用Cloud DM连接线下SR库并建含有decimal128字段的表。
- debug发现starrocks的会用dialect.py中的ischema_names来进行类型的映射:
- dialect.py中的ichema_names并没有decimal128类型,导致col_type为空。

解决方案
使用猴子补丁:
在superset目录创建starrocks_patch.py:
然后在superset目录的app.py在运行前导入补丁包:
- 作者:很久不是自己
- 链接:https://weibo.com/article/starrocks-issue-decimal128
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章