开源OLAP、数据及可视化前端工具—Superset(1)

标签:
supersetcaravelolap数据可视化 |
分类: 大数据 |
1、Superset是一款开源的OLAP及数据可视化前端工具,是由知名在线房屋短租公司Airbnb公司开源的一款数据探索及数据可视化工具,起初项目名称为Panoramix后改名Caravel,近期项目改名为Superset。
2、Superset介绍
SuperSet底层使用Python开发,与SQLAlchemy深度整合。
(1)支持的数据源:
目前原生支持的数据源有:MySQL、Postgres、Presto、Oracle、sqlite、Redshift、MSSQL以及Druid。对于前面的关系型数据库,Superset通过将界面的操作转换成SQL语句,提交给SQLAlchemy适配数据源查询并返回结果,对于Druid,Superset将界面的操作转换成Druid的API进行查询并返回结果,与Druid的深度集成,可以实现大规模海量数据的OLAP分析和实时探索。
其中,Druid是一个基于分布式的快速列式存储,也是一个为BI设计的开源数据存储查询工具。Druid提供了一种实时数据低延迟的插入、灵活的数据探索和快速数据聚合。现有的Druid已经可以支持扩展到TB级别的事件和PB级的数据了,Druid是BI应用的最佳搭档。
(2)数据缓存:
为了提高并发查询下的性能,还支持数据缓存,可配置将数据缓存至Redis、Memcache或者本地文件系统。
(3)数据可视化:
Superset支持十几种可视化图表,用于将查询返回的数据做可视化展示。
3、安装:
(1)安装依赖:参看官方文档:http://airbnb.io/superset/installation.html
(2)建议使用豆瓣的源安装:pip install superset -i
http://pypi.douban.com/simple
(3)用户注册:fabmanager create-admin --app superset
(4)数据库初始化:superset db upgrade
(5)加载测试数据:superset load_examples
(6)初始化:superset init
(7)本地启动(默认端口8088):superset runserver
4、浏览器打开:localhost:8088,如下:
主要包括
用户及安全管理、数据源管理、仪表盘、自助查询等功能。
5、整体架构:
(1)后端:整个项目的后端是基于Python开发的,用到了Flask、Pandas和SQLAlchemy,其中:Pandas用于分析,SQLAlchemy作为数据库的ORM、Flask
AppBuilder用作鉴权、规则及CRUD。
另外,采用memcache和redis作为缓存,级联超时配置。
(2)前端:
6、缺点:
(1)superset的可视化目前只支持每次可视化一张表,不支持join连接。
(2)依赖数据库的快速响应。