SupersetBI二次开发环境部署

1、安装准备

2、源码下载

在文件目录cmd中执行

# 下载源码
git clone https://github.com/apache/superset.git

# 进入项目目录
cd superset

# 切换到目标版本,按需自行修改
git checkout 1.3.2

在Anaconda Prompt中创建虚拟环境

# 新建虚拟环境superset_local
conda create -n superset_local python=3.9(Python版本X.X可以自己指定)

# 激活虚拟环境
conda activate superset_local

# 如有需要,删除虚拟环境
# conda env remove --name superset_local

3、安装依赖

现在源码为requirements文件夹,则不需要通过requirements.txt安装依赖包,直接执行最后一句

# prompt中切换路径
(base) C:\WINDOWS\system32>E:

(base) E:\>cd E:\xx\xx

# 进入superset项目的根目录 
cd superset

# 安装依赖安装包
pip install -r requirements.txt

# 安装superset 本地测试依赖(不要漏了最后的点 . )
pip install -e .

 4、配置Superset

# Superset的运行需要预配置FLASK_APP
set FLASK_APP=superset

# 初始化数据库
superset db upgrade

# 创建管理员用户 
flask fab create-admin

# 创建默认角色和权限
superset init

# 安装案例(需要科学上网)
superset load-examples

 上述步骤如有中断,需重新进入虚拟环境(如有),重新设置FLASK_APP

5、前端

cd superset-fontend

npm install

npm run dev

启动 superset server

// 开发调试
superset run -p 端口号

// 发布到局域网中
superset run -p 端口号 --with-threads --reload --debugger 

访问网址 http://127.0.0.1:3000 ;如果后续需要启动,需要先启动前端以及执行命令set FLASK_APP=superset,否则服务启动失败

6、总结:

开发环境是热更新,需要同时启动两个服务。一个是服务端的服务 ,一个是前端的打包服务,修改前端的代码时,前端的代码会实时的打包更新到 superset/static/assets 文件夹下,服务端根据这个文件夹内的文件对前端的页面进行渲染。

报错

报错一:执行pip install -e 报错

ERROR: No matching distribution found for sqlalchemy-utils<0.37,>=0.36.6

这个错误是由于apache-superset所依赖的sqlalchemy-utils版本不符合要求导致的。根据错误信息,所需的最低版本是0.36.6,但是在当前环境中找不到匹配的版本。

pip install sqlalchemy-utils==0.36.6
报错二:  执行superset db upgrade 报错

ImportError: cannot import name 'soft_unicode' from 'markupsafe' (D:\python\xx\envs\superset_local\lib\site-packages\markupsafe\__init__.py)

 新版本中该方法被弃用了

# 卸载
pip uninstall markupsafe

# 固定版本为2.0.1
pip install markupsafe==2.0.1
报错三

ModuleNotFoundError: No module named 'cryptography.hazmat.backends.openssl.x509'

pip install --upgrade cryptography==3.3.2
报错四

pkg_resources.extern.packaging.requirements.InvalidRequirement: Expected matching RIGHT_PARENTHESIS for LEFT_PARENTHESIS, after version specifier
    pytz (>dev)

 setuptools>=67.0,会失败报错

# 查看setuptools版本
pip list

# 更新setuptools版本为66.0
pip install --upgrade setuptools==66.0 
报错五

ModuleNotFoundError: No module named 'MySQLdb'

pip install mysqlclient

 如果安装失败

# 查看支持版本
pip install mysqlclient==

# 安装支持版本
pip install mysqlclient==2.1.0
报错六:npm i 报错

npm i报错挺多是因为依赖发生冲突

# 清除npm缓存
npm cache clean --force

# 删除node_modules文件夹、package-lock.json文件
rmdir /s /q node_modules
del package-lock.json

# 绕过冲突,重新执行
npm install --force
报错七、执行superset init报错

 ValueError: Invalid decryption key

 密钥错误,可能仍使用之前部署的密钥,现在部署的密钥对应不上,打开页面后不能上传数据,存在该密钥对应数据库的数据;

# 若存在之前的密钥,使用之前的密钥
# 或者重新加密
superset re-encrypt-secrets --previous-secret-key <之前的KEY>

# 之前的密钥已经删除,使用新的数据库
# 在superset_config.py中修改/添加,替换连接数据库
SQLALCHEMY_DATABASE_URI = 'mysql://root:passwd@本机ip:port/database'

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Metabase是一种开源的业务智能(BI)工具,具备丰富的数据分析和可视化功能。作为一个强大的BI工具,Metabase也提供了二次开发的功能,使用户可以根据自己的需求进行定制和扩展。 Metabase二次开发工具包括以下几个方面: 1. Metabase API:Metabase提供了强大的API,可以通过编程方式对Metabase进行定制和扩展。开发人员可以使用API来获取数据、创建和修改问题(queries)、设置图表和仪表盘等。通过使用API,用户可以更精确地控制Metabase的功能。 2. 使用自定义查询:Metabase支持使用SQL进行查询,用户可以利用自己熟悉的数据库查询语言进行复杂查询。通过编写自定义查询语句,用户可以在Metabase中实现更复杂的数据分析和报表需求。 3. 自定义数据可视化:Metabase提供了多种图表类型和可视化效果,但有时可能无法完全满足用户的需求。用户可以通过定制CSS来自定义图表的样式和外观,以实现更好的数据可视化效果。 4. 自定义插件和扩展:Metabase还支持开发者通过创建插件或扩展,来增加新的功能和特性。通过插件机制,用户可以将自己开发的功能集成到Metabase中,以满足特定的业务需求。 Metabase的二次开发工具使开发人员能够根据具体业务需求对Metabase进行定制和扩展。无论是通过API进行编程,使用自定义查询语句,定制数据可视化,还是通过插件和扩展添加新功能,Metabase都提供了丰富的扩展性和灵活性,使用户能够深度定制、个性化地使用Metabase进行数据分析和可视化。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值