一、Superset 特性
·支持几乎所有主流的数据库,包括 MySQL、PostgresSQL、Oracle、SQL Server、SQLite、SparkSQL 等。
·丰富的可视化展示,支持自定义创建 dashboard。
·数据的展示完全可控,可自定义展示字段、聚合数据、数据源等。
二、前提条件
1. 已创建弹性-MapReduce(简称EMR)的 Hadoop 或 Druid 集群,并选择了 Superset 服务,详情请参见 创建 EMR 集群。
2. Superset 默认安装在集群的 master 节点上,打开 master 节点的安全组策略,确保你的网络可以访问 master 节点的18088端口。
三、登录
在浏览器地址栏中输入http://${master_ip}:18088(或者通过 EMR 控制台 > 集群服务), 打开 Superset 登录界面,默认用户名为 admin,密码为你创建集群时的密码。
注意:不同 Superset 社区版本 Web 页面交互可能存在差异,这篇以 Superset 1.5.1 版本为示例,更多版本及使用方式可参考 Superset 页面文档。
四、添加 DataBase
进入 Data > Databases 界面,单击 +DATABASE。
进入如下页面,即可选择你需要添加的数据源。
各个数据库的链接 SQLAlchemy URI 如下:
| 名称 | SQLAlchemy URI | 备注 |
| Mysql | mysql+pymysql://<mysqlname>:<password>@<mysql_ip>:<mysql_port>/<your_database> | mysqlname:连接 mysql 使用的用户名password:mysql 密码your_database:需要连接的 mysql 数据库 |
| Hive | hive://hadoop@<master_ip>:7001/default?auth=NONE | Master_ip:EMR 集群的 master_ip |
| presto | presto://hive@<master_ip>:9000/hive/<hive_db_name> | Master_ip:EMR 集群的 master_iphive_db_name:hive 中的数据库名称,不填默认为 default |
| impala | impala://<core_ip>:<port> | core_ip:当前集群的 core_ip port:当前集群 Impala 服务参数 hs2_port 的值 |
| kylin | kylin://<kylin_user>:<password>@<master_ip>:16500/<kylin_project> | kylin_user:kylin 的用户名password:kylin 的密码master_ip:EMR 集群的 master_ipkylin_project:kylin 的项目 |
五、自行添加新 Database
Superset 支持 Database。如果你需要安装其它的数据库,可通过如下操作进行:
1. 登录 EMR 集群 master 所在机器。
2. 执行命令source /usr/local/service/superset/bin/activate。
3. pip3 install 对应的 Python 库。
4. 重启 Superset。