一个开源免费高颜值的轻量级商业智能BI平台!-Superset
人是视觉动物,要用数据把一个故事讲活,图表是必不可少的。如果你经常看到做数据分析同事,在SQL客户端里执行完查询,把结果复制/粘贴到 Excel 里再做成图表,那说明你的公司缺少一个可靠的数据可视化平台。数据可视化是 Business Intelligence(BI)中的核心功能,有许多成熟的商用解决方案,如老牌的 Tableau,Qilk,新生代的 Looker,国内的 FineBI 等等。不过对于许多小公司来说,这些服务的 License 费用是一笔不小的开销,且有一种“杀鸡用牛刀”的感觉。那在开源软件如此发达的今天,在数据可视化方面,有什么靠谱的方案可以选择呢?开源可视化分析工具如:Bokeh、Matplotlib、Metabase、Superset等首先是无软件成本的,其次是要考虑它们的便捷性。本文将简要介绍一款轻量级开源可视化BI工具:Superset,其成熟度不如商业可视化工具,但是胜在无软件成本且有一定的灵活性。

Superset简介
Superset是一款由Airbnb开源的、目前由Apache孵化的,基于Flask-appbuilder搭建的“现代化的企业级BI(商业智能)Web应用程序”,它通过创建和分享dashboard,为数据分析提供了轻量级的数据查询和可视化方案。
Superset的可取之处有很多如:它自带SQLite数据库并支持连接Hive、Impala、MySql、Oracle等几乎所有主流的数据源;支持和弦图、事件流图、热力图、视图表等及其它常规的可视化展示图表;支持可控的数据展示,能自定义展示字段、数据源等;支持权限控制,以满足不同使用人员对数据和数据库的权限要求;同时内含SQL查询面板模块、具有较美观友好的操作界面等。另外,查阅资料可知Superset可以基于Python的虚拟环境安装或Docker容器安装,经实践建议基于Docker安装,避免因python依赖包的安装遗漏或版本不符等问题造成失败。

为什么选Superset?
支持丰富的数据库作为数据源,基本上平时用到的数据库都支持;

多姿多彩的可视化图表,Apache Superset拥有非常丰富的图表,来实现不同的可视化需求

轻量级和高度可扩展,利用现有数据基础模型的直接进行数据探索和可视化呈现,而不需要另一个摄取层,如图2.2.2,配置好数据库后,进入SQL Lab(SQL实验室),就可以对数据进行探索分析,SQL Lab更像是一个数据库连接查询客户端,当然要更好的数据可视化呈现,还必须结合图表和仪表盘功能。

使用简单,Apache Superset使用层面主要分为以下个部分;
Data:主要功能是新增数据源和数据集Dataset(旧版本也叫Table),Dataset作为数据图表可视化的基础;
Charts:图表,就是针对准备好的Dataset数据集,选择一款合适的图表呈现;
Dashboards:仪表盘,其实就是报表、看板大屏展示,可以将多个Charts组合到一个仪表盘内一起展示。
SQL Lab:SQL实验室,其实就是一个类似DBeaver、Navicat、DataGrip等一样的多功能数据库连接客户端,但是只有查询功能,配置驱动和连接后可以进行数据库、表、字段等模型的SQL查询操作。
设置:语言选择,登录注销、人员权限,操作日志等设置;
Superset安装
优势
Superset 的安装非常简单,可以使用Docker进行快速的安装,几分钟就可以搞定。
首先安装并查看docker版本,确定正常。
docker --version
查看docker compose版本。
docker compose version
拉取superset代码
git clone https://github.com/apache/superset.git
进入目录,并启动。
cd superset
docker compose up
如需指定版本和配置文件,可以使用下面的命令。
git checkout 3.0.0
set TAG=3.0.0
docker compose -f docker-compose-non-dev.yml pull
docker compose -f docker-compose-non-dev.yml up
随后访问http://localhost:8080用户名密码如下所示。
username: admin
password: admin
总结
Superset作为一款功能强大、易于使用的数据探索平台,为数据爱好者和专业人士提供了无限可能。通过安装并使用Superset,你可以轻松地连接数据源、创建仪表盘、设计图表,并与他人分享你的数据发现。赶快尝试一下,解锁数据的无限魅力吧!
开源地址:https://github.com/apache/superset
