Apache Superset产品调研

news2024/12/23 22:16:16

Apache Superset产品调研

调研报告:Apache Superset

一、概述

Apache Superset是一个开源的数据可视化和数据探索平台,它提供了一个用户友好的界面,可以轻松地创建和分享仪表板。它支持多种数据源,包括SQLAlchemy兼容的数据库、CSV文件、Apache Druid、Elasticsearch等。Apache Superset是一个基于Python编写的Web应用程序,使用Flask作为Web框架,使用React和Bootstrap作为前端UI库。后端使用SQLAlchemy进行数据库访问,支持多种关系型数据库。同时,Apache Superset使用Celery作为任务队列,支持异步任务处理。Apache Superset是一个开源项目,得到了广泛的社区支持。目前它在GitHub上有2800+的Star和1000+的Fork,有数百名开发者和用户参与了项目的开发和使用。同时,Apache Superset还有一个活跃的邮件列表和Slack频道,用户可以在这里获得技术支持和交流。

 

二、功能特点

1. 强大的可视化工具

Apache Superset提供了多种可视化工具,包括Bar Chart、Box Plot、Heatmap、Pie Chart、Sankey Diagram等。这些可视化工具可以帮助用户更好地理解数据,发现数据中的规律和趋势。

 

2. 灵活的数据源接入

Apache Superset支持多种数据源接入,包括SQLAlchemy兼容的数据库、Apache Druid、Elasticsearch等。用户可以轻松地将数据源接入Apache Superset,进行数据探索和数据可视化。

Apache Superset支持的数据库列如下:

 

MySQLApache KylinExasolMonetDBDruid (Apache)
PostgreSQLApache PinotMemSQLGreenplumElasticsearch
SQLiteApache SolrMariaDBSAP ASEGoogle Cloud Spanner
Microsoft SQL ServerApache SparkCockroachDBAmazon AthenaMapD
OracleApache HBaseYugabyteDBAmazon EMRMongoDB
Amazon RedshiftSnowflakePrestoApache FlinkNeo4j
Google BigQueryTeradataClickHouseApache NiFiSAP IQ
Apache DruidVerticaInfluxDBApache PulsarScyllaDB
Apache HiveIBM DB2TimescaleDBApache SamzaTiDB
Apache CassandraSAP HANACrateDBApache ZooKeeperTIBCO Spotfire

在连接各数据库前,需要先下载对应数据库的driver,详情参见官网:https://superset.apache.org/docs/databases/installing-database-drivers/

注:SQLAlchemy [ˈælkəmi] 是一个Python SQL工具包和对象关系映射(ORM)库,它允许Python开发人员在应用程序中使用SQL。SQLAlchemy提供了一种Pythonic的方式来操作关系型数据库,同时也提供了一个强大的ORM框架,使得开发人员可以把数据库模型表示为Python类,从而可以更容易地进行数据库操作和数据访问。 SQLAlchemy还支持多种数据库后端,包括MySQL、PostgreSQL、Oracle、SQLite等。

3. 用户友好的界面

Apache Superset提供了一个直观、易用的用户界面,用户可以通过拖放来创建仪表板。用户可以根据自己的需求,自由地设计和组织仪表板。

4. 全面的安全性

Apache Superset支持多租户,可以为不同的用户组提供不同的权限。这样可以保障每个用户组的数据安全性和隐私性。用户可以通过多种方式来保障数据的安全性,包括访问控制、数据加密等。

三、使用场景

1. 数据探索

Superset具有“SQL Lab”模块,可作为一个数据库管理工具,SQL查询面板可以对已连接的数据源进行数据查询,对数据源进行配置选择后也可实现数据库表的创建、修改和删除。

 

2. 数据可视化

Superset可用于数据可视化成果共享,实现团队协同,使用者可将制作好的图表或发布的dashboard可见于团队成员,并通过权限配置控制团队成员对它们的可编辑性,各成员可发挥各自的想法,实现迭代化更新。用户可以通过Apache Superset来创建各种可视化图表,包括Bar Chart(柱状图)、Box Plot(箱线图)、Heatmap(热力图)、Pie Chart(饼图)、Sankey Diagram(桑基图)等。

 

3. 数据分析

Superset是一款自助式的BI工具,可利用于探索式的日常数据分析中,它能够对接常用的大数据分析工具、能够连接主流数据库或直接上传CSV数据文件,内含多类型展示图表样式,使用者通过自定义图表或dashboard可以直观地发现、分析、预警数据中所隐藏的问题,及时应对业务中的风险或发现增长点。

 

 

四、优劣分析

1. 优点

(1)Apache Superset提供了多种可视化工具,可以帮助用户更好地理解数据。 (2)Apache Superset支持多种数据源接入,包括SQLAlchemy兼容的数据库、Apache Druid、Elasticsearch等。 (3)Apache Superset提供了一个直观、易用的用户界面,用户可以通过拖放来创建仪表板。 (4)Apache Superset支持多租户,可以为不同的用户组提供不同的权限,保障数据的安全性和隐私性。

2. 缺点

(1)Apache Superset的可视化工具相对比较简单,不适用于一些复杂的数据可视化需求。 (2)Apache Superset对于大数据量的数据处理能力有限,不适用于一些大数据处理需求。

五、安装部署

关于Apache Superset的安装部署,可参见:

https://superset.apache.org/docs/databases/installing-database-drivers/

https://www.cnblogs.com/gkmin/p/16616140.html

六、实战入门

在该部分将通过疫情dashboard、企业客户dashboard这两个dashboard实例制作来了解Superset的功能,dashboard的制作可分为四步:连接数据源、添加及设置table、制作charts、制作dashboard;同时可在“SQL Lab”对数据库表的数据进行查询及结果可视化。首先基于Docker在内网环境成功安装了Superset应用,并通过浏览器访问登陆,登陆界面如下:

 

  1. 连接数据源

按照示例新建数据库、连接数据源,

选择“Sources_Databases”点击“+”按钮添加数据源

 

填写好Database的基础信息后,点击“Test Connection”,若弹出框显示“Seems OK!”则表示成功连接数据源。其中,Oracle数据源的“SQL Alchemy URL”编辑形式为:“oracle://用户名:密码@ip地址:端口/实例名”,其它数据源URI形式可参考:https://docs.sqlalchemy.org/en/13/core/engines.html#database-urls。

 

  1. table添加及设置

成功连接数据源后按以下步骤添加可视化数据tables,

选择“Sources_Tables”点击“+”按钮添加可视化数据表

 

选择需要的数据库及数据表,点击“Save”按钮进行保存

 

对添加的table进行基础设置,包括三部分:Details(设置表基础信息);List Columns(设置数据属性,groupable/filterable/istemporal);List mertics(预设数据过滤,sum/count等)

  1. 制作charts

制作疫情情况dashboard的基础是制作一个个的charts图表,

在tables列表中双击要制作chart的表名,进入绘图区域

 

点击visualization type,在弹出框选择需要可视化的图表类型

对要进行可视化的图表进行参数设置,Time/Metric/filter等,设置好后点击“Save”进行保存,同时页面跳转至charts列表页

点击“View Query”可在弹出框查看可视化数据SQL

 

做好的chart将依次罗列于charts列表页,在该页双击图表名可跳转至绘图区域,并对已编辑的chart进行修改

  1. 制作dashboard

当制作dashboard的charts准备就绪后,就可以开始制作dashboard,

选择“dashboard”点击“+”按钮添加可视化面板,双击dashboard名进入编辑区域

 

点击“Edit dashboard → Action”下拉列表选择“Add Slices”即可为面板添加charts素材,各charts组件的大小及位置可以拖动调整,也可对已添加的chart进行更名、强制更新、编辑、重绘图、移除等。Dashboard中的charts添加调整好后点击“Save”进行保存

 

  1. SQL查询面板

在Superset的SQL Lab中可以实现对已连接连数据源进行数据查询,同时也可对查询到的结果进行图表展示,

选择“Sources_Databases”进入数据库列表页,选中需要展示在SQL Lab中的数据库,点击编辑图标进入Edit Databases页,将“Expose in SQL Lab、Allow Run Sync”勾选上即可在SQL查询面板对数据库表进行查询,若想对库表进行创建、修改、删除等操作则需选择性的勾选“Allow CREATE TABLES或Allow DML”

 

选择“SQL Lab_SQL Editor”就可以进入SQL查询页面,在编辑区写好查询sql后点击“Run Query”即显示查询结果

 

针对查询到的sql结果,点击“Visualize”按钮,在弹出框设置好相应信息后点击弹出框中的“Visualize”按钮即可跳转至绘图页面,随后可基于查询出的数据进行可视化图表制作

 

  1. dashboard实例介绍

  • 疫情dashboard

2019年12月底在中国武汉发现了首例新冠肺炎,2020年2月中旬全球其它国家相继发现了新冠病例并且其数量呈爆发式增长,疫情dashboard是基于全球新冠疫情数据制作的(19年12月20日-20年7月31日),数据来源于github的一个爬虫项目,它会定期去抓丁香医生的疫情数据信息,包括各国各区域的新冠肺炎的确诊人数、治愈人数和死亡人数。疫情数据文件准备就绪后,按照“四步走步骤”即可制作疫情dashboard。

疫情dashboard包括以下7类图表:

词云图Word Cloud,直观展示各国确诊人数的多少情况;

数值趋势图Big Number with Trendline,数值直接展示某个时间点的全球确诊、治愈及死亡总人数;同时附带趋势图,可查看各时间的疫情数值情况;

分布柱形图Distribution-Bar Chart,详细展示某个时间点的各国确诊、治愈及死亡人数,可作横向国家疫情对比;

时间线性趋势图Time Series-Line Chart,一图展示各时间点的各国确诊人数趋势情况,可做横向国家对比、纵向时间线对比;一图展示各时间点的中国确诊、治愈及死亡人数趋势情况;

国家地图Country Map,展示某个时间点的中国各省的确诊人数情况;

强度拉力图Directed Force Layout,展示某个时间点的中国各省各市的确诊人数情况,圆点代表省或市,圆点大小代表该省或市确诊人数的多少;

太阳图Sunburst,该图包括两个层级维度,直观展示某个时间点的中国各省各市的确诊人数占比及数值情况

下图为制作好的疫情dashboard:

 

  • 企业客户dashboard

企业客户dashboard,主要展示各子公司的客户情况,包括:企业客户数、单一企业共同客户数、两家企业共同客户数和客户迁徙数,其分析数据为某企业的5个子企业的半年客户数据(20年6月-20年12月)。同样,数据准备就绪后,按照“四步走步骤”制作企业客户dashboard。

企业客户dashboard包括以下8类图表:

数值趋势图Big Number with Trendline,数值直接展示某个时间点的企业客户总数、单一企业共同客户总数及两家企业共同客户总数;同时附带趋势图,可查看各时间点的客户总数情况;

双轴线图Dual Axis Line Chart,展示各时间点的企业客户总数及客户总数增量情况;

饼图Pie Chart,展示某个时间点的各企业客户数及占比情况;

气泡图Bubble Chart,展示某个时间点的各企业的客户数及其环比增量、环比增幅三者的关系,气泡大小表示各企业的客户数,X轴Y轴分别标识其环比增量和增幅;

视图表Table View,直接罗列某时间点的各企业客户数情况,另外单元格内的进度条将数值情况更加直观化;

时间线性趋势图Time Series-Line Chart,一图展示各时间点的各企业客户数趋势情况;一图展示各时间点的单一企业共同客户数趋势情况;

透视表Pivot Table,一图展示某时间点的两家企业共同客户数情况;一图展示某时间点的企业间客户迁徙(迁入和迁出)情况;

和弦图Chord Diagram,一图展示企业间的迁入客户情况;一图展示企业间的迁出客户情况下图为制作好的企业客户dashboard:

 

七、总结

Apache Superset是一个开源的数据可视化和数据探索平台,它提供了多种可视化工具和数据源接入方式,可以帮助用户更好地理解数据、探索数据和分析数据。Apache Superset提供了一个直观、易用的用户界面、多租户支持和完善的安全性机制,保障了数据的安全性和隐私性。但是Apache Superset的可视化工具相对比较简单,不适用于一些复杂的数据可视化需求,而且对于大数据量的数据处理能力有限,不适用于一些大数据处理需求。但是Superset只是一款轻量级的BI应用,复杂的数据关联可以在ETL过程中完成,而Superset读取最终的结果表,另外它完全可以支撑起TB级的数据源读取。总而言之,Apache Superset是一款免费且操作简便的自助式数据分析工具,能够满足企业的多样化可视化需求,而且最新版本支持嵌入Echarts页面,功能更加强大,使用更加方便。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/668940.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

io.netty学习(九)Netty 如何实现零拷贝

目录 前言 Java 实现零拷贝 1、Java提供 mmap/write 方式 2、Java 提供 sendfile 方式 Netty 实现零拷贝 1、CompositeByteBuf 方式 2、wrap 方式 3、slice 方式 4、 FileRegion 方式 总结 前言 本篇文章我们就来讲讲 Netty 的零拷贝,在这之前&#xff0…

数据结构练习题1:基本概念

练习题1:基本概念 1 抽象数据类型概念分析2. 逻辑结构与存储结构概念分析3.综合选择题4.综合判断题5.时间复杂度相关习题 1 抽象数据类型概念分析 1.可以用(抽象数据类型)定义一个完整的数据结构。 分析: 1)抽象数据…

【Leetcode -617.合并二叉树 -1022.从根到叶的二进制数之和】

Leetcode Leetcode -617.合并二叉树Leetcode -1022.从根到叶的二进制数之和 Leetcode -617.合并二叉树 题目:给你两棵二叉树: root1 和 root2 。 想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠&#x…

ESP32-IDF VS Code进行开发

ESP32-C3 入门篇(二)使用VS Code进行开发 文章目录 前言 总结STM32的成功,除了Cortex M3的性能强之外,也离不开ST推出的标准库及简单易用的MDK IDE。完善的开发配套,极大的降低了开发门槛,让开发者更专注…

python:使用Scikit-image对遥感影像做空间滤波(中值,高斯,Sobel,Laplace,Scharr等)

作者:CSDN @ _养乐多_ 本文将介绍使用Scikit-image中的滤波函数对遥感影像做空间滤波的代码。滤波方法包括:中值滤波器,高斯滤波器,Sobel滤波器,Laplace滤波器,Scharr滤波器等。并将原始影像和结果影像绘制成图。 结果如下图所示, 文章目录 一、空间滤波函数详解二、…

RocketMQ发送消息

一.消费模式 MQ的消费模式可以大致分为两种,一种是 推Push,一种是 拉Pull。 Push 是 服务端 (MQ) 主动推送消息给客户端,优点是及时性较好,但如果客户端没有做好流控,一旦服务端推送大量消息到客户端时,…

分布式光伏电站智能管理系统

随着能源需求的增加,各种各样的光伏电站工程建设出现不同形式的技术缺陷。设计了分布式光伏电站区域智能系统,实现 了各个园区用电数据的集中管理。对光伏电站分布式运营管理进行了研究,采用集中运营管理中心的方法,建立了区域分布…

蓝牙L2CAP协议简介及报文格式

概述 逻辑链路控制和适配协议(Logical Link Control and Adaptation Protocol,L2CAP)是蓝牙的核心协议,负责适配基带中的上层协议。它同链路管理器并行工作,向上层协议提供定向连接的和无连接的数据业务。L2CAP具有分…

Baumer工业相机堡盟工业相机如何通过BGAPISDK将相机图像写入相机内存(C++)

Baumer工业相机堡盟工业相机如何通过BGAPISDK将相机图像写入相机内存(C) Baumer工业相机Baumer工业相机BGAPISDK和相机内存的技术背景Baumer工业相机通过BGAPISDK将相机图像写入相机内存功能1.引用合适的类文件2.通过BGAPISDK将相机图像写入相机内存功能…

Cortext-M3系统:异常(3)

1、异常 异常响应系统是再M3内核水平上的,支持众多的系统异常和外部中断。1-15为系统异常,大于16为外部中断。除了个别异常的优先级被定死外,其它异常的优先级都是可编程的。优先级数值越小,优先级越高。CM3支持中断嵌套&#xff…

网络嗅探与ARP欺骗

目录 一、网络嗅探概述 1.1 网络嗅探的概念 1.1.2 一把双刃剑 1.1.3 特点 1.2 网络嗅探的原理 1.2.1 网络嗅探的条件 1.2.2 网卡的工作模式 1.2.3 局域网的传输技术 1.3 网络嗅探的前提 1.3.1 网卡设置为混杂模式 1.3.2 同处在一个广播式局域网内 1.4 嗅探工具的使…

4.23 TCP状态转换 4.24半关闭、端口复用

4.23 TCP状态转换 2MSL(Maximum Segment Lifetime) 主动断开连接的一方,最后进入一个TIME_WAIT状态,这个状态会持续:2msl msl:官方建议:2分钟,实际是30s 当 TCP 连接主动关闭方接收到被动关闭方发送的 FIN…

【kubernetes】部署kube-apiserver与kubectl

前言:二进制部署kubernetes集群在企业应用中扮演着非常重要的角色。无论是集群升级,还是证书设置有效期都非常方便,也是从事云原生相关工作从入门到精通不得不迈过的坎。通过本系列文章,你将从虚拟机准备开始,到使用二进制方式从零到一搭建起安全稳定的高可用kubernetes集…

Flutter 组件集录 | RawMagnifier 组件 - 拿起你的八倍镜

theme: cyanosis 1. 前言 今天看 Flutter 源码,偶然发现 Magnifier 组件,这单词不就是 放大镜 嘛! 再结合新版 Flutter 中输入文本的放大镜效果,直觉告诉我这玩意应该可以放大任何组件。如下所示,背景是一张图片,使用 …

0013-TIPS-pawnyable : Race-Condition

原文 Linux Kernel PWN | 040204 Pawnyable之竞态条件 Holstein v4: Race Condition 题目下载 漏洞代码 #include <linux/module.h> #include <linux/kernel.h> #include <linux/cdev.h> #include <linux/fs.h> #include <linux/uaccess.h> #i…

使用 Vite + Vue3 + Element-Plus + Pinia + Ts 搭建 Vue3 项目

使用 Vite Vue3 Element-Plus Pinia Ts 搭建 Vue3 项目 使用Vite搭建配置Router配置 Element-Plus配置sass配置Pinia配置解析 符号&#xff0c;并找到对应的路径TypeScript忽略类型检查 使用Vite搭建 Vite 需要 Node.js 版本 14.18&#xff0c;16。然而&#xff0c;有些模…

chatgpt赋能python:Python指定小数点位数的完整指南

Python指定小数点位数的完整指南 Python是一种高级编程语言&#xff0c;广泛用于科学、统计和数学计算。在许多情况下&#xff0c;我们需要对浮点数进行更精确的计算。Python 中保留小数位数的能力很强&#xff0c;本文将向您介绍如何在 Python 中指定小数点后的位数。 为什么…

购买服务器/安装宝塔

1、服务器的选择 本人知道并了解一丢丢的就这四个平台&#xff1a; 1、阿里云 2、腾讯云 3、硅云 4、亚马逊 个人觉得阿里云是YYDS&#xff0c;啥都挺方便的&#xff0c;唯一不足就是有点小贵&#xff0c;但是新用户第一次购买还是很优惠的。 腾讯云有的云服务器是真的便宜&am…

【Batch_size 与 梯度 之间的关系】

chatGPT 回答 梯度更新与批大小&#xff08;batch size&#xff09;之间有密切的关系。批大小是指在训练过程中一次迭代所使用的样本数量。 在深度学习中&#xff0c;梯度下降是一种常用的优化算法&#xff0c;用于更新模型参数以最小化损失函数。梯度是损失函数对于模型参数…

Gradio Flagging模块解析与实践

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…