实验环境
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 是一个现代化的数据探索和可视化平台,它提供了丰富的功能和交互式的数据分析工具。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登录
登录成功后的界面如下
连接数据库
连接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
再去浏览器查看数据库配置,可以看到多了两个数据库。
发表评论