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

news2024/11/16 13:26:12

写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从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官方粉丝微信群,可以与我直接交流,还有更多福利哦~
在这里插入图片描述

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

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

相关文章

11-高性能JSON库——fastjson2

目录 1.具体使用 1.1.添加fastjson2依赖 1.2.常用类和方法 1.3.将JSON字符串转换成对象 1.3.1.JSON字符串转换成对象 1.3.2.JSON字符串转换成数组 1.4.将对象转换成JSON字符串 1.4.1.将对象转换成JSON字符串 1.4.2.将数组转换成 JSON 字符串 2.性能测试报告 3.总结 …

浪潮发布G2平台

2017年2月28日下午,浪潮在北京粤财JW万豪酒店以“智变”为主题,发布新一代智能存储平台G2,该平台基于统一架构和In系列智能软件设计,在保障”三高”特性满足企业级关键数据存储、处理需求的同时,更强调数据生命周期的智…

第六章 部署WSUS及RDS服务

❄️作者介绍:奇妙的大歪❄️ 🎀个人名言:但行前路,不负韶华!🎀 🐽个人简介:云计算网络运维专业人员🐽 前言 适用范围:Windows Server 2022、Windows Server…

揭密ChatGPT背后团队鲜为人知的小秘密

ChatGPT引领的人工智能技术浪潮还在持续火爆,可是做出这款产品的OpenAI公司,熬得住多年的冷板凳,最终一飞冲天,他们是怎么做到的呢? 因此,我对这家企业的组织建设产生了浓厚的兴趣。我找啊找,最…

游戏开发日志13(利用PlayerPrefs来存储数据)

为游戏设置一个音量键,可以自由选择背景音乐是否开启,并且保存这个设置。 设计了UI如下: 其中BGM为Toggle,其余四个为Button 在canvas(set)上添加两个脚本:GameMnue,GameManage p…

【备战秋招】每日一题:4月15日美团春招第三题:题面+题目思路 + C++/python/js/Go/java带注释

为了更好的阅读体检,为了更好的阅读体检,,可以查看我的算法学习博客第三题-交通规划 在线评测链接:P1237 题目内容 塔子哥所在的国家有 n 个城市,这 n 个城市排成一列,按顺序编号为 1,2,3,...,n。然而,由…

【备战秋招】每日一题:4月8日美团春招第五题:题面+题目思路 + C++/python/js/Go/java带注释

为了更好的阅读体检,为了更好的阅读体检,,可以查看我的算法学习博客第五题-RGP种树 在线评测链接:P1170 题目描述: 塔子哥是一位著名的冒险家,他经常在各种森林里探险。今天,他来到了道成林,…

【Django 网页Web开发】24. 实战项目:moudleForm的文件上传应用到城市管理(17)(保姆级图文)

目录 用户上传文件存放media如何启用1. 在urls.py中进行配置:2. 在settings.py中进行配置:3. 能够通过media的url访问文件 moudleForm上传文件实现城市管理1. moudle.py2. url.py3. city.py4. city.html5. 文件上传小结6. 城市管理效果总结 欢迎关注 『D…

Vivado远程开发探索

平时主要用轻薄本办公,但是有时候又需要用Vivado做一些开发的工作,就感觉生产力不够。如果能在远程的高性能服务器上跑Vivado综合实现就好了。前段时间用ubuntu下安装的Vivado发现有一个Remote Host的设置。所以就准备折腾一下这个。 WSL WSL的安装看官…

chatgpt赋能python:Python怎么调成黑色背景?

Python怎么调成黑色背景? 随着人们对代码编辑器的要求越来越高,许多开发者都喜欢在黑色背景下编写代码。不仅仅是视觉审美方面考虑,黑色背景对眼睛的伤害也比浅色背景要小得多。本篇文章将介绍如何在Python中调整为黑色背景 介绍 默认情况…

[C++刷题之旅]反转链表

🌸心有所向,日复一日,必有精进 🌸专栏:C刷题之旅 🌸作者:早凉 目录 题目一:反转链表 【题目链接】 【题目描述】 【解题思路】 【代码实现】 进阶:链表中指定区间…

【异步】Futurn、FutureTask、CompletionService、CompletableFuture

1. Callable 在这篇文章中 【Thread】线程的基本概念及创建方式(一),我们知道创建线程的几种方式。其中,有两个是通过接口来实现的:Runnable、Callable。它们的区别如下: Runnable 接口中的方法是没有返回…

代码审计——XXE详解

为方便您的阅读,可点击下方蓝色字体,进行跳转↓↓↓ 01 漏洞描述02 审计要点03 漏洞特征04 漏洞案例05 修复方案 01 漏洞描述 XXE(XML External Entity Injection)是一种针对XML终端实施的攻击,漏洞产生的根本原因就是…

chatgpt赋能python:Python怎么调整行距

Python怎么调整行距 在Python中,我们可以使用不同的方法来调整文本行距。 在这篇文章中,我们将讨论最常用的两种方法:使用文本编辑器和使用Python代码。 使用文本编辑器 许多文本编辑器都具有设置行距的选项。 这通常在“格式”或“段落”…

SpringBoot + Mybatis Plus 实现的瀑布内容管理系统、CMS建站系统

瀑布内容管理系统 瀑布内容管理系统,采用SpringBoot Apache Shiro Mybatis Plus Thymeleaf 实现的内容管理系统(附带权限管理),是搭建博客、网站的不二之选。 项目介绍 PB-CMS,致力于开发最精简、实用的CMS管理系统,适合搭建…

chatgpt赋能python:Python如何访问手机:探索移动端SEO优化的新途径

Python如何访问手机:探索移动端SEO优化的新途径 随着移动互联网的快速发展,移动端成为了各大搜索引擎的竞争焦点。对于SEO优化工程师而言,探索移动端SEO优化的新途径显得尤为关键。而Python作为一种强大的编程语言,在移动端SEO优…

MM32F3273G8P火龙果开发板MindSDK开发教程21 - PWM的使用

MM32F3273G8P火龙果开发板MindSDK开发教程21 - PWM的使用 1、简述 开发版的LED灯连接PA1脚,而PA1可以映射TIM2_CH2,所以我们用通用定时器2的TIM2_CH2输出PWM到PA1脚,通过更改PWM的占空比,来改变LED的亮度。 2、LED灯的初始化…

读数据压缩入门笔记06_上下文转换

1. 压缩算法可归为两类 1.1. 统计压缩(即VLC) 1.2. 字典压缩(如LZ78) 1.3. 从不同的角度利用了给定数据流中存在的统计冗余信息 2. 上下文变换 2.1. contextual transform 2.2. 给定一组相邻的符号集,对它们进行…

代码审计——任意文件下载详解

为方便您的阅读,可点击下方蓝色字体,进行跳转↓↓↓ 01 漏洞描述02 审计要点03 漏洞特征04 漏洞案例05 修复方案 01 漏洞描述 网站可能提供文件查看或下载的功能,如果对用户查看或下载的文件不做限制,就能够查看或下载任意的文件&…

大数据相关概念了解

Hadoop生态及Hive、HBase、Impala、HDFS之间的关系 Hadoop生态(什么是 Hadoop) Apache Hadoop软件库是一个框架,允许使用简单的编程模型在计算机集群之间对大型数据集进行分布式处理。它旨在从单个服务器扩展到数千台计算机,每台计算机都提供本地计算和…