Superset介绍及使用说明
Superset简介
Apache Superset是Airbnb开源的数据挖掘平台。支持丰富的数据源连接,多种可视化方式,并能够对用户实现细粒度的权限控制。该工具主要特点是可自助分析、自定义仪表盘、分析结果可视化(导出)、用户/角色权限控制,还集成了一个SQL编辑器,可以进行SQL编辑查询等。
功能
丰富的数据可视化集
易于使用的界面,用于浏览和可视化数据
创建和共享仪表板
与主要身份验证提供程序(数据库,OpenID,LDAP,OAuth和REMOTE_USER通过Flask AppBuilder集成)集成的企业就绪身份验证
可扩展的高粒度安全性/权限模型,允许有关谁可以访问单个要素和数据集的复杂规则
一个简单的语义层,允许用户通过定义哪些字段应显示在哪个下拉列表中以及哪些聚合和功能度量可供用户使用来控制如何在UI中显示数据源
通过SQLAlchemy与大多数说SQL的RDBMS集成
与Druid.io的深度集成
支持的数据源
凡是有SqlAlchemy支持的数据源,superset都支持,包括下图:
Amazon Athena
Amazon Redshift
Apache Drill
Apache Druid
Apache Hive
Apache Impala
Apache Kylin
Apache Pinot
Apache Spark SQL
BigQuery
ClickHouse
Elasticsearch
Exasol
Google Sheets
Greenplum
IBM Db2
MySQL
Oracle
PostgreSQL
Presto
Snowflake
SQLite
SQL Server
Teradata
Vertica
Hana
架构介绍
后端
整个项目的后端是基于Python的,用到了Flask、Pandas、SqlAlchemy。
Flask AppBuilder(鉴权、CRUD、规则
Pandas(分析)
SqlAlchemy(数据库ORM)
此外,也关注到Superset的缓存机制值得我们学习:
采用memcache和Redis作为缓存
级联超时配置
UI具有时效性控制
允许强制刷新
前端
自然前端是JS的天下,用到了npm、react、webpack,这意味着你可以在手机也可以流畅使用。
d3 (数据可视化)
nvd3.org(可重用图表)
使用说明(Superset安装中有详细案例介绍)
创建数据源
1.Source -> Databases
2.点击加号(+)新增数据源
3.输入Sqlalchemy Uri
4.可以指定:
chart的超时时间
是否在SQL Lab中暴露
是否允许同步查询,默认选择,适合在web请求时间内(约小于1分钟)完成的查询
是否允许异常查询,需要配置Celery worker
是否允许csv上传,还需要在Extra中指定允许的schema
是否允许在SQL Lab中执行CREATE TABLE AS
是否允许在SQL Lab中执行非select的DML语句(UPDATE, DELETE, CREATE, …)
如果允许在SQL Lab中执行CREATE TABLE AS,强制让table都建立在哪个schema下
是否模拟登录用户,针对Presto和Hive
是否允许SQL Lab列出该数据库的所有schema,对于有大量table和view的数仓会很耗时.
更多的数据库连接参数在Extra中配置。
创建表
1.Sources -> Tables
2.点击加号(+)新增数据表
3.Database选择之前创建好的数据源,Table Name必须是数据源中对应真实的表名,表中必须包含一个Date或者Timestamp类型的字段【?】
4.成功添加后,会提示”As part of this two phase configuration process, you should now click the edit button by the new table to configure it.” 即更多配置要在添加完成后,通过Edit进行修改。
Edit的Detail选项卡:
Sql:This fields acts a Superset view, meaning that Superset will run a query against this string as a subquery,将类似view一样替代table,即作为from子句。
描述
Owner
Main Datetime Column,导入Table时会自动默认填入一个Date或者Timestamp类型的字段
Default Endpoint:Redirects to this endpoint when clicking on the table from the table list
Offset:Timezone offset (in hours) for this datasource,时区偏移,默认0是UTC,UTC与格林尼治平均时(GMT, Greenwich Mean Time)一样,都与英国伦敦的本地时相同
Cache Timeout:表的缓存超时时间,0表示从不缓存,如果不特别设置则默认与数据库的超时时间一样
Edit的List Columns选项卡:
列出表的各列信息,包括别名、类型、Groupable、Filterable和Is temporal(据观察,char类型的字段会自动勾选Groupable和Filterable,Date或者Timestamp类型的字段会自动勾选Is temporal,这对后续配置Chart有影响),可以对列进行增删改。
Edit的List Metrics选项卡:
列出表的快捷度量,如名为count的快捷度量是对该表进行COUNT(*)查询,据观察,number类型的字段会自动有sum和avg,如sum__min_order_vol的快捷度量是进行SUM(min_order_vol)查询,求min_order_vol字段的总和。
创建Charts
1.Charts
2.点击加号(+)新增数据图
3.选择数据源,选择可视化类型
创建Dashborad
1.Dashborads
2.点击加号(+)新增仪表盘
3.选择Edit Dashboard,拖拽Chart的位置进行组装,设置css格式和刷新参数等
转载请注明:学时网 » Superset介绍及使用说明