当前位置: 首页 > news >正文

【大数据】Apache Superset:可视化开源架构

Apache Superset是什么

Apache Superset 是一个开源的现代化数据可视化和数据探索平台,主要用于帮助用户以交互式的方式分析和展示数据。有不少丰富的可视化组件,可以将数据从多种数据源(如 SQL 数据库、数据仓库、NoSQL 数据库等)中提取并以图表、表格、仪表盘等形式进行展示。

支持连接多种数据源,如 MySQL、PostgreSQL、SQLite、Apache Druid、Presto、Google BigQuery 等。

这是它的官方网站:https://superset.apache.org/

在这里插入图片描述
在这里插入图片描述

Ubuntu18.04裸机部署Superset 4.0

1.更新系统

sudo apt update && sudo apt upgrade -y

2.安装python3.9(apache superset4.0依赖3.9及以上版本python)

注意:不能使用3.9以下版本,不然会有很多问题!
安装python3.9:

wget https://www.python.org/ftp/python/3.9.18/Python-3.9.18.tgz
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev libbz2-dev
tar xf Python-3.9.18.tgz
cd Python-3.9.18/
./configure --enable-optimizations
sudo make altinstall
python3.9 --version

3.安装数据库并配置(PostgreSQL)

sudo apt install -y postgresql postgresql-contrib
sudo -u postgres psql
CREATE USER superset_user WITH ENCRYPTED PASSWORD 'Superset123!';#your_password
CREATE DATABASE superset OWNER superset_user;
GRANT ALL PRIVILEGES ON DATABASE superset TO superset_user;
\q

4.创建superset文件:/opt/superset/superset_config.py

sudo mkdir -p /opt/superset/
sudo nano /opt/superset/superset_config.py

写入:

#SQLALCHEMY_DATABASE_URI = 'sqlite:path/to/superset.db'
## 格式为 “协议://用户:密码@数据库地址/数据库名”,注意数据库密码中不要包含 @ 字符,如存在记得改掉
## 下面分别为 MySQL 和 PostgreSQL 配置,按需使用
#SQLALCHEMY_DATABASE_URI = 'mysql://superset_user:Superset123!@localhost/superset'
SQLALCHEMY_DATABASE_URI = 'postgresql://superset_user:Superset123!@localhost/superset'# Flask-WTF flag for CSRF
WTF_CSRF_ENABLED = True
# Add endpoints that need to be exempt from CSRF protection
WTF_CSRF_EXEMPT_LIST = []
# A CSRF token that expires in 1 year
WTF_CSRF_TIME_LIMIT = 60 * 60 * 24 * 365# Set this API key to enable Mapbox visualizations
MAPBOX_API_KEY = ''## 下面为缓存配置,先注释,存在兼容性问题尚未解决
#CACHE_CONFIG = {
#    "CACHE_TYPE": "RedisCache",
#    "CACHE_DEFAULT_TIMEOUT": 300,
#    "CACHE_KEY_PREFIX": "superset_",
#    'CACHE_REDIS_URL': 'redis://0.0.0.0:6379/0'
#}
#DATA_CACHE_CONFIG = CACHE_CONFIG

5.进入python虚拟环境并做配置

python3.9 -m venv superset-venv
source superset-venv/bin/activate

提示:如果要退出虚拟环境,使用deactivate命令。

安装数据库引擎:

pip3 install wheel
#PostgreSQL (需要安装依赖 libpq-dev)
sudo apt update
sudo apt install libpq-dev
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple psycopg2

安装PIL依赖:

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pillow

6.安装apache superset4.0并做配置

pip install --upgrade pip setuptools
pip install apache-superset

环境变量手动指定配置文件地址:

export SUPERSET_CONFIG_PATH=/opt/superset/superset_config.py
export FLASK_APP=superset

7.初始化apache superset

#初始化数据库
superset db upgrade
#创建管理员账户
superset fab create-admin
#初始化默认角色和权限
superset init
#可选,数据量较大,需要等待较长时间
superset load_examples
#启动Superset
superset run -h 0.0.0.0 -p 8088 --with-threads --reload --debugger

初始化成功后,Superset在http://localhost:8088上运行。

8.系统启动后手动启动方式

source superset-venv/bin/activate
export SUPERSET_CONFIG_PATH=/opt/superset/superset_config.py
export FLASK_APP=superset
export SUPERSET_SECRET_KEY="oh-so-secret"
#启动Superset
superset run -h 0.0.0.0 -p 8088 --with-threads --reload --debugger

常见问题

问题1:如果执行superset db upgrade报错:Error: Could not locate a Flask application. Use the ‘flask --app’ option, ‘FLASK_APP’ environment variable, or a ‘wsgi.py’ or ‘app.py’ file in the current directory.
执行以下:

export FLASK_APP=superset
superset db upgrade

问题2:如果执行命令提示:
(superset-venv) sds@sds:~$ superset db upgrade: Refusing to start due to insecure SECRET_KEY
执行:export SUPERSET_SECRET_KEY=“oh-so-secret” 忽略安全性验证。

问题3:如果提示“No PIL installation found”。
执行:

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pillow

问题4:如果提示:sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) near “extra”: syntax error
是由于superset默认使用sqlite数据库,其版本本身存在问题,解决方法要么重新安装sqlite,要么使用其他数据库即可。
推荐使用PostgreSQL。

问题5:如果执行“superset load_examples”下载示例数据报错:ConnectionRefusedError: [Errno 111] Connection refused。
是由于无法访问外网导致,执行以下命令使用代理联系外网:

export http_proxy="http://192.168.31.13:7890"
export https_proxy="http://192.168.31.13:7890"
export socks_proxy="socks5://192.168.31.13:7891"
http://www.lryc.cn/news/519699.html

相关文章:

  • LabVIEW调用不定长数组 DLL数组
  • MySQL 17 章——触发器
  • 面向对象分析与设计Python版 面向对象设计方法
  • GB/T 19582.1-2008主要内容
  • [石榴翻译] 维吾尔语音识别 + TTS语音合成
  • 算法题(32):三数之和
  • webpack03
  • 组会 | SNN 的 BPTT(backpropagation through time)
  • CDA数据分析师一级经典错题知识点总结(3)
  • django基于Python的电影推荐系统
  • JVM与Java体系结构
  • 网络授时笔记
  • 【CSS】HTML页面定位CSS - position 属性 relative 、absolute、fixed 、sticky
  • spark汇总
  • 【Rust自学】11.5. 在测试中使用Result<T, E>
  • Sping Boot教程之五十四:Spring Boot Kafka 生产者示例
  • 设计模式-结构型-组合模式
  • 基于Java的推箱子游戏设计与实现
  • Spark vs Flink分布式数据处理框架的全面对比与应用场景解析
  • python_excel列表单元格字符合并、填充、复制操作
  • nums[:]数组切片
  • 【Arthas 】Can not find Arthas under local: /root/.arthas/lib 解决办法
  • 录用率23%!CCF推荐-B类,Early Access即可被SCI数据库收录,中美作者占比过半
  • IP 地址与蜜罐技术
  • Vue_API文档
  • WebSocket 设计思路
  • Jenkins持续集成与交付安装配置
  • ESP32作为Wi-Fi AP模式的测试
  • 【爬虫】单个网站链接爬取文献数据:标题、摘要、作者等信息
  • Android RIL(Radio Interface Layer)全面概述和知识要点(3万字长文)