Ubuntu20.04-LTS使用python安装superset

实验环境

alex@ubuntu:~$ cat /etc/issue
Ubuntu 20.04.6 LTS \n \l
alex@ubuntu:~$ uname -r
5.15.0-76-generic
alex@ubuntu:~$ arch
x86_64
alex@ubuntu:~$ lsb_release -a
No LSB modules are available.
Distributor ID:Ubuntu
Description:Ubuntu 20.04.6 LTS
Release:20.04
Codename:focal

实验目标

安装并成功运行superset

介绍:

superset.jpg

Superset 是一个现代化的数据探索和可视化平台,它提供了丰富的功能和交互式的数据分析工具。Superset 是由 Airbnb 开发并开源的,现在由 Apache 软件基金会进行维护。它旨在帮助用户通过直观的界面轻松地探索、分析和可视化数据。

以下是 Superset 的一些主要特点和功能:

数据连接和源支持:Superset 支持多种数据源,包括关系型数据库(如 MySQL、PostgreSQL、Oracle)、NoSQL 数据库(如 Apache Druid、Elasticsearch)、大数据平台(如 Apache Hive、Apache Spark)以及各种文件格式(如 CSV、Excel)等。你可以连接到这些数据源,并使用 Superset 对其进行探索和可视化。

交互式数据探索:Superset 提供了一个直观的界面,让用户能够轻松地探索数据。它支持钻取、筛选、分组、排序等操作,以便快速分析和发现数据中的模式和见解。

可视化和图表:Superset 提供了多种可视化图表类型,包括折线图、柱状图、散点图、地图、桑基图等。用户可以根据需要选择合适的图表类型,并自定义样式和属性,以创建漂亮而有意义的可视化效果。

仪表盘和报表:Superset 允许用户创建仪表盘和报表,将多个图表和可视化组合在一起,以便更全面地展示数据。用户可以自由布局和组织仪表盘,并添加交互式元素(如过滤器、下拉菜单)来实现动态和个性化的数据探索。

数据权限和安全性:Superset 提供了灵活的数据权限和安全性控制,允许管理员和用户根据角色和组织结构来管理和限制对数据和功能的访问。这样可以确保敏感数据得到保护,并满足数据隐私和合规性的要求。

可扩展性和集成性:Superset 是一个可扩展的平台,它提供了丰富的 API 和插件机制,可以与其他工具和系统进行集成。你可以根据需要扩展和定制 Superset,以满足特定的业务需求和数据分析要求。

总而言之,Superset 是一个功能强大、灵活易用的数据探索和可视化平台,适用于各种规模的组织和数据分析需求。无论是数据科学家、分析师还是业务用户,都可以通过 Superset 来发现数据中的见解,并将其可视化呈现,从而支持数据驱动的决策和业务创新。

安装

我的可能是桌面版,所以没有安装ssh,需要安装一下

sudo apt install openssh-server -y
sudo systemctl enable ssh --now
reboot
sudo systemctl get-default

更新软件源

sudo apt update
python --version
python3 --version

替换系统默认的apt源为清华源,加快软件下载速度

sudo nano /etc/apt/sources.list.d/tsinghua.list
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse
# deb-src http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse


重命名默认的源名称,关闭并备份默认源

sudo mv /etc/apt/sources.list /etc/apt/sources.list-back

更新源

sudo apt update

安装依赖包

sudo apt install build-essential libssl-dev libffi-dev python3-dev python3-pip libsasl2-dev libldap2-dev

安装python虚拟环境,让superset运行在虚拟环境中,以免破坏系统python环境

sudo apt install python3-venv -y

创建一个名为superset-venv的虚拟环境

python3 -m venv superset-venv

进入虚拟环境

alex@ubuntu:~$ source superset-venv/bin/activate
(superset-venv) alex@ubuntu:~$

可以看到终端前面多了个(superset-venv) ,表示你现在已经在python虚拟环境中了

(superset-venv) alex@ubuntu:~$ deactivate 
alex@ubuntu:~$

可以看到已经退出虚拟环境,终端前面是正常的了

配置pip的软件源为清华的软件源,加快pip下载速度

(superset-venv) alex@ubuntu:~$ pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
Writing to /home/alex/.config/pip/pip.conf
(superset-venv) alex@ubuntu:~$ pip config list
global.index-url='https://pypi.tuna.tsinghua.edu.cn/simple'

正式安装superset

(superset-venv) alex@ubuntu:~$ pip install apache-superset
sudo pip install --upgrade python-dateutil
sudo pip install apache-superset
pip install --upgrade apache-superset
pip uninstall sqlparse
pip install sqlparse==0.4.3
superset db upgrade
cd superset-venv/lib/python3.8/site-packages/superset/
ls
superset db upgrade

用openssl生成一个复杂的key

openssl rand -base64 42
(superset-venv) alex@ubuntu:~/superset-venv/lib/python3.8/site-packages/superset$ nano superset_config.py
import os
SECRET_KEY = os.getenv('SECRET_KEY') or '6ABl5a0S3o+N2rp+boBlavQj8jcz0knSooLELdHQvtY1Gkda1/rZ5/NW'
设置环境变量
export SUPERSET_CONFIG_PATH=$(pwd)/superset_config.py
pip install marshmallow-enum
pip install Pillow
superset db upgrade

设置登录用户名和密码

superset fab create-admin

加载默认的样本

superset load_examples

这一步有一定几率可能会报错,原因是网络被墙了,跟github 443端口的网络有关。跳过这一步也可以,这个只是加载世界银行的一个样本数据显示在登录首页上。网址是https://github.com/apache-superset/examples-data/tree/master

解决办法就是是墙外从github下载样例数据,将数据在本地启动一个http文件服务,修改BASE_URL为本地地址即可,启动方式可以了解下python的内置库http.server,或者其他工具也可以

初始化

superset init

运行

superset run -p 8080 --with-threads --reload --debugger

Ctrl+C退出

安装screen让它在后台运行

sudo apt install screen -y
启动一个名为aaa的后台程序
screen -S aaa
superset run -p 8080 --with-threads --reload --debugger

Ctrl+A

再按一下D键返回正常终端

再次连接

screen -r aaa

局域网访问,在前面加上-h 0.0.0.0

superset run -h 0.0.0.0 -p 8080 --with-threads --reload --debugger

WEB登录

火狐浏览器输入localhost:8080就可以看到登录界面了,输入刚才设置的admin密码admin登录

superset登录界面.jpg登录成功后的界面如下

superset登录成功.jpg

连接数据库

连接Oracle数据库

pip install cx_Oracle

连接微软SQL Server

pip install pymssql

连接MySQL

pip install mysqlclient

这一步可能会报错,在本地安装一下MySQL数据库

sudo apt-get install pkg-config
sudo apt install mysql-client
sudo apt-get install mysql-server

启动MySQL数据库

sudo systemctl start mysql
sudo systemctl status mysql

查看MySQL版本,可以看到是8.0版本

(superset-venv) alex@superset:~$ mysql -V
mysql  Ver 8.0.33-0ubuntu0.20.04.4 for Linux on x86_64 ((Ubuntu))

初始化设置

sudo mysql_secure_installation

配置账号密码,刚安装是没有密码的,直接回车可以进去

sudo mysql -u root -p

设置root密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

退出

exit;

设置完密码不用加sudo,直接输入密码连接进去

mysql -u root -p

此时再安装就不会报错了

pip install mysqlclient

设置WEB界面的首选数据库

需要修改config.py配置文件

用screen连接去后台运行的superset,按CTRL+C停止运行

screen -r aaa

停止了默认应该在superset的根目录下

如果没有在后台运行就按下面命令操作

source superset-venv/bin/activate
cd superset-venv/lib/python3.8/site-packages/superset/

编辑配置文件

vi config.py

输入/PREFERRED_DATABASES搜索定位到这个配置下面,需要新增什么数据库上去就在中括号里面配置数据库名字进去

PREFERRED_DATABASES: List[str] = [
    "PostgreSQL",
    "Presto",
    "Microsoft SQL Server",
    "MySQL",
    "Oracle",
    "SQLite",
    # etc.
]

改完之后保存退出,重新启动superset

superset run -h 0.0.0.0 -p 8080 --with-threads --reload --debugger

再去浏览器查看数据库配置,可以看到多了两个数据库。

superset首选数据库.jpg

最后编辑于:2023/08/06作者: admin

发表评论