【Apache Superset】从概述、安装到运用,一篇掌握!

文章目录

    • 什么是 Superset?
    • Superset 的优势
    • 安装
      • 安装 Anaconda 包管理工具
        • 创建 Superset 的 Python 环境
      • 下载 Superset 依赖
      • 更新工具
      • 安装 Superset
      • 配置 MySQL 元数据库
      • 初始化 Superset 数据库
        • 报错一
        • 报错二
        • 报错三
        • 数据库初始化完成
      • 初始化 Superset
        • 报错一
        • 警告信息
      • 启动 Superset
      • 关闭 Superset
    • 数据源导入
    • 新建数据集
    • 图表展示

什么是 Superset?

Apache Superset 是一个现代的企业级商业智能 Web 应用程序。它快速、轻量、直观,并内置了各种选项,使所有的用户都可以轻松探索和可视化他们的数据,从简单的饼图到高度详细的地理空间图表。

简单来说,Superset 就是一个访问数据源并对其进行可视化的工具。

Superset 的优势

1.易用性和可扩展性
Superset 提供直观的用户界面,使得创建、分享和可视化数据变得简单。同时,它也是可扩展的,可以集成多种数据源,包括常见的数据库(如MySQL、PostgreSQL、SQLite等)、大数据平台(如Hadoop、Spark)以及云服务(如AWS、Google Cloud等)。

2. 丰富的可视化选项
Superset 提供多样化的可视化选项,包括图表、仪表盘和自定义报告。用户可以根据需要选择合适的图表类型,并进行定制化设置,以呈现数据的最佳展示效果。

3. 强大的数据探索和分析功能
它具备强大的数据探索功能,支持使用 SQL 编写查询,并能够进行数据切片、切块、过滤和汇总等操作。

4.开放的社区和生态系统
Superset 是一个开源项目,拥有活跃的社区支持。这意味着有大量的文档、教程和社区贡献的插件或扩展,可以帮助用户更好地使用和定制 Superset。

5.安全性和权限管理
Superset 提供了丰富的权限管理功能,可以控制用户对数据和可视化的访问权限,保障数据的安全性。

Superset 结合了易用性、灵活性和强大的功能,使得数据分析师和业务用户能够更轻松地探索、可视化和理解数据。

安装

安装 Anaconda 包管理工具

用 Anaconda 来管理后面需要使用 Python 包以及相关依赖,后期易于维护,使用也更加方便。

直接访问官网下载即可:Installers & Packages

在这里插入图片描述

这里建议直接选择最小化安装,后面需要哪些依赖再进行安装。

在这里插入图片描述

选择该版本下载即可,将安装包上传到 Linux 系统中,执行安装:

bash Miniconda3-latest-Linux-x86_64.sh

按照步骤来安装就行,安装成功后出现如下提示:

在这里插入图片描述

安装路径默认存储在 home 目录中的当前操作用户文件夹下:

在这里插入图片描述

刷新环境变量:

source ~/.bashrc

在这里插入图片描述

刷新完成后,会发现它默认激活了 Conda 的 base 环境,我们可以通过命令禁用,不默认激活:

conda config --set auto_activate_base false
创建 Superset 的 Python 环境

使用 Conda 创建一个 Python 环境,取名为 Superset。

conda create --name superset python=3.8.16

创建完成后,出现如下提示:

在这里插入图片描述

# 激活环境
conda activate superset

# 退出环境
conda deactivate

下载 Superset 依赖

Superset 将数据库连接信息存储在其元数据数据库中,并使用 Python 库加密了连接密码。但是,这个库具有操作系统级别的依赖性,每种系统所需要的依赖项都不相同。

Ubantu

sudo apt-get install build-essential libssl-dev libffi-dev python-dev python-pip libsasl2-dev libldap2-dev default-libmysqlclient-dev

# Ubuntu 20.04
sudo apt-get install build-essential libssl-dev libffi-dev python3-dev python3-pip libsasl2-dev libldap2-dev default-libmysqlclient-dev

CentOS

sudo yum install gcc gcc-c++ libffi-devel python-devel python-pip python-wheel openssl-devel cyrus-sasl-devel openldap-devel -y

更新工具

更新 pipsetuptools 工具。

pip install --upgrade setuptools pip

安装 Superset

先激活上面创建的 Superset 环境,然后安装 Superset:

# 激活环境
conda activate superset

# 安装 Superset
pip install apache-superset

配置 MySQL 元数据库

将 Superset 的元数据配置为 MySQL,进入 MySQL 中,创建库与用户,并授予权限。

-- 创建库
CREATE DATABASE superset DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

-- 创建用户
create user superset@'%' identified WITH mysql_native_password BY 'superset';

-- 授权
grant all privileges on *.* to superset@'%' with grant option;

-- 刷新
flush privileges;

配置 Superset 数据库连接信息,该文件位于创建的 Python Superset 环境下:

在这里插入图片描述

注意,这里需要修改为你对应的安装路径。

cd /home/manager/miniconda3/envs/superset/lib/python3.8/site-packages/superset

进入到 Superset 的安装路径后,修改配置文件:

vim config.py

通过搜索,快捷定位到需要修改的位置:

在这里插入图片描述

将默认的连接注释掉,修改为 MySQL 连接:

SQLALCHEMY_DATABASE_URI = 'mysql://superset:superset@hadoop120:3306/superset?charset=utf8'

这里的 MySQL 的用户名、密码、主机、库名指定为你设置的,指定字符集为 utf8

修改完成后,如下所示:

在这里插入图片描述

保存并退出,然后下载 Python 连接驱动:

conda install mysqlclient

需要输入 y 进行同意。

初始化 Superset 数据库

在 Conda 环境中初始化 Superset 数据库。

superset db upgrade
报错一

在初始化数据库时可能会出现如下报错:

在这里插入图片描述

AttributeError: module ‘sqlparse.keywords’ has no attribute ‘FLAGS’

这是由于 sqlparse 版本过低引起的,建议重新安装,不要进行更新:

pip uninstall sqlparse
pip install sqlparse==0.4.3

然后再次执行 Superset 数据库初始化命令。

报错二

在初始化数据库时可能会出现如下报错:

在这里插入图片描述

翻译过来如下所示:

--------------------------------------------------------------------------------
警告
--------------------------------------------------------------------------------
检测到默认SECRET_KEY,请使用superset_config.py覆盖它。
使用强大的复杂字母数字字符串并使用工具帮助您生成
一个足够随机的序列,例如:openssl rand-base64 42
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
由于SECRET_KEY不安全而拒绝启动

这是因为 Superset 未检测到密钥,不安全,需要进行设置。

进入 Conda 创建 Superset 环境的目录下:

cd /home/manager/miniconda3/envs/superset

先使用 openssl 命令来生成一个密钥:

openssl rand -base64 42

在这里插入图片描述

然后创建 superset_config.py 文件,配置并指定密钥等信息:

# Superset 配置

# 行数限制 5000 行
ROW_LIMIT = 5000
 
# 网站服务器端口 8088
SUPERSET_WEBSERVER_PORT = 8088

# Superset 密钥
SECRET_KEY = "Y3TCbJjwTadxFbI6q6eyb1R7BhNI1w5Y3XpUARX/AS6igMCFjy0VeobX" 

# 跨域请求攻击标识
WTF_CSRF_ENABLED = True
 
# CSRF 白名单
WTF_CSRF_EXEMPT_LIST = []
 
# CSFR 令牌过期时间 1 年
WTF_CSRF_TIME_LIMIT = 60 * 60 * 24 * 365
 
# 接口密钥用来启用 Mapbox 可视化
MAPBOX_API_KEY = ''

将该文件添加到环境变量中:

vim /etc/profile

# 在文件末尾添加

# SUPERSET_CONFIG
export SUPERSET_CONFIG_PATH=/home/manager/miniconda3/envs/superset/superset_config.py

路径修改为你的存储路径。

添加完成后,保存退出,刷新环境变量:

source /etc/profile

再次执行 Superset 数据库初始化命令。

报错三

在初始化数据库时可能会出现如下报错:

在这里插入图片描述

ModuleNotFoundError: No module named ‘marshmallow_enum’

这是由于 marshmallow_enum 模块不存在,直接下载即可:

pip install marshmallow_enum

再次执行 Superset 数据库初始化命令。

数据库初始化完成

初始化完成后,如下所示:

在这里插入图片描述
进入 MySQL 库中,查看指定的 Superset 元数据库中是否已经存在内容。

use superset;

show tables;

在这里插入图片描述

可以看到,Superset 数据库初始化已经完成了,共创建了 66 张表。

初始化 Superset

对数据库进行初始化后,还需要对 Superset 进行初始化,创建管理员用户:

superset fab create-admin

在这里插入图片描述

设置管理员用户名与密码,其中 first namelast name 以及邮箱可以不进行设置,直接按回车跳过即可。

然后执行初始化命令:

superset init
报错一

这里可能会出现报错:

在这里插入图片描述

No PIL installation found

直接下载即可:

pip install pillow

然后重新执行初始化命令。

警告信息

在这里插入图片描述

在初始化 Superset 时,会出现这些警告信息,说未配置安全策略(CSP)。不用管,不会影响正常使用。

启动 Superset

1.安装 gunicorn
Gunicorn ‘Green Unicorn’ 是一个适用于 UNIX 的 Python WSGI HTTP 服务器。Gunicorn 服务器广泛兼容各种 Web 框架,实现简单,占用服务器资源少,速度相当快。

pip install gunicorn

如果已经安装可以跳过。

2.启动 Superset

gunicorn --workers 3 --timeout 120 --bind hadoop120:8787  "superset.app:create_app()" --daemon 

参数解析如下:

  • --workers:指定进程的个数。

  • --timeoutworker 进程超时时间,超时会自动重启。

  • --bind:绑定主机地址,即为 Superset 访问地址。

  • --daemon:后台运行。

启动命令执行完成后,就可以去访问绑定的主机地址了,会自动跳转到 Superset 的 WEB UI 登录界面:

在这里插入图片描述

输入在初始化时指定的管理员账号与密码进行登录,进入 Supset 的操作界面:

在这里插入图片描述

关闭 Superset

我们可以通过 ps 命令查询到当前正在运行的 Superset 进程:

ps -ef | grep "/superset/"

可以看到,其中有多个进程:

在这里插入图片描述

如果要关闭 Superset,把这些进程都 kill 掉即可。

ps -ef | awk '/superset/ && !/awk/{print $2}' | xargs kill -9

找到所有包含 /superset/ 但不包含 awk 的进程,然后使用 kill -9 强制终止这些进程。


到此为止,Superset 就已经安装完成啦~

数据源导入

登录进入 Superset 界面后,点击右上角添加数据源。

这里支持多种数据源,根据自身的需求来,我选择的是通过连接数据库来获取数据,直接使用库中的数据。

在这里插入图片描述

配置数据库连接信息,我这里使用的是 MySQL 数据库。

在这里插入图片描述

配置数据库相关信息:

在这里插入图片描述

补充: 这里需要添加一个字符集参数 charset=utf8,不然后面中文会显示乱码。

在这里插入图片描述


注意,这里在连接时可能会出现一个报错:

MySQLdb._exceptions.OperationalError) (2059, "Authentication plugin 'caching…

这是由于 MySQL8 密码规则验证的问题,可以通过下面这篇博客进行解决:_mysql_exceptions.OperationalError: (2059, “Authentication plugin ‘caching_sha2_password‘ cannot be解决方法

在这里插入图片描述

配置完成后,点击 Finish 即可完成数据库源的配置,数据源导入完成。

新建数据集

数据源添加后,还需要选择后面进行图表展示的数据集。

点击【Datasets】,选择右侧的【DATASET】按钮:

在这里插入图片描述

新建一个需要进行图表展示的数据集,选择数据源、库、表即可进行创建。

在这里插入图片描述

图表展示

这里就到了 Superset 最核心的部分了,只需简单配置,选择指定的图表类型后,即可将数据展示出来。

点击右上角的 + 号,选择【Chart】新建图表

在这里插入图片描述

选择数据集以及图表类型:

在这里插入图片描述

选择用于展示的字段、数据聚合的字段与类型、数据量等,生成对应的图表,如下所示:

在这里插入图片描述

这样图表就绘制完成啦,可以点击右上角的【SAVE】按钮进行保存。

后续可以根据自身情况,配置对应的数据源以及数据集,选择相应的图表进行展示,这就是 SuperSet 的作用啦!

只需要简单的配置,即可将数据绘制成想要的图表,岂不美哉!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【解决(几乎)任何机器学习问题】:超参数优化篇(超详细)

这篇文章相当长,您可以添加至收藏夹,以便在后续有空时候悠闲地阅读。 有了优秀的模型,就有了优化超参数以获得最佳得分模型的难题。那么,什么是超参数优化呢?假设您的机器学习项⽬有⼀个简单的流程。有⼀个数据集&…

【算法设计与分析】反转链表 ||

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;算法分析与设计 ⛺️稳中求进&#xff0c;晒太阳 题目 给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right 。请你反转从位置 left 到位置 right 的链表…

【MySQL】外键约束的删除和更新总结

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-7niJLSFaPo0wso60 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

【Linux 02】权限基本概念

文章目录 &#x1f308; Ⅰ 权限概念&#x1f308; Ⅱ 权限管理1. 文件访问者分类 (角色)2. 文件类型和访问权限 (事物属性)3. 文件权限值表示方法 &#x1f308; Ⅲ 权限修改1. chmod 设置文件访问权限2. chown 修改文件拥有者3. chgrp 修改文件或目录的所属组 &#x1f308; …

Hive——企业调优经验

前言 本篇文章主要整理hive-3.1.2版本的企业调优经验&#xff0c;有误请指出~ 一、性能评估和优化 1.1 Explain查询计划 使用explain命令可以分析查询计划&#xff0c;查看计划中的资源消耗情况&#xff0c;定位潜在的性能问题&#xff0c;并进行相应的优化。 explain执行计划…

LabVIEW荧光显微镜下微管运动仿真系统开发

LabVIEW荧光显微镜下微管运动仿真系统开发 在生物医学研究中&#xff0c;对微管运动的观察和分析至关重要。介绍了一个基于LabVIEW的仿真系统&#xff0c;模拟荧光显微镜下微管的运动过程。该系统提供了一个高效、可靠的工具&#xff0c;用于研究微管与运动蛋白&#xff08;如…

汉诺塔问题——递归算法与非递归算法

一、问题描述 汉诺塔问题是一个经典的问题。汉诺塔&#xff08;Hanoi Tower&#xff09;&#xff0c;又称河内塔&#xff0c;源于印度一个古老传说。大梵天创造世界的时候做了三根金刚石柱子&#xff0c;在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令…

Spring 用法学习总结(一)之基于 XML 注入属性

百度网盘&#xff1a; &#x1f449; Spring学习书籍链接 Spring学习 1 Spring框架概述2 Spring容器3 基于XML方式创建对象4 基于XML方式注入属性4.1 通过set方法注入属性4.2 通过构造器注入属性4.3 使用p命名空间注入属性4.4 注入bean与自动装配4.5 注入集合4.6 注入外部属性…

auto.js教程(autojs教程、autox.js、autoxjs)笔记(二)环境搭建——2、安卓手机投屏软件scrcpy的安装和使用(scrcpy教程)

参考文章&#xff1a;【自动化技术】Autojs从入门到精通 参考文章&#xff1a;AutoXJS开发入门简介菜鸟教程 参考文章&#xff1a;关于Auto.js的下架说明 参考文章&#xff1a;Auto.js 4.1.0 文档 文章目录 005--【环境搭建】2、安卓手机投屏软件scrcpy的安装和使用scrcpy官…

【1024】我的创作纪念日

机缘 1024天了&#xff0c;开始在这里学习编程知识、IT技能&#xff0c;CSDN让我发现了一群热爱学习和分享的小伙伴&#xff0c;也逐渐在这里稳定下来。 收获 不知不觉已经两年多过去了&#xff0c;通过不断的分享&#xff0c;不仅自己的知识技能得到了提升&#xff0c;能帮…

腾讯云4核8G服务器多少钱?

腾讯云4核8G服务器多少钱&#xff1f;轻量应用服务器4核8G12M带宽一年446元、646元15个月&#xff0c;云服务器CVM标准型S5实例4核8G配置价格15个月1437.3元&#xff0c;5年6490.44元&#xff0c;标准型SA2服务器1444.8元一年&#xff0c;在txy.wiki可以查询详细配置和精准报价…

SpringCloud-Hystrix:服务熔断与服务降级

8. Hystrix&#xff1a;服务熔断 分布式系统面临的问题 复杂分布式体系结构中的应用程序有数十个依赖关系&#xff0c;每个依赖关系在某些时候将不可避免失败&#xff01; 8.1 服务雪崩 多个微服务之间调用的时候&#xff0c;假设微服务A调用微服务B和微服务C&#xff0c;微服…

B2科目二考试项目笔记

B2科目二考试项目笔记 1 桩考1.1 右起点倒库1.2 移库&#xff08;左→右&#xff09;1.3 驶向左起点1.4 左起点倒库1.5 驶向右起点 2 侧方停车考试阶段&#xff08;从路边开始&#xff09;&#xff1a; 3 直角转弯4 坡道定点停车和起步5 单边桥6 通过限速限宽门7 曲线行驶8 连续…

[数学建模] 计算差分方程的收敛点

[数学建模] 计算差分方程的收敛点 差分方程&#xff1a;差分方程描述的是在离散时间下系统状态之间的关系。与微分方程不同&#xff0c;差分方程处理的是在不同时间点上系统状态的变化。通常用来模拟动态系统&#xff0c;如在离散时间点上更新状态并预测未来状态。 收敛点&…

Selenium图表自动化开篇

目录 前言&#xff1a; 使用 Canvas 或者 SVG 渲染 选择哪种渲染器 代码触发 ECharts 中组件的行为 前言&#xff1a; 图表自动化一直以来是自动化测试中的痛点&#xff0c;也是难点&#xff0c;痛点在于目前越来越多公司开始构建自己的BI报表平台但是没有合适的自动化测试…

计算机设计大赛 深度学习OCR中文识别 - opencv python

文章目录 0 前言1 课题背景2 实现效果3 文本区域检测网络-CTPN4 文本识别网络-CRNN5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; **基于深度学习OCR中文识别系统 ** 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;…

使用bpmn-js 配置颜色

本篇文章介绍如何使用bpmn-js给图例配置颜色。该示例展示了如何向BPMN图添加颜色的多种不同方法。 通过层叠设置颜色 这种方式比较简单&#xff0c;直接通过设置图片的CSS层叠样式就可实现。 .highlight-overlay {background-color: green; /* color elements as green */opa…

Python算法探索:从经典到现代

引言 Python&#xff0c;作为一种功能强大的编程语言&#xff0c;一直是算法实现的首选工具。从经典的排序和查找算法到现代的机器学习和深度学习算法&#xff0c;Python都展现出了其强大的实力。接下来&#xff0c;我们将一起探索Python算法的经典与现代。 一、经典算法&#…

关于Django的中间件使用说明。

目录 1.中间件2. 为什么要中间件&#xff1f;3. 具体使用中间件3.1 中间件所在的位置&#xff1a;在django的settings.py里面的MIDDLEWARE。3.2 中间件的创建3.3 中间件的使用 4. 展示成果 1.中间件 中间件的大概解释&#xff1a;在浏览器在请求服务器的时候&#xff0c;首先要…

小区周边适合开什么店?商机无限等你来挖掘

在小区周边开店&#xff0c;是许多创业者的首选。那么&#xff0c;到底开什么店才能抓住商机呢&#xff1f; 作为一名开店 5 年的资深创业者&#xff0c;我将以我的鲜奶吧为例&#xff0c;分享一些实用的经验和见解。 我的鲜奶吧采用了鲜奶吧酸奶店结合体的模式&#xff0c;产…
最新文章