【大数据】可视化仪表板 - Superset的安装和使用

写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成,愿将昔日所获与大家交流一二,希望对学习路上的你有所助益。同时,博主也想通过此次尝试打造一个完善的技术图书馆,任何与文章技术点有关的异常、错误、注意事项均会在末尾列出,欢迎大家通过各种方式提供素材。

  • 对于文章中出现的任何错误请大家批评指出,一定及时修改。
  • 有任何想要讨论和学习的问题可联系我:zhuyc@vip.163.com。
  • 发布文章的风格因专栏而异,均自成体系,不足之处请大家指正。

可视化仪表板 - Superset的安装和使用

本文关键字:superset、可视化、Ubuntu、安装

文章目录

  • 可视化仪表板 - Superset的安装和使用
    • 一、Superset简介
      • 1. 软件作用
      • 2. 软件特点
    • 二、Superset安装
      • 1. 前置环境
      • 2. 安装配置
      • 3. 启动访问
    • 三、数据源配置
      • 1. PostgreSQL
      • 2. MySQL
      • 3. Hive
      • 4. 其它说明

一、Superset简介

Apache Superset是一个现代化的、企业级的数据探索和可视化平台,旨在帮助数据工程师和科学家在Web界面上创建和共享各种类型的数据洞察。

1. 软件作用

Apache Superset 的底层是一个 Flask 应用程序,其核心功能包括数据可视化、仪表板制作、数据切片和切块、以及 SQL Lab。在 Superset 的应用结构中,Flask 应用程序处理路由、视图函数和模板渲染,而 SQLAlchemy 提供了对多种数据库的抽象访问。
Apache Superset 支持多种数据源,可以连接到任何 SQL-speaking 数据库或数据引擎(如 MySQL、Postgres、BigQuery、Redshift 等),同时也支持各种 大数据组件 如 Hive、Presto、Druid 等,只需要安装部分组件即可。

2. 软件特点

  • 具有丰富的数据可视化组件库,提供了多种图表类型,可以满足各种数据展示需求
  • 使用SQL Lab可以直接执行SQL查询,方便快捷
  • 采用响应式设计,对移动设备友好
  • 具有强大的数据权限管理功能,可以精细控制每个用户的数据访问权限

二、Superset安装

1. 前置环境

软件需要运行在Python 3.6及以上版本,推荐使用虚拟环境,官方给出的安装步骤:https://superset.apache.org/docs/installation/installing-superset-from-scratch/。

  • virtualenv安装:pip install virtualenv
  • 创建虚拟环境:python3 -m venv superset
  • 激活虚拟环境:. superset/bin/activate
  • 前置环境安装

开始安装前,需要确保系统环境以及python虚拟环境已经安装了以下内容:

sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install python3-dev

pip install wheel

2. 安装配置

  • 安装superset:pip install apache-superset

  • 前置设定
# 推荐添加到环境变量配置文件中
export FLASK_APP=superset
superset fab create-admin


此时会遇到一个警告,我可以可以按照如下步骤来解决:

touch superset_config.py

# 推荐添加到环境变量配置文件中
export SUPERSET_CONFIG_PATH=/home/hadoop/superset/superset_config.py
superset fab create-admin

配置SUPERSET_CONFIG_PATH的路径,指向刚刚创建的config文件,完成后再次进行启动。

  • 报错解决

笔者在执行命令的过程中出现如下报错:

这是由于 sqlparse 不兼容导致的,默认安装了0.4.4,可以通过以下命令确认版本:

pip show sqlparse

此时需要降级到0.4.3,这是由于我目前安装的superset限制版本区间最低为0.4.3,如果大家选择了其它的版本请根据实际情况处理:

pip uninstall sqlparse
pip install sqlparse==0.4.3

3. 启动访问

前面的初始化步骤完成后可以导入一些样例数据,然后进行启动,在执行所有操作前需要先进行初始化。

  • 导入样例数据
# 初始化命令
superset db upgrade
# 加载数据,耗时较长
superset load_examples
  • superset构建

首先需要下载前端项目的源代码,然后确保系统已经安装了Node环境。小编当前使用的版本要求node 16.9.1以上,npm 7.5.4 || 8.1.2 以上,这里以安装node 16.x为例。

git clone https://github.com/apache/superset.git


强烈提醒:请保证NodeJS的大版本一致,否则需要自己想办法解决各种构建问题。如果遇到RpcIpcMessagePortClosedError错误,一般为内存不足导致,请尝试增加内存。

# 安装构建所需环境
sudo apt  install curl
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo npm install -g npm@latest
sudo npm install -g node-gyp
# ARM架构需要手动安装chromium-browser
sudo apt install chromium-browser
# 构建前端项目
npm ci
# 预先解决一些构建中遇到的问题
npx update-browserslist-db@latest
# 该步骤耗时较长 - 需要保证可用内存在4GB以上
npm run build
  • superset启动
# 切换到superset-frontend的上一级目录
cd ..
superset run -p 8088 --with-threads --reload --debugger

  • superset访问

启动后,在浏览器访问8088端口即可,使用此前初始化是设定的密码进行登录:

可以查看到,已经显示了此前导入过的样例:

三、数据源配置

在操作界面右上角,支持多种数据源添加方式,本文将介绍数据库连接方式。

1. PostgreSQL

  • 依赖安装

在连接PostgreSQL时,需要在项目启动之前,先安装相关依赖。激活superset虚拟环境后执行如下命令:

pip install psycopg2-binary
  • 连接配置

在配置界面,默认支持PostgreSQL和SQLite两种直接导入方式:

选择PostgreSQL进入配置界面:

连接成功后,可以开始创建DATASET,或者也可以使用:

点击FINISH后,再次点击右上角的➕,此时Data选单下出现Create dataset

2. MySQL

当已经添加了一个数据库连接后,想要再次添加另外的数据源,可以按照如下步骤操作:

然后在操作界面中可以再次看到添加DATABASE的按钮,如图:

  • 依赖安装

在连接MySQL时,需要在项目启动之前,先安装相关依赖。激活superset虚拟环境后执行如下命令:

sudo apt-get install libmysqlclient-dev
pip install mysqlclient
  • 连接配置

在配置界面,选择Other,通过连接字符串来直接配置:

连接字符串为SQLAlchemy URI格式 -> mysql://username:password@hostname:port/database

3. Hive

  • 依赖安装

在连接Hive时,需要在项目启动之前,先安装相关依赖。激活superset虚拟环境后执行如下命令:

pip install PyMySQL
pip install pyhive
pip install thrift
sudo apt-get install python-dev libsasl2-dev
pip install sasl
pip install thrift_sasl

连接前确保Hive相关服务已经启动,具体步骤可以参考:Hive 3.x的安装部署 - Ubuntu

  • 连接配置

在配置界面,选择Other,通过连接字符串来直接配置:

连接字符串为SQLAlchemy URI格式 -> hive://username:password@hostname:port/database

在连接测试通过后,点击CONNECT按钮可能会出现一个无法连接的异常,但是小编实际测试后发现并没有任何影响。此时连接已经成功创建,我们只要将弹窗关闭,然后刷新页面即可,后续的使用也一切正常。

4. 其它说明

当我们不断的向superset的虚拟环境添加各种连接所需的依赖,并且创建相应类型的连接后,操作界面就会变得越来越丰富:

当我们需要的数据源类型基本稳定后,就可以将superset进程挂在后台运行了,这样我们可以专注于可视化的工作:

# 进入到对应目录后执行
nohup superset run -p 8088 --with-threads --reload --debugger &

扫描下方二维码,加入CSDN官方粉丝微信群,可以与我直接交流,还有更多福利哦~
在这里插入图片描述

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

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

相关文章

MYSQL中 find_in_set() 函数用法详解

MYSQL中 find_in_set() 函数用法详解 官方涵义(MySQL手册中语法说明) FIND_IN_SET(str,strlist) : str 要查询的字符串,strlist 需查询的字段,参数以”,”分隔,形式如 (1,2,6,8,10,22);该函数的…

接口如何运用pytest+HttpRunner展开测试?

目录 前言: 一、 什么是接口测试 二、 引入自动化背景 三、 自动化技术选型 四、 自动化测试用例 五、自动化成果 前言: pytest和HttpRunner都是Python编程语言中常用的接口测试框架。 pytest是一种成熟的、灵活的、社区支持良好的测试框架&…

vr沉浸式仿真实训展厅中控系统提高课堂纪律

为解决实训教学过程中“看不到、进不去、成本高、危险大”的问题,VR智能中控系统为职业教育及高等教育老师提供一个数字化、沉浸式、集中管控的实训教学工具。 VR智能中控系统通过对VR教学课堂的实时监控、数据的收集和分析,为气象学院的教学提供更多帮助…

2023年05月份青少年软件编程Scratch试卷三级真题

2023-05 Scratch三级真题 分数:100 题数:38 测试时长:60min 一、单选题(共25题,共50分) 1. 关于变量,下列描述错误的是?(A)(2分) (变量那一栏…

【深度学习】基于Qt的人脸识别系统,门禁人脸识别系统,Python人脸识别流程,树莓派

文章目录 人脸识别过程人脸检测人脸对齐人脸特征提取特征距离比对人脸识别系统 人脸识别过程 在深度学习领域做人脸识别的识别准确率已经高到超出人类识别,但综合考虑模型复杂度(推理速度)和模型的识别效果,这个地方还是有做一些…

基于Java物流管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

STM32单片机(四)第一节:OLED调试工具

❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要…

从业务出发,K8S环境自建和非自建整体架构设计比较

新钛云服已累计为您分享751篇技术干货 随着数字化转型的大潮到来,越来越多的企业开始上云,同时也纷纷加入到微服务和K8S队伍中。但在K8S整体环境究竟应该用自建的还是非自建?以及他们需要用到的服务,究竟应该自建还是直接用PAAS服…

C++【STL】之list的使用

文章目录: list介绍list使用1. 默认成员函数1.1 构造函数1.2 拷贝构造1.3 赋值重载1.4 析构函数 2. 迭代器3. 容量操作4. 数据访问5. 数据修改5.1 插入删除5.2 交换调整清理 6. 其他操作6.1 链表拼接6.2 链表移除6.3 排序6.4 链表逆置 list介绍 list是可以在常数范围…

java 版本企业电子招投标采购系统源码之登录页面

​ 信息数智化招采系统 服务框架:Spring Cloud、Spring Boot2、Mybatis、OAuth2、Security 前端架构:VUE、Uniapp、Layui、Bootstrap、H5、CSS3 涉及技术:Eureka、Config、Zuul、OAuth2、Security、OSS、Turbine、Zipkin、Feign、Monitor、…

轻量服务器架设网站打开速度慢,如何加速?

轻量服务器非常适合流量适中的小、中型网站,虽作为轻量级主机包,但它一般与云服务器使用同样的 CPU、内存、硬盘等底层资源。只是,轻量服务器的资源(可用的存储空间、RAM 和 CPU等硬件/内存容量)更低,虽然这些对于较中、小的网站来…

性能优化-内存优化

8-《内存优化》 一.基础知识1.Java的内存分配区域2.Java的引用类型3.Java的垃圾回收机制:三个问题4.Android的内存管理机制 二. Android的内存泄漏、内存溢出、内存抖动概念0.内存泄露1.内存溢出![在这里插入图片描述](https://img-blog.csdnimg.cn/8b73ef844f26470…

png转jpg,直接改后缀?

通过把.png改为.jpg可以改变图片的格式么? 将PNG文件扩展名改为JPEG的扩展名(.jpg或.jpeg)不会更改图像的格式。它只是更改了文件扩展名,这可能导致一些图像查看器和编辑器无法正确识别和处理该文件。 PNG和JPEG是两种不同的图像文…

Python自动人工智能训练数据增强工具 | DALI介绍(含代码)

Python自动人工智能训练数据增强工具 | DALI介绍(含代码) 文章目录 Python自动人工智能训练数据增强工具 | DALI介绍(含代码)自动数据增强方法DALI 和条件执行使用 DALI 自动增强使用 DALI 的自动增强性能尝试使用 DALI 进行自动增强 深度学习模型需要数百 GB 的数据才能很好地…

练习:逻辑回归

练习2:逻辑回归 介绍 在本练习中,您将实现逻辑回归并将其应用于两个不同的数据集。还将通过将正则化加入训练算法,来提高算法的鲁棒性,并用更复杂的情形来测试模型算法。 在开始练习前,需要下载如下的文件进行数据上…

研一,有点迷茫。

作者:阿秀 校招八股文学习网站:https://interviewguide.cn 这是阿秀的第「277」篇原创 小伙伴们大家好,我是阿秀。 最近回答了不少大一大二研一在读的学习圈中学弟学妹的咨询问题,基本都是计算机学习、进度、疑惑等等相关的问题&a…

Mock和Vite-plugin-Mock的区别是什么?

简介 我不知道大家和我是否有一样的疑问,之前Mock.js用的挺好,为啥又出现了一个vite-plugin-mock,而且这个插件还依赖于Mock.js.那么他的优势到底是什么呢?如果你也有这样的疑问,本文最后会给出答案解开这个谜底 前言 我之前已经…

MVC、MVP、MVVM:详解2

概述 MVC、MVP、MVVM 都是在 Android 开发中经常用到的架构思想,它们都是为了更好地分离代码、提高代码可复用性、方便维护等目的而设计的。下面对这三种架构思想进行简单的介绍和比较。 MVC MVC 架构是最早被使用的一种架构,它把程序分成了三个部分&…

EasyExcel实现execl导入导出

引言 在实际开发中,处理 Excel 文件是一个常见的需求。EasyExcel 是一个基于 Java 的开源库,提供了简单易用的 API,可以方便地读取和写入 Excel 文件。本文将介绍如何使用 EasyExcel 实现 Excel 导入功能,以及一些相关的技巧和注…

【问题记录】Visual Studio 下的Qt工程无法打开 “xxx.ui“ 文件和LNK1104 无法打开文件“Qt5Cored.lib”错误

环境 Windows 11 家庭中文版Microsoft Visual Studio Community 2022 (64 位) - Current 版本 17.5.3qt-vsaddin-msvc2022-2.9.1-rev.06 问题产生 VS下Qt环境准备好后,创建了Qt工程然后点击 Form Files 下的 “xxx.ui” 文件,在弹出 Qt 设计师 界面后…