首页 > 其他分享 >Superset3 前后端搭建详解

Superset3 前后端搭建详解

时间:2024-03-01 13:59:44浏览次数:25  
标签:虚拟环境 Superset3 -- 数据库 Superset 详解 superset 搭建

Superset3 搭建

目录

Superset 框架是一套包括前后端代码的框架,后端语言为 Python,前端语言为 Reactsuperset 启动后包括一个前端地址+端口,一个后端地址+端口的服务,后端这个服务是带前端页面的,如果访问这个地址 /api/v1,则可以看到具体接口内容。

另外后端部署分两种情况,一种是直接搭建在 Windows 本地电脑里,一种是运维搭建到服务器上。以下分别对两种后端进行介绍:

flowchart LR
    Superset3 -->后端Python
    Superset3 -->前端React
    后端Python --> 方法1:后端本地搭建生成localhost:8088
    后端Python --> 方法2:后端线上搭建生成线上IP地址
    
    前端React --> 生成localhost:9000

后端:

方法1、在Windows 本地搭建

在安装 Superset 之前,需要创建一个 Python 虚拟环境:
注意,最好使用 cmd 管理员模式下进行创建(我试了 git 终端等,都无法创建成功)

# 在安装Superset之前,建议在一个Python虚拟环境中安装,以避免依赖包之间的冲突:
# 安装虚拟环境管理工具
pip install virtualenv

# 在项目目录下创建虚拟环境
virtualenv superset-venv

# 激活虚拟环境 注意:用CMD运行命令,试了其他终端无法激活
# Windows
superset-venv\Scripts\activate

 3. 安装Superset 在虚拟环境中,使用pip安装Superset。
$ pip install apache-superset==3.1.0

 # 初始化数据库
$ superset db upgrade

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

# 加载示例数据(可选)
$ superset load_examples

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

$ superset run -p 8088 --with-threads --reload --debugger

命令运行过程中,根据提示会创建一个superset的用户名密码(管理员),另外有可能需要创建一个 superset_config.py 的文件,并填写对应的SECRET_KEY,并将此文件加入到环境变量里才可以。
运行完毕,可以访问 localhost:8088,如果可以访问,则本地后端服务搭建完成。

后面如果要启动,则直接运行以下两条命令行即可(还是使用cmd):

$ superset-venv\Scripts\activate // 进入环境

$ superset run -p 8088 --with-threads --reload --debugger // 启动后端服务

启动后,如果要连接 MYSQL 数据库,需要手动安装(需要在虚拟环境中安装mysql,默认没有)

$ pip install mysqlclient

方法2:运维线上搭建

后端部署后,前端需要将 /superset-frontend/webpack.proxy-config.js 下的本地地址修改为后端给的在线地址。

如果启动前端后发现有部分资源找不到,样式错乱,是因为浏览器安全策略的原因,可以让运维将 /superset/config.py下的 TALISMAN ENABLED 设置为 False 即可.

前端:

前端搭建

$ cd superset-frontend

$ npm install // 这中间经历了不少波折,总之各种方法都试试 

$ npm run dev-server

Superset 数据库

Superset 包括两个数据库,一个是默认底层数据库,内部存储了 superset 的用户,角色等信息,另一个数据库是第三方数据库,也就是页面上新建连接的数据库,用于图表等的使用

flowchart LR
    Superset数据库 -->默认底层数据库,存放用户信息等
    Superset数据库 -->第三方页面使用的数据库,存放图表引用的数据等

其他

  1. 配置中文:添加系统变量 SUPERSET_CONFIG_PATHD:\project\caixin\superset_config.py(位置随便放),在文件里配置 BABEL_DEFAULT_LOCALE = 'zh' 重启即可
  2. npm源:最好将 npm 源改为 https://registry.npmmirror.com (获取 npm 源:npm config get registry )

标签:虚拟环境,Superset3,--,数据库,Superset,详解,superset,搭建
From: https://www.cnblogs.com/geekfeier/p/18046840

相关文章

  • 搭建一个大模型API服务
    搭建一个大模型API服务本文将介绍如何使用SWIFT框架搭建一个大模型API服务,以方便后续做RAG、Agent的开发工作。环境准备基础环境操作系统:Ubuntu18.04.5LTS(GNU/Linux3.10.0-1127.el7.x86_64x86_64)Anaconda3:Anaconda3-2023.03-1-Linux-x86_64根据服务器网络情况配置好......
  • 核心子方法4: postProcessBeanFactory(beanFactory)方法详解
    先总结: 子类覆盖方法做额外的处理,此处我们自己一般不做任何扩展工作,但是可以查看web中的代码,是有具体实现的AnnotationConfigWebApplicationContext->AbstractRefreshableWebApplicationContext的实现:1.设置ServletContextAwareProcessor后处理器, 并设置忽略......
  • FullGC详解
    前言:背景:一、什么是JVM的GC?JVM(JavaVirtualMachine)。JVM是Java程序的虚拟机,是一种实现Java语言的解释器。 它提供了一种独立于操作系统的运行环境,使得Java程序在任何支持JVM的计算机上都可以运行。JVM负责加载、验证、解释、执行和垃圾回收Java字节代码,并为......
  • Linux 环境下搭建 ElasticSearch
    centos8环境下搭建ElasticSearch7.8一、安装:复制下载链接地址,并使用wget命令下载对应的压缩包。例如:wgethttps://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.8.0-linux-x86_64.tar.gz下载完成后,解压压缩包:tar-xzvfelasticsearch-7.8.0-linux-x86......
  • 详解海量日志传输框架 Flume
    什么是Flume本次我们来聊一聊Flume,它是Cloudera提供的一个高可用、高可靠、分布式的日志收集框架,用于海量日志的采集、聚合以及传输。Flume在生产上使用最多的场景就是,实时读取服务器本地磁盘的数据,然后将数据写入到HDFS。Flume基础架构再来看看Flume的基础架构:Ag......
  • YUM以及yum源搭建
    1YUM简介1.1YUM简介CentOS使用yum和dnf解决rpm的包依赖关系。YUM:rpm的前端程序,可解决软件包相关依赖性,可在多个库之间定位软件包,up2date的替代工具,CentOS8使用dnf代替了yum,不过保留了和yum的兼容性,配置也是通用的。YUM的前身是YUP(YellowdogUpdater,YellowdogLinux......
  • Java HashMap 详解
    HashMapHashMap继承自AbstractMap,实现了Map接口,基于哈希表实现,元素以键值对的方式存储,允许键和值为null。因为key不允许重复,因此只能有一个键为null。HashMap不能保证放入元素的顺序,它是无序的,和放入的顺序并不相同。HashMap是线程不安全的。1.哈希表哈希表基于数......
  • 如何使用 vscode 搭建 Django Restful API 开发环境 All In One
    如何使用vscode搭建DjangoRestfulAPI开发环境AllInOnevscode+Django(Python)demos(......
  • 机器学习策略篇:详解满足和优化指标(Satisficing and optimizing metrics)
    满足和优化指标要把顾及到的所有事情组合成单实数评估指标有时并不容易,在那些情况里,发现有时候设立满足和优化指标是很重要的,让我告诉是什么意思吧。假设已经决定很看重猫分类器的分类准确度,这可以是\(F_1\)分数或者用其他衡量准确度的指标。但除了准确度之外,还需要考虑运行时......
  • Java访问权限之public、protected、private详解——【包和访问控制】【访问权限控制】
    @目录包和访问控制包声明和导入访问权限控制源码:Giteehttps://gitee.com/drip123456/java-seGIthubhttps://github.com/Drip123456/JavaSE专栏:JavaSE笔记专栏包和访问控制通过前面的学习,我们知道该如何创建和使用类。包声明和导入包其实就是用来区分类位置的东西,也可......