如何让Superset展示Druid数据?配置后无法读取数据源求助
我之前也碰到过几乎一模一样的问题,折腾了小半天终于搞定,给你分享几个实用的排查和解决方向:
检查连接配置的准确性
首先确认Superset里填写的Druid集群地址和端口是否正确——Druid Broker的默认端口是8888,别误填成Coordinator的8081端口了。如果你的Druid开启了认证,一定要在Superset的连接配置里填对用户名和密码,同时确保Druid的权限系统允许Superset所在的服务账号读取"wiki-edits"数据源。验证Druid数据源本身的可用性
先在Druid控制台里确认"wiki-edits"是已启用状态,并且存在可用的segment数据。你可以在Druid的SQL查询页面跑一条简单的测试语句:SELECT COUNT(*) FROM "wiki-edits"如果这条查询在Druid里都返回不了结果,那问题根源就在Druid这边,先解决数据源的可用性再连Superset。
核对Superset里的数据源名称
注意Druid的数据源名称是大小写敏感的!Superset里填写的数据源名称必须和Druid控制台里的完全一致,比如Druid里是"wiki-edits",就别写成"Wiki-Edits"或者"wiki_edits",差一个字符都可能导致读不到数据。另外,添加完数据源后可以点击右上角的Sync columns from source按钮手动刷新元数据,有时候元数据同步不及时也会出现看不到数据的情况。排查网络和日志信息
去查看Superset的日志文件(默认是superset.log,如果是容器部署可以用docker logs <superset-container-id>查看),看看有没有连接Druid时的报错信息,比如网络超时、认证失败、权限不足这些。也可以从Superset所在的机器用curl测试Druid Broker的连通性:curl http://<druid-broker-ip>:8888/druid/v2/sql?q=SELECT%20COUNT(*)%20FROM%20%22wiki-edits%22如果这条命令能返回正常的JSON结果,说明网络和Druid的API都没问题,问题大概率在Superset的配置细节上;如果报错,就针对性解决网络或Druid的API访问问题。
内容的提问来源于stack exchange,提问作者Eugene Goldberg

