百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

商业智能开源分析工具Superset介绍和安装

liuian 2024-12-19 14:46 26 浏览

1. 什么是Superset?

Apache Superset是一个现代的、企业级的商业智能(BI)网页端的应用程序,我们可以简单的理解成它是一个开源的数据可视化工具。所谓可视化,简单的说就是把数据转换成图表,以一种更直观的方式来展现数据。其支持丰富的数据源连接,如:MySQL、DB2、SQL Server、Oracle等,支持多种可视化方式,并能够对用户实现细粒度的权限控制。该工具主要特点是可自助分析、自定义仪表盘、分析结果可视化、用户/角色权限控制,还集成了一个SQL编辑器,可以进行SQL编辑查询等。Superset基本架构:前端基于JavaScript,后端基于Python。

2. 环境搭建

2.1 Conda 安装

这里我们以Linux(Centos 7)的操作系统为例,个人建议还是使用Linux系统,Windows系统可能坑比较多,由于Superset的后端是基于Python的,所以我们首先需要安装Python,为了方便我们对不同版本的Python进行管理,这里我们使用conda来搭建Python的环境,conda默认随miniconda或anaconda发行,因此要安装conda,只需要安装miniconda或anconda即可,我们这里使用miniconda,安装步骤如下:

  1. 首先从官网找到conda下载链接,然后使用wget命令下载,代码如下:
wget -c https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
  1. 文件下载完成后,使用chmod命令为文件赋权:
chmod 777 Miniconda3-latest-Linux-x86_64.sh #给执行权限
  1. 执行文件,一路安装即可
bash Miniconda3-latest-Linux-x86_64.sh #运行

安装完成后,我们可以通过conda -V,查看版本:

(base) [root@iZ8vb15btme7rdyvwu43dyZ bin]# conda -V
conda 4.10.3

下面我们开始创建python的环境,这里我们我们使用的python版本为3.6,常用的conda命令如下:

# 查看已有的虚拟环境
conda env list 
# 创建一个conda环境
conda create -n env_name python=x.x
# 删除一个conda环境
conda remove -n env_name --all
# 激活conda环境
conda activate env_name
# 退出conda环境
conda deactivate

当我们进入某一个虚拟环境后,我们可以使用如下的命令,进行包的安装、更新等操作:

# 查看已安装的package
conda list
# 安装某个package
conda install [package]
# 删除某个package
conda remove [package]
# 更新某个package
conda update [package]
# 更新conda,保持conda最新
conda update conda

2.2 虚拟环境安装

Python 应用有时需要依赖特定的包或者库的版本,所以不能有一个能适应所有 Python 应用的软件环境,很多时候不同的 Python 应用所依赖库的版本是冲突的,此时我们可以通过虚拟环境来解决这类问题。首先先通过conda activate env_name命令的方式,切换到我们的Python3.5 的版本,然后通过pip install virtualenv命令安装virtualenv,最后我们通过virtualenv myvenv指令创建一个虚拟环境。创建完成后会在当前目录下生成一个目录,然后进入到该目录下的bin目录下,执行source ./activate命令激活环境即可。

2.3 Superset的安装

Python环境安装完成后,打开终端,在命令行中输入如下命令,安装Superset,安装成功即可。

pip install apache-superset

3. 初始化数据库

执行如下命令,初始化一下数据库

superset db upgrade

有的时候可能会遇到一些包不存在的报错,这个时候,我们可以手动的安装一下,我在安装的过程中,报了如下的错:

Traceback (most recent call last):
  File "superset", line 5, in <module>
    from superset.cli import superset
  File "/root/env/bigdataEnv/env_superset/lib/python3.6/site-packages/superset/__init__.py", line 21, in <module>
    from superset.app import create_app
  File "/root/env/bigdataEnv/env_superset/lib/python3.6/site-packages/superset/app.py", line 45, in <module>
    from superset.security import SupersetSecurityManager
  File "/root/env/bigdataEnv/env_superset/lib/python3.6/site-packages/superset/security/__init__.py", line 17, in <module>
    from superset.security.manager import SupersetSecurityManager  # noqa: F401
  File "/root/env/bigdataEnv/env_superset/lib/python3.6/site-packages/superset/security/manager.py", line 44, in <module>
    from superset import sql_parse
  File "/root/env/bigdataEnv/env_superset/lib/python3.6/site-packages/superset/sql_parse.py", line 18, in <module>
    from dataclasses import dataclass
ModuleNotFoundError: No module named 'dataclasses'

由于缺少了dataclasses模块,手动执行一下命令pip install dataclasses就安装即可。

4. 创建管理员账户

数据库初始化完成后,我们需要创建一个登录的账户,执行如下命令,创建一个账户superset fab create-admin,执行命令后,输入用户名、邮箱、密码即可创建成功,如下:

INFO:superset.utils.screenshots:No PIL installation found
Username [admin]: admin
User first name [admin]: admin
User last name [user]: admin
Email [admin@fab.org]: admin@fab.org
Password: 123456
Repeat for confirmation: 
Recognized Database Authentications.
Admin User admin created.

5. 初始化角色和权限

账户创建完成后,可以通过superset init命令,初始化角色和权限,执行结果如下:

INFO:superset.security.manager:Syncing role definition
Syncing Admin perms
INFO:superset.security.manager:Syncing Admin perms
Syncing Alpha perms
INFO:superset.security.manager:Syncing Alpha perms
Syncing Gamma perms
INFO:superset.security.manager:Syncing Gamma perms
Syncing granter perms
INFO:superset.security.manager:Syncing granter perms
Syncing sql_lab perms
INFO:superset.security.manager:Syncing sql_lab perms
Fetching a set of all perms to lookup which ones are missing
INFO:superset.security.manager:Fetching a set of all perms to lookup which ones are missing
Creating missing datasource permissions.
INFO:superset.security.manager:Creating missing datasource permissions.
Creating missing database permissions.
INFO:superset.security.manager:Creating missing database permissions.
Creating missing metrics permissions
INFO:superset.security.manager:Creating missing metrics permissions
Cleaning faulty perms
INFO:superset.security.manager:Cleaning faulty perms

6. 载入示例数据

Superset提供了一些实例数据,可以通过superset load_examples载入,不过由于服务器在国外,可能会出现导入失败的情况,可以尝试多导入几次,如果实在导入不了也没事,影响不大。

7. 启动服务

当上面内容完成后,我们就可以执行如下命令superset run -p 8000 --with-threads --reload --debugger来启动Supserset了,我们可以通过-p的参数来改变端口,如果不指定的话,默认端口为5000。

值得注意的是,如果是本地安装,通过以上命令启动,没有问题,但是如果是在云服务器上安装,当你用外网加端口的方式访问的时候,就无法访问,此时可以使用如下命令启动:superset run -h 0.0.0.0 -p 8000 --with-threads --reload --debugger

如果想要让superset在后台运行,可以使用如下命令启动:nohup superset runserver -d -p 8088

8. Superset 简单汉化

  1. 我们首先进入superset的安装目录,比如我的是这个目录:/BigDataEnv/bigdataEnv/lib/python3.8/site-packages/superset
  2. 找到这个config.py文件,将BABEL_DEFAULT_LOCALE = "en"中的en改为zh
  3. 从GitHub上下载汉化文件messages.po,并将其覆盖该目录的同名文件:/BigDataEnv/bigdataEnv/lib/python3.8/site-packages/flask_appbuilder/translations/zh/LC_MESSAGES/messages.po
  4. 执行如下命令,重新编译pybabel compile -d translations
  5. 重启superset即可。

值得注意的是,这种方式的汉化,其实只是汉化了一小部分的内容,大部分的东西都没有汉化完整,不过英文看着也还好,暂时先不管。

9. 附录

  • [Conda官网链接](https://conda.io/miniconda.html)
  • [虚拟环境参考文章链接](https://blog.csdn.net/qq_39241986/article/details/106654549)
  • [messages.po地址](https://github.com/ApacheInfra/superset/blob/master/superset/translations/zh/LC_MESSAGES/messages.po)

更多内容,也可以微信搜索我们的公众号【郑大钱呀】,风里雨里,一直等你。

相关推荐

Docker 47 个常见故障的原因和解决方法

【作者】曹如熙,具有超过十年的互联网运维及五年以上团队管理经验,多年容器云的运维,尤其在Docker和kubernetes领域非常精通。Docker是一种相对使用较简单的容器,我们可以通过以下几种方式...

电脑30个快问快答,解决常见电脑问题

1.强行关机/停电对电脑有影响吗?答:可能损坏硬盘(机械硬盘风险高)、未保存数据丢失,偶尔一次影响小,但频繁操作会缩短硬件寿命。2.C盘满影响速度吗?答:会!系统运行需C盘空间缓存临时数据,空间不...

使用Tcpdump包抓取分析数据包的详细用法

TcpDump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。tcpdump就是一种...

电脑启动不了(BootDevice Not Found Hard Disk-3F0)解决方案

HP品牌机,开机启动不了,黑屏,开机取下主板电池恢复BIOS后,开机显示找不到启动盘。一、按F2键进入BIOS,出现硬盘内存检测界面的话,直接退出。就会出现这个界面,光标键向下,选择BIOSSetu...

电脑开机黑屏别慌!快码住!起底维修老师傅不能说的秘密

按下开机键却只收获黑屏大礼包?那些神秘的英文提示、刺耳的蜂鸣声,其实是电脑在给你发送求救信号!从按下电源到进入桌面的12秒里,你的电脑经历了史诗级的硬件自检与系统加载,今天我们就破译这段“摩斯电码”。...

电脑启动故障为何总要先看BIOS?新手必读的关键知识解析

最近在帮朋友们解答电脑无法正常开机的问题时,发现大家经常收到一句高频建议:“先检查BIOS”。对不少普通用户而言,BIOS依然是个神秘的存在。那么,BIOS到底是什么?电脑出现哪些故障会与它相关呢?本...

Windows 11 KB5053598更新:安全补丁还是系统噩梦?

2025年3月11日,微软发布了Windows1124H2的强制性更新KB5053598,作为“周二补丁日”(PatchTuesday)的一部分。然而,这款本应提升系统安全性的更新却引发了广泛的...

飞牛OS入门安装遇到问题,如何解决?

之前小编尝试了用旧电脑装飞牛OS安装之前特意查了一些硬件要求飞牛OS目前支持主流的x86架构硬件主机需能连网线飞牛OS暂时不支持只有无线网卡的安装貌似很多小伙伴在一开始安装就卡住了那今天咱们汇总分...

几种常见的电脑开机黑屏显示白色英文字母解决方法

当电脑开机出现黑屏并显示白色英文字母时,通常表示系统启动过程中遇到了错误。以下是几种常见原因及对应的解决方法,按照排查顺序整理:一、检查外接设备与硬件连接可能原因:外接U盘、移动硬盘等未拔出,或内部硬...

电脑启动出现问题,为什么都要先检查BIOS?

【ZOL中关村在线原创技巧应用】最近在回答问题的时候,总会发现很多朋友都在问“电脑无法正常开机怎么办?”这样类似的问题,而许多DIY大佬的回复总会出现一条高频建议“先检查BIOS”。但对于许多普通用户...

教你怎么用JavaScript检测当前浏览器是无头浏览器

什么是无头浏览器(headlessbrowser)?无头浏览器是指可以在图形界面情况下运行的浏览器。我可以通过编程来控制无头浏览器自动执行各种任务,比如做测试,给网页截屏等。为什么叫“无头”浏览器?...

12个高效的Python爬虫框架,你用过几个?

实现爬虫技术的编程环境有很多种,Java、Python、C++等都可以用来爬虫。但很多人选择Python来写爬虫,为什么呢?因为Python确实很适合做爬虫,丰富的第三方库十分强大,简单几行代码便可实...

运维的报表之路,用 node.js 轻松发送 grafana 报表

在运维过程中,无论是监控还是报表,都会有一些通过邮件发送图表的需求,由于开源的zabbix,grafana和kibana等并不完全具有“想发送哪儿就发送哪儿”的图片生成功能,在grafana...

C#基于浏览器内核的高级爬虫(c#爬取网页内容)

基于C#.NET+PhantomJS+Sellenium的高级网络爬虫程序。可执行Javascript代码、触发各类事件、操纵页面Dom结构、甚至可以移除不喜欢的CSS样式。很多网站都用Ajax动态加...

如何优化一个秒杀项目?(秒杀实现思路)

问题1:使用jmeter性能压测,定位瓶颈代码步骤流程:线程组--->Http请求--->查看结果树--->聚合报告tips:host的文件--->优先调用映射,减少DNS的时...