1、Superset 的使用示例1.Superset 的功能介绍1、我们可以通过连接数据库,去对数据库中的单个表进行配置,展示出柱状图,折线图,饼图,气泡图,词汇云,数字,环状层次图,有向图,蛇形图,地图,平行坐标,热力图,箱线图,树状图,热力图,水平图等图,官网上是不可以操作多个表的,不过我们可以操作视图,也就是说在数据库建好视图,也可以在 superset 中给表新增一列进行展示。2、配置好了我们想要的图表之后我们可以把它添加到仪盘表进行展示,还可以去配置缓存,来加速仪盘表的查询,不必要没次都去查询数据库。3、我们可以查看进行查询表的 sql,也可以把查询导出为 json,csv 文件。它有自
2、己的 sql 编辑器,我们可以在里面来编写 sql。本地登录公司已经部署好的 superset 环境,登录地址:192.168.6.64:89892.superset 连接数据库Superset 支持多种的数据库连接,如 MySQL,Oracle,Hive 等,其连接方式如下:数据库类型 在服务器执行命令 URL 填写方式MySQL pip install mysqlclient mysql:/用户名:密码IP/数据库名Postgres pip install psycopg2 postgresql+psycopg2:/Presto pip install pyhive presto:/Ora
3、cle pip install cx_Oracle oracle:/sqlite sqlite:/Redshift pip install sqlalchemy-redshift redshift+psycopg2:/MSSQL pip install pymssql mssql:/Impala pip install impyla impala:/Hive/SparkSQL pip install pyhive hive:/2.1superset 连接 MySQL登录到部署 superset 主机1. 安装 MySQL 客户端依赖,执行命令: pip install mysqlclient2
4、. 进入 superset 的 Web 界面,点击 sources 下拉选项的 Databases,如下图:3. 进入数据库界面,点击“+”按钮进入数据库连接界面,填写正确字段后保存,操作如下:4. 查看已经连接好的数据库2.2 superset 连接 Kylin 数据库Superset 官方支持清单里没有 Kylin。但是由于 Superset 是通过 SQLAlchemy 访问数据源的,所以原则上只要实现一套 Kylin 的 SQLAlchemy 方言(dialect)+ DBAPI 实现,即可以对其做集成。2.2.1 下载 PyKylinPython 的官方库中没有找到 Kylin 的
5、SQLAlchemy + DBAPI 实现,但是在 GitHub 上有一个 pykylin 项目。下载地址:https:/ 修改 pykylin 代码解压下载的 pykylin4superset-master.zipcd pykylin4superset-master/pykylin修改 dialect.py 代码:修改 def get_table_names 函数为下面代码:def get_table_names(self, engine, schema=None, *kw): connection = engine.contextual_connect() return connectio
6、n.connection.list_tables() 添加以下代码:def get_schema_names(self, engine, schema=None, *kw): connection = engine.contextual_connect() return connection.connection.list_schemas() 修改 create_connect_args 方法:def create_connect_args(self, url): opts = url.translate_connect_args() api_prefix = kylin/api/ args
7、= username: optsusername, password: optspassword, endpoint: http:/%s:%s/%s % (optshost, optsport, api_prefix) args.update(url.query) return , args 修改 connection.py 代码:添加以下代码:def create_connect_args(self, url): opts = url.translate_connect_args() api_prefix = kylin/api/ args = username: optsusername,
8、 password: optspassword, endpoint: http:/%s:%s/%s % (optshost, optsport, api_prefix) args.update(url.query) return , args修改 cursor.py 代码:修改_type_mapped 方法:def _type_mapped(self, result): meta = self.description size = len(meta) for i in range(0, size): column = metai tpe = column1 val = resulti if v
9、al is None: pass elif tpe = DATE: val = parser.parse(val) elif tpe = BIGINT or tpe = INT or tpe = TINYINT: val = int(val) elif tpe = DOUBLE or tpe = FLOAT: val = float(val) elif tpe = BOOLEAN: val = (val = true) resulti = val return result 2.2.3 install执行下面命令:pip install -r ./requirements.txtpython
10、setup.py install重启 superset:superset runserver p 89892.2.4 superset 连接 Kylin 数据库3.Superset 操作数据库经过上边的步骤就连接上了数据库,下边就可以进行数据的可视化操作了。首先点击SQL 测试下拉菜单下的 SQL 编辑器按钮。如下图所示:SQL 语句的执行结果如下:点击 Visualize 按钮进入数据可视化编辑窗口:4.superset 图形使用案例4.1 Distribution Bar Chart(分布-条形图)案例需求:统计每个 state 的总人数,总女生人数,总男生人数。SELECT state
11、AS state,sum(num) AS sum_num,sum(sum_girls) AS sum_sum_girls,sum(sum_boys) AS sum_sum_boysFROM(select *from birth_names) AS expr_qryWHERE ds = 1917-07-05 18:21:31AND ds = 1917-07-05 18:24:31AND ds = 1917-07-05 18:25:21AND ds = 2017-07-05 18:25:21GROUP BY gender,state,nameORDER BY sum_num DESC LIMIT 50000