找回密码
 立即注册
查看: 4873|回复: 0

Apache Superset——开源的大数据探索分析、可视化报表平台

[复制链接]

403

主题

594

回帖

4022

积分

管理员

积分
4022
QQ
发表于 2024-1-27 12:26:11 | 显示全部楼层 |阅读模式
目 录& b7 I6 w% N$ R
% y6 Z+ r! n  W1 D, e) p+ ^/ y
1. 需求背景1.1 大数据可视化面临的挑战
  大数据的兴起,关于数据的存储、计算技术层出不穷,但是最终的数据可视化呈现,数据的探索,也成为颇为重要的一环,这一块并没有像存储、计算技术栈那么百花齐放,大家在做大数据可视化时是否也曾有这些困惑呢?
  • 传统的可视化对接传统数据库,对大数据组件的hive,spark,presto、elasticsearch、clickhouse等兼容性差,甚至不兼容,每次还需要多一道将大数据集群数据分发到传统数据库的冗余操作;
  • 商用产品昂贵、甚至产品设置技术壁垒,很多甚至要求对接该商家的自己的大数据技术方可对接;
  • 群众基数大的Excel拖来拽习惯、SQL操作的方便性,排斥自成一派的新技术,网页版账号登录优于用户下载客户端登录;
  • 公司开发人员配置紧张,没有多余的人力自研大数据可视化平台,但是决策层希望有一个统一的可视化平台。4 n5 }6 L0 x. V: B  O  Y! r
  诸如此类,确实令人头疼,现在就推荐一款解药Apache Superser——开源的大数据分析探索、可视化报表的神器。
1.2 大数据数据可视化的目标架构) m2 Z; X1 q# ]5 _9 R3 f% N0 e
4 I9 A* ]: J+ \) H0 a  H- Q
图1.2 大数据数据可视化架构
8 |1 H, |! L4 N) G/ q
  做事还是需要立一个目标架构,最后所有的事情都是围绕目标架构展开,才能越做越轻松,如图1.2,可是架构分为三个梯队;
  • 第一梯队:ClickHouse、DorisDB、Kylin等优秀OLAP技术做存储,利用自带的连接引擎,快速响应,同时支持实时数据和离线数据的接入,外接可视化平台,通过权限管控后呈现给用户;
  • 第二梯队:数据存在数据仓库Hive内或者NoSQL的Hbase,再通过较为优秀且高效的引擎Presto、Flink、Spark等接入可视化平台,通过权限管控后呈现给用户;
  • 剩下就是一个特殊的,如MySQL,临时文件等文件的接入;# Z: g4 m: B) S! v; `3 u- B( C7 R
  注意:常用的也还有其它技术架构,如ELK架构,ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成。Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。 Logstash是一个完全开源的工具,他可以对你的日志进行收集、分析,并将其存储供以后使用(如,搜索)。 kibana 也是一个开源和免费的工具,他Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。这个后续再讲,这里书归正传,先讲讲Apache Superser。
2. Apache Superset简介2.1 Apache Superset是什么?
  Apache Superset是一款由Python语言为主开发的开源时髦数据探索分析以及可视化的报表平台;她支持丰富的数据源,且拥有多姿多彩的可视化图表选择。

/ U1 x9 D5 `! g6 ?: S# l! z  R9 [) b& Q4 Y

2 G) U" a8 `; @5 X; `& f: l
) \% w2 T# L2 l) _
图2.1.1 Apache Superset定义
9 y# [5 ^8 M" i/ d9 E/ q
2.2 为什么选Apache Superset?
  • 支持丰富的数据库作为数据源,基本上平时用到的数据库都支持;如图2.2.0,支持的数据源有:. k# g: o( F$ [  I5 ?6 J2 f
  • Amazon Athena
  • Amazon Redshift
  • Apache Drill
  • Apache Druid
  • Apache Hive
  • Apache Impala
  • Apache Kylin
  • Apache Pinot
  • Apache Solr
  • Apache Spark SQL
  • Ascend.io
  • Azure MS SQL
  • Big Query
  • ClickHouse
  • CockroachDB
  • Dremio
  • Elasticsearch
  • Exasol
  • Google Sheets
  • Hologres
  • IBM Db2
  • IBM Netezza Performance Server
  • MySQL
  • Oracle
  • PostgreSQL
  • Trino
  • Presto
  • SAP Hana
  • Snowflake
  • SQLite
  • SQL Server
  • Teradata
  • Vertica8 u& d# \1 q. I5 [* ^2 f$ e+ X# i

    ) k' ]/ b1 R2 h
图2.2.0 Apache Superset支持的数据源

4 o) U% o; \  y; l. W
  • 多姿多彩的可视化图表,Apache Superset拥有非常丰富的图表,来实现不同的可视化需求,如图2.2.1。
    & e  I" E% i6 `0 M9 M
    8 Y, W3 E; U. C: R, {
图2.2.1 Apache Superset支持的图表
- z% |: U5 ~  k1 p" t5 ^( l" O
  • 轻量级和高度可扩展,利用现有数据基础模型的直接进行数据探索和可视化呈现,而不需要另一个摄取层,如图2.2.2,配置好数据库后,进入SQL Lab(SQL实验室),就可以对数据进行探索分析,SQL Lab更像是一个数据库连接查询客户端,当然要更好的数据可视化呈现,还必须结合图表和仪表盘功能。* t( Z9 r8 l# e$ |  e1 B3 ]! ~$ Y: A
    , {- V2 R" l( Y- u9 ?+ f; s" N; }

    ( z1 f& o2 C1 [* D. T4 K6 m1 J# Q
    图2.2.2 Apache Superset的SQL Lab
  • 使用简单,如图2.3.3,Apache Superset使用层面主要分为以下个部分;7 L# ~# T$ N5 v% |) Y
  • Data:主要功能是新增数据源和数据集Dataset(旧版本也叫Table),Dataset作为数据图表可视化的基础;
  • Charts:图表,就是针对准备好的Dataset数据集,选择一款合适的图表呈现;
  • Dashboards:仪表盘,其实就是报表、看板大屏展示,可以将多个Charts组合到一个仪表盘内一起展示。
  • SQL Lab:SQL实验室,其实就是一个类似DBeaver、Navicat、DataGrip等一样的多功能数据库连接客户端,但是只有查询功能,配置驱动和连接后可以进行数据库、表、字段等模型的SQL查询操作。
  • 设置:语言选择,登录注销、人员权限,操作日志等设置;
    : ~) @! \4 h- J2 W* y
图2.2.3 Apache Superset使用预览
4 Y/ s8 L! F/ L4 M( R( m1 V
2.3 对比Metabase
  之前博主也写过一篇关于Metabase的大数据可视化神器Metabase——开源的大数据分析探索、可视化报表神器的博客,那么对于与Metabase,Apache Superset有哪些优劣呢;
  • 天生自带支持的数据源Apache Superset完胜Metabase;
  • 数据图表形式Apache Superset完胜Metabase;
  • 操作界面美观丝滑度Apache Superset稍逊Metabase;
  • 托拉拽操作Apache Superset稍逊Metabase;
    & e9 S' Z( f9 j% X/ [; Q$ M
  向来博主都是鱼与熊掌能兼得就兼得,毕竟小孩才做选择嘛,可以考虑两个都装,Metabase用于专注业务数据需求人员,Apache Superset用于懂SQL的数据需求人员,二者生成的通用仪表盘,则可以利用一个统一的网页超链接到一起,形成一个统一的报表平台。
3. 快速上手
  这里先快速上手带大家体验一把,细节后续章节细讲,首先配置好数据库连接(配置方法参考后续的5.1 新建Databases(数据库)),然后打开SQL Lab,选择好配置数据库,写SQL语句分析探索数据,如图3.1.0,然后运行语句,得到数据结果,可以点击保存将常用的探索SQL保存下来,然后点击查询结果上方的EXPLORE按钮,就可以跳转图表分析图3.1.1;# P) x8 J) a6 A2 A
: H; k. K$ W7 o8 h) z
图3.1.0 Apache Superset在SQL Lab上探索数据

: _9 P# y; ]" E7 \6 S6 ~
  利用SQL Lab探索得到的数据集,选择合适需求的数据图表,选择合适的指标,度量值,点击上方的RUN就可以得到结果,非常的方便,可以直接点击上方的SAVE保存图表;  u, @7 T9 L3 W  D2 C
3 `7 k2 o/ n; ^  R
图3.1.1 Apache Superset数据可视化

6 r) C" w  H$ I2 C% d
  新建Dashboard,然后编辑Dashboard,将之前生成好的Charts(图表)拖拽到Dashboard,就完成了数据仪表盘的最终呈现,然后就可以分享给需求方,也可以生成访问链接分享。
  注意:拖拽时尽量往Dashboard的上面拖拽,会出现一条蓝色的分界线就可以松手,否则可能出现无法拖拽的情况,这个设计很坑。
图3.1.1 Apache Superset数据仪表盘呈现
7 l! O* {% b! i. `. O: J
4. 部署安装4.1 部署方式及版本
  • 支持Linux、Windows、Mac的Docker部署
  • 支持Linux、Windows、Mac的Python环境代码部署
  • 可以在github,官网、或者国内镜像网站查看版本,但是别先下载,因为Apache Superset依赖包很多,最好能在线安装;
    4 H4 s( Z! M" N
    ( P: _; s0 O8 \! t
图4.1.0 Apache Superset版本预览
& ^* ?% ]; t' n$ |" d
  • 博主选的是apache-superset-0.38.1.tar.gz在Linux上的Python环境代码部署。
    ; z, s* T3 {4 W; o5 S4 M/ u
4.2 配置需求
  • apache-superset-0.38.1.tar.gz
  • CentOS 7 16核 32G(非硬性,一般性能的服务器即可)
  • Python 3.6
  • 要求服务器网,如果没有,可以使用能联网的代理服务器,依赖很多,采用在线安装的形式( \* J! T& t8 ?  \8 \
4.3 下载安装
  • 下载安装Python3.6,可以选择安装anaconda集成的python,可以参考博客Linux通过anaconda来安装python,对应的版本是Anaconda3-5.2.0-Linux-x86_64.sh,下载传送门:Anaconda Download;安装好以后,如果老的服务器上存在python2,默认的环境变量启动是python2,没关系,只需要设置一个新的环境变量确保 python3启动是刚刚安装的版本即可。
  • 安装python虚拟机,并启动,然后安装Apache Superset。+ [2 ~$ M$ D3 c! l# R: |
9 r$ }1 Y4 e4 |3 ?1 j
  1. # 切换到自己安装软件的目录,博主的是在/usr/local/tools,并新建superset目录
    + @8 x9 @6 A/ O) M0 f+ s% i/ i
  2. cd /usr/local/tools
    5 `: R2 f  ?# n# d/ _8 t
  3. mkdir superset1 b& u9 g4 B2 V, U! L
  4. cd superset
    " S+ a6 O% C( F5 S. t$ T

  5. ) [' k) w9 l7 n
  6. # 安装虚拟机,有网就不需要的代理服务器,配置代理服务器10.212.18.34:3129方法:9 p, W8 v7 A* \1 E) }
  7. # 写入配置文件 /etc/profile里面追加
    5 w% e+ t/ E6 C; j3 F
  8. # export http_proxy=10.212.18.34:3129/ _3 ]5 b9 p0 K5 A& h5 }% ^; F. p
  9. # export https_proxy=10.212.18.34:3129  i9 V+ ^4 q/ p( L2 z5 Z
  10. # 然后wq! 保存退出,source /etc/profile刷新配置文件( G& _# `! O4 w5 B- h% N
  11. # 安装完可以删除代理,记得再source /etc/profile
    . L$ W! S) r1 k6 X( g5 v  Z
  12. # 如果不想配置/etc/profile或者无权限,可以采用以下命令
    8 Q, L5 {  ^$ z7 K
  13. # pip install virtualenv --proxy=10.212.18.34:3129,每次都需要,烦! E  N6 Q7 f) U" A! ?
  14. pip install virtualenv- ^0 p+ E3 Q  i+ Y* H6 S
  15. ! v" X7 \. k2 V
  16. # 配置命名虚拟机
      d9 ~8 ?! `: F- a0 l* D0 ]
  17. python3 -m venv venv0 x" E/ m- Z# T0 \4 j1 R

  18. $ s  v- K9 t7 v" C  {- Y; b
  19. # 启动虚拟机,会在当前目录下自动创建venv目录; M: m( b$ _$ ^+ [- P
  20. . venv/bin/activate$ B" l' d8 O" [5 Y3 ?. Q
  21. 3 ?% g( O' {# {
  22. # 退出虚拟机指令,但是这里不需要退出9 `# ]% R# S' z* _
  23. # 退出虚拟机指令,但是这里不需要退出2 A; _: ]* n- R& T4 h1 x+ A
  24. # 退出虚拟机指令,但是这里不需要退出5 R$ n+ v4 R6 ~) {; s. A
  25. deactivate4 W' m8 O( t' u: H+ V2 @3 d* l8 `! B
  26. ; }+ D% @! x* l+ z% f2 `
  27. # 安装更新一些依赖
    8 ^- [" K# d+ i6 g4 \! Z
  28. pip install --upgrade setuptools pip -i https://pypi.douban.com/simple/- F6 X6 }6 _1 S7 v& a" |
  29. - B3 k  `' ~& Q/ u7 q
  30. yum install gcc gcc-c++ libffi-devel python-devel python-pip python-wheel openssl-devel libsasl2-devel openldap-devel mysql-devel gcc-devel: ~" ~5 j, n( X# k
  31. ! ~) a3 s7 r. K) V
  32. # 如果报错:GPG key retrieval failed: [Errno 14] curl#37 - "Couldn't open file /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7"; a7 M- J4 d2 Z+ P% n% T1 F5 y
  33. # 解决:
    * A9 Q0 @: c# U" y
  34. vi /etc/yum.repos.d/epel.repo
    - \' F/ |$ w/ K' c9 B
  35. gpgcheck=0
    8 }1 ^& U9 u# V# k! m1 f
  36. # 然后wq!保存再试一次yum install gcc gcc-c++ libffi-devel python-devel python-pip python-wheel openssl-devel libsasl2-devel openldap-devel mysql-devel gcc-devel
    6 H! |: v3 T! O8 C
  37. # d$ J& u/ @8 ?9 i. @. o
  38. # 先用官网下载,因为官网的会自动把依赖也给你一起安装了,实在不行再用其他网站的镜像
    . H6 B4 K* \  y2 X% o
  39. pip install apache-superset==1.4.2# {7 M* ~& |7 r2 m. y1 s

  40. + E6 Y( a" Z" [9 R$ x
  41. # 安装superset,指定版本,不指定版本默认是最新版本$ X2 @5 b' U7 C5 P2 f( {5 H) H
  42. pip install superset==0.30.1 -i https://pypi.douban.com/simple
      p0 O; g" }5 C: d# @$ I
  43. # z* T2 P, j+ k; n# t/ M4 m. ~9 n
  44. # 安装email_validator
    ' w* @' R; P. P- u2 m
  45. pip3 install email_validator -i https://pypi.douban.com/simple/
    7 M; r, u. v6 f. c  t

  46. 6 Y0 W; V6 X2 X5 Z  V
  47. # 更新数据库3 e$ J8 n" O, N9 `
  48. superset db upgrade
    & j4 ~6 a, v8 v' l; a
  49. ) ^, g6 T3 |- v
  50. # 创建admin的用户名,用户名随便写,bigdata123,admin都行,写完用户名后会让你输入姓,名,邮箱,这三项可写可不写,不写就直接回车,然后是设置密码,一点要写。! d+ R; i- _6 }
  51. export FLASK_APP=superset
    ) `# ?. C4 J' c- l0 t) }
  52. superset fab create-admin) a8 Q) W8 a+ }8 m5 p# |6 u

  53. / F# m6 p5 d2 h& L% u% [6 O* F
  54. # 加载样例数据,考验网络,如果实在一致加载报错就放弃,不影响后续使用。: u& }' U% t$ W
  55. superset load_examples
    ( b, c+ q0 m# F+ a' N

  56. 6 f& h8 ]2 Z8 i) e
  57. # 初始化" B2 _' \/ {! L. d; l
  58. superset init% ]2 V! g/ @: v3 I( S$ P6 h

  59. / u" M2 k+ Z* b& k
  60. # 启动,官网是superset run -p 8088 --with-threads --reload --debugger# N% l7 S, ?0 Z( B2 K& t2 i
  61. # 建议用gunicorn启动,方便快速,先直接启动,确保打印在客户端的日志正常
    % V# a' f/ P' d+ h$ ?+ ]$ ]
  62. pip install gunicorn
    / I" c" y$ J9 O  O2 v( Q  A
  63. gunicorn -w 5 --timeout 120 -b  10.218.10.290:9089 "superset.app:create_app()"
    & ]1 C4 O' _, t- n. t: _
  64. ) ?6 _0 \' z. G7 h" h3 [# c2 U
  65. # gunicorn 是一个Python WEB服务,可以理解为Tomcat+ d/ J# C- N" k
  66. # -w WORKERS:指定线程数5 F: Q6 E8 p2 ?1 P3 ?
  67. # --timeout:worker进程超时时间,超过会自动重启
    : K3 D8 i) z0 X0 \. d- f
  68. # -b BIND:绑定Superset访问地址, W' T% r6 \( l
  69. # --daemon:后台运行
    0 Y  w1 e- I3 |; Y6 w: f) _1 \
  70. - J7 S  j: ]- ~1 u# f0 L3 E5 z, O
  71. # 在能访问10.218.10.290:9089的服务器上打开浏览器,输入刚刚登录的用户名,密码即可。
    / S6 R* b+ q: q% G& D% n

  72.   ?. X) T6 u9 q# X( x) t, P1 w
  73. ) n' }+ S7 a$ n7 }( `
  74. # 如果没开启后台停止,直接ctrl+c关停
    ( {* o( P. T0 T2 F* l6 G
  75. # 后台进程停止gunicorn% K, w/ x$ i" U3 s8 P9 r3 q
  76. ps -ef | awk '/gunicorn/ && !/awk/{print $2}' | xargs kill -9
复制代码
; K% R$ |4 ]) a+ M$ V' z! E

( k1 o: a% M% N# S3 H4.3 安装注意及排错
  pip install superset步骤时出现关键字眼Successfully installed证明正确安装,如图4.3.0;+ H9 L" x! b( L1 A$ ?9 D7 k
+ w5 j& b% S3 b% q% q
图4.3.0 成功安装的提示

- H  @3 B  a4 C) e! q
  superset fab create-admin配置用户名时提示如图4.3.1。
图4.3.1 配置用户名时提示

! J8 |) i9 Q) V* Y" c
  每个人的服务器环境,可能导致缺少的 依赖不同,途中如果遇到bug,可自己百度解决,基本都是python依赖包之类的问题,要耐心。
  1. # 报错8 j9 Z% O2 Q; W
  2. ModuleNotFoundError: No module named 'dataclasses'' @$ ~% T; [. B* }& S4 G' C( |6 a

  3. " g: B4 a5 g& G# h* g0 p1 y
  4. # 解决
    ; k6 a; H  X8 D8 a" w$ t
  5. pip install dataclasses
    7 s1 R& e) i4 p! h
  6. ) c9 z4 T' U# C# w
  7. # 报错& W) p: j/ f# v6 C" a
  8. No PIL installation found/ v8 @" h) q/ E/ H( u+ l6 d* X
  9. # 解决
    4 T" Q' O$ M4 v- `: x" P
  10. pip install pillow  l% f$ D! B+ n/ N) _/ N. d
复制代码
- _3 M* ?( e; y) l7 u# x6 V3 @( I
  一切解决后,网页登录如图4.3.2;
图4.3.2 登录首页4.4 启动与关闭

! M$ I7 @+ }$ f; ^1 N1 h. e2 @3 l: t
  官网提供的直接启动的方法不是很好,博主推荐一个采用gunicorn的方法,先关停superset。
! F3 S  b3 T  u9 x4 p9 A: q' r: a' g8 M

  1. 8 \1 z* A4 e( j$ y  o  e
  2. #安装好superset后会在venv生成很多文件,切换到venv
    & K, l1 u( m! s! _' ?
  3. cd /usr/local/tools/superset/venv/
    $ ], p3 h# z3 q! E8 N8 f

  4. / c6 L* i6 E7 J: c1 x& i
  5. . S+ w" I' S9 l7 t0 \) h4 O

  6. . j1 B. j6 e  ^4 l$ ^
  7. #新建日志文件夹
    0 [) L% y6 `4 z
  8. mkdir log& C4 R! E5 t* h$ s) W# ]) t

  9. , @# u7 P. c$ Z/ d+ X
  10. #切换到log目录,新权限 日志,错误日志和启动pid文件( |& _" [0 l9 W6 g
  11. cd log
    9 e3 a% Q8 E# b$ Y: f
  12. touch gunicorn_access.log
    0 Z/ o2 ?! p, D$ L# @9 a) s
  13. touch gunicorn_error.log
    3 N! m' \" r' m% }9 D
  14. touch pidfile
    # E: W) E( S1 n8 F# n
  15. chmod 755 ./*  #修改权限1 j/ ]2 J+ e& h; w- _

  16. ' C7 G5 G0 ^5 z; R
  17. #切换到/usr/local/tools/superset/venv/bin,写一个gunicorn配置文件,python语言
    9 w9 L7 i! _. I
  18. cd ./usr/local/tools/superset/venv/bin" p+ K, J, z; _- i# h) D
  19. & Y. c8 G% |! h* A' q, y: ?5 ?
  20. , g4 Y( `5 P: m9 B  f9 @
  21. vim gunicorn_config.py  # 内容如下$ @5 J1 J3 A$ n! U5 l  N4 q

  22. , t+ n* ~* K) C) X, U1 ]
  23. #内容开始
    / w0 r0 b- ]3 m' ~5 O! T9 ~
  24. import multiprocessing/ t" x+ ~; ~* O" g3 n, z6 G6 V
  25. 3 Y  ~) q- Y4 _4 C/ t- H

  26. - `  D$ @: a1 u7 P) _9 a% m& g1 K
  27. bind = '10.218.10.290:9089'      #绑定ip和端口号! {+ B! a/ A% |6 m4 H  {5 Q) x
  28. backlog = 512                #监听队列
    $ _0 r  n' o+ }1 Y
  29. timeout = 30   #超时( {5 q  b& J7 d# n; l4 y+ Q
  30. worker_class = 'gevent'
    6 M3 W/ X; s0 s# j
  31. workers = 5: r3 z9 N3 ]) A4 ?0 p5 p: ?
  32. worker_connections = 1000
    . ~% u$ ?/ N$ M. ^
  33. threads = 2 #指定每个进程开启的线程数
    3 M9 Z. }- M: i, L; \6 [$ X
  34. loglevel = 'info'  # 日志级别7 F8 B' k' i8 K+ E, i: r
  35. access_log_format = '%(t)s %(p)s %(h)s "%(r)s" %(s)s %(L)s %(b)s %(f)s" "%(a)s"'    #设置gunicorn访问日志格式,错误日志无法设置
    $ [  W! n" n* I0 ]
  36. 1 W, k: c8 Z# x" B
  37. 6 ~1 o$ }" E- C5 Y# ~/ J% M- c
  38. # _- y! o2 o- }" w- l
  39. pidfile = '/usr/local/tools/superset/venv/log/pidfile'- A1 z# M3 Z" m+ \+ n% u
  40. errorlog = '/usr/local/tools/superset/venv/log/gunicorn_error.log'
    ; @0 Q- ~$ H' Z" Q. R
  41. accesslog = '/usr/local/tools/superset/venv/log/gunicorn_access.log'2 h2 ~9 w9 N' }/ G7 _0 T  T
  42. 1 y( ~4 w, V' u4 a1 Q) o
  43. print("IP and PORT:"+bind)
    + ~3 D3 Y- f8 K/ D/ Q: t8 ]
  44. print("pid_file:"+pidfile)
    ! m9 I4 M) Q6 D: p  A" B& @8 n) _
  45. print("error_log:"+errorlog)7 A5 X0 A* m1 P/ Z9 C, J8 t# ]
  46. print("access_log:"+accesslog)! \6 g6 G3 M: ~7 `) Q1 y
  47.   i3 w! t- r+ c9 O8 q8 {
  48. #内容结束
    6 ^/ |( D8 V9 W- ]" {% g$ V$ n; @

  49. & `' O+ d" T7 F- @* s9 v
  50. #然后 wq! 保存退出9 h; s6 d/ v/ a9 V  i/ x# }: r' w5 a

  51. + e0 L% A' h) m, D& P% E
  52. # gunicorn 启动 -c 配置文件启动;--daemon后台启动,日志可以去配置文件指定的路径查看
    / r- p  T( c, }( R/ T0 l, f
  53. gunicorn -c ./gunicorn_config.py "superset.app:create_app()" --daemon
    1 T  U6 R* i0 O% A
  54. , X& q$ e& P) O6 B1 `
  55. # 后台进程查看
    ; r: w! F5 N% `! q7 u
  56. ps -ef | grep gunicorn7 @( a4 `; ^8 S# p8 g$ ]: ]9 W
  57. 3 t, i( _6 m+ E+ {+ I
  58. # 或者通过端口查看
    " _& y( b& g7 W# n: Q  v+ F
  59. netstata -tunlp | grep 9089
    / K2 g4 X. ?+ X: @$ q; Z: q
  60. # 或
    $ O2 |* F6 B* n6 H! B
  61. ss -anp | grep 90897 B; q! r: y) V4 Q1 u( e8 P( G

  62. & i& q5 r8 o+ L' ?7 @7 O( G0 A+ \
  63. # 如果没开启后台停止,直接ctrl+c关停+ d% j2 k+ q4 M% [: w* I
  64. # 后台进程停止gunicorn9 ?* f2 H" K9 E
  65. ps -ef | awk '/gunicorn/ && !/awk/{print $2}' | xargs kill -9
复制代码

5 m: D, ^* F3 w' J% C1 c2 @
5. 用户手册(重点)
# X7 v. I" i! P0 c  v: J  n; J/ F) I& |7 g/ ~! k0 U
5.1 新建Databases(数据库)
  新建数据库之前,需要先安装该数据库的python驱动包,具体语句可以参考官网Database Drivers,如图5.1.0,一般就是pip install XXX,安装好驱动后,记得重启下Superset服务;
  新建数据库连接的作用是为数据集Datasets和SQL实验室SQL Lab提供数据库、表的选择,就是提供数据源,当然Data下还有个Upload CSV(最新版本也支持Upload Excel)也可以直接将本地的CSV文件作为数据源上传到Superset站点,直接进行数据探索分析。
图5.1.0 数据库驱动以及连接字符串

# R3 J, _5 }) P" u* p8 C( g
  登录进Apache Superset后,点击Data,下来选择Databases,然后跳转到图图5.1.1,点击右上侧的+号就可以跳转图5.1.2的数据新增配置界面。
图5.1.1 新建数据库连接

4 ~8 K) f" x! _: @+ g
  图5.1.2,Database是指的新建这个数据库的显示名称,这个随便取,合理即可,SQLAlchemy URI 这个地方就是之前图5.1.0上的数据库连接字符串,确保和你选择的数据库类型一致。% @" t' Y- ^: `
然后点击TEST CONECTION,连接成功后会跳出Seems OK!的弹出框,记得滑到最下面,点击保存,如果连接不成功,请检查数据库的实例,端口,用户名,密码以及自己部署的Apache Superset的服务器访问数据库的端口网络时是否能通,当然也不要忘记SQLAlchemy URI 填写规范,保存后的数据库连接就会列举在图5.1.1上。* o# {6 a9 A2 x: v' }* P
# F9 w( i( o6 [9 W; ~5 Q
图5.1.2 新建数据库连接配置信息% l9 a+ }$ Q7 O8 h0 p+ l+ Y& M) J1 t
5.2 新建Datasets(数据集,老版本也叫Tables)
图5.2.0 新建数据集
3 P3 w0 }# r0 q8 v
  如图5.2.0,点击图中的Data下的Datasets,然后点击+号,跳转到图5.2.1,将配置好的数据库名下拉选出,写一个该连接实例下的数据库,然后选择一张表,点击保存即可,保存好的数据集会列举在图5.2.0中,这些知道为啥老板叫Tabels了吧;( u/ Z$ q4 [& Q7 e
  数据集的作用是为后续的Charts(图表)数据可视化作为数据源头。
图5.2.1 新建数据集配置信息
1 u8 [5 i8 d# ]( z! d

5 f* j. L9 j0 S. i' ?5 N$ L5.3 SQL Lab(SQL实验室)
  SQL Lab其实就是一个数据库查询客户端,利用SQL语句对数据库的表,字段模型进行查询探索,同时支持智能补全,当然SQL Lab的查询结果也可以直接EXPLORE到Charts(图表),作为数据可视化的数据源。% i4 B( k4 v) G" t
  如图5.3.0,SQL Lab有三个选项,三个选项的功能如下:
  • SQL Editor:进行SQL查询探索
  • Saved Queries:保存的通用查询SQL
  • Query Search:查询的历史记录
    2 e( p: V" i" {. U: o" f7 l4 r
图5.3.0 主界面进入SQL Lab

. G0 }# g; M) O
  点击SQL Editor进入图5.3.1的SQL查询探索,左侧上方是配置好的数据库连接名和选择的数据库,左侧下方是将要用到的表及字段模型;右侧上方是写SQL语句的地方,支持RUN(查询),RUN SELECTION(查询鼠标选择局部语句),SAVE(保存),SHARE(分享)等,右下方是数据结果,支持EXPLORE到Charts(图表)可视化,.CSV下载,CLIPBOARD(复制到剪贴板)。
图5.3.1 SQL Lab使用

+ V, m% @( b: d8 j) X7 K5.4 创建Charts(图表)
  图表的作用是数据可视化,利不同的图表满足不同的业务需求,图表同时也作为仪表盘的展示的一部分,一个仪表盘内可以展示一个或多个图表。2 m9 {* ?% s; N9 S4 Q
  创建图表的方式有两种:
  • 如图5.4.0,点击Charts,点击+创建新的图表,跳转图5.4.1
  • 在SQL LabSQL语句探索查询的结果直接EXPLORE到Charts(图表)可视化# ?  Z/ b$ H9 e# F% N  E
图5.4.0 创建图表
- U3 V' x3 ]3 l3 I5 Z0 ^% z
  如图5.4.1,选择合适需求的数据图表(如图5.4.2,支持的图表类型非常丰富,号称最漂亮的可视化图表展示),选择合适的指标,度量值,点击上方的RUN就可以得到结果,非常的方便,可以直接点击上方的SAVE保存图表;) V! _3 c# i9 p" _4 ]) v
: K5 B9 }3 S3 a: F
图5.4.1 图表可视化配置
) R  }# ]. D8 `0 o4 p9 ~
  号称最美可视化展示,支持可视化的图表类型确实丰富多彩,应对各种可视化需求。- ~' u* {  N# q

) ]) m5 f+ r) f3 ~
图5.4.2 支持的图表类型

  C" e9 g) u  J3 S5.5 创建Dashboards(仪表盘)
  仪表盘就是最后的数据总体呈现,即报表展示。
  如图5.5.0,点击Dashboards,然后点击+新建仪表盘,跳转图5.5.1。
图5.5.0 创建仪表盘
" I+ c5 x0 a0 q; {4 [0 C
  点击图5.5.1右上角的编辑仪表盘,之前做好的Charts(图表)拖拽到仪表盘上,注意:第一次拖拽的时候尽量网上拖拽,知道出现这个条蓝色的分解线,否则 无法拖拽过去;
  同时也支持一些通用的组件,图表旁的Components下,有Header、Tabs、Row、Column、Markdown、Divider;
7 J# a" G9 ^! L7 i" x8 O/ H  编辑完后后记得点保存。
图5.5.1 编辑仪表盘
0 y/ R* s2 b. ^7 W1 o4 k
  保存后的仪表盘支持分享,下载等功能,同时也会根据图表内的数据源刷新来获取新的数据;
8 K- D$ C" k4 c) M
+ \6 \3 w( n# R; d! x
图5.5.2 仪表盘功能
5 u% j* u  J8 V- Q5 }4 e
  分享给别人看到的仪表盘如图5.5.3。
图5.5.3 分享后他人视角的仪表盘

" a0 z! r& q# E( a, R; u# V6. 设置
  设置包含在菜单栏Settings下,主要设计权限和操作日志等模块,接下来分别讲解。
2 g( M, k+ Q  Q

% \) K4 M( m  F. f( g
图6.0.0 通用设置

# x. J, R9 j+ R4 Z& {# I# p! V0 Q  Q# J* f
6.1 角色列表及权限
  Apache Superset中的安全性由Flask AppBuilder(FAB)处理,FAB是一个构建在Flask之上的应用程序开发框架。FAB提供身份验证、用户管理、权限和角色,可以查看其相关文档。
" I( D- ~2 z; t4 z" D8 Q2 \  Apache Superset默认提供了不同的角色,每种角色拥有的权限不同,在运行superset init命令时,与每个角色关联的权限将重新同步到其原始值,不建议更改与每个角色关联的权限(例如,通过删除或添加权限),支持admin再自建角色类型,指定想要的权限,默认的角色及权限如下;
  • Admin:管理员拥有所有可能的权限,包括授予或撤销其他用户的权限,以及更改其他用户的切片和仪表板;
  • Alpha:Alpha用户可以访问所有数据源,但不能授予或撤消其他用户的访问权限。它们也仅限于改变它们所拥有的对象。Alpha用户可以添加和更改数据源。
  • Gamma:Gamma用户的访问权限有限。他们只能使用来自通过另一个补充角色访问的数据源的数据。他们只能查看由他们可以访问的数据源制作的切片和仪表板。目前Gamma用户无法更改或添加数据源。我们假设他们主要是内容消费者,尽管他们可以创建切片和仪表盘。另请注意,当Gamma用户查看仪表板和切片列表视图时,他们将只看到他们有权访问的对象。
  • sql_lab:sql_lab角色授予对sql lab的访问权限。请注意,虽然管理员用户在默认情况下可以访问所有数据库,但Alpha和Gamma用户都需要在每个数据库的基础上获得访问权限。
  • public:要允许注销的用户访问某些超集功能,需要自己配置权限,并将其分配给另一个角色,您希望将其权限传递给该角色。# f3 k/ w& I  \9 o
  更多的角色权限可以查看官网Apache Superset Security,或者点开图6.1.0的编辑角色查看,尽量别改默认角色的权限。
" ^; A1 G- p( B/ ]& R; O2 Q

0 D2 ?. f1 X! m0 R
图6.1.0 系统默认角色

( q6 c1 v( Q, z' s6 y9 o, D
  同时Apache Superset也支持管理员自己新增角色,如图6.1.1,新建角色并指定角色权限。
' O; g0 U8 S- S' \: s

: l' \8 w. b: }
图6.1.1 新建角色
* B4 j/ R! A  o1 F
% }% {* U8 e$ V* g
6.2 用户列表
  新建、编辑用户指定角色,用户的权限是绑定在角色里面的,一个用户可以有多个角色,配置信息如图6.2.0。
) j$ m0 G3 X. ^6 T+ C; b
9 ^) r4 H, G4 v" p: o) ]
图6.2.0 新建、编辑角色
8 d- Z  v/ t$ D% _0 N. [! B1 E

: O( W2 U7 @/ E6.3 操作日志
  操作日志记录的是在你的Superset平台上不同用户的行为日志,如图6.3.0。
图6.3.0 行为日志查看

8 z& f" i" D( x; S( S4 J" j, J
) C9 q; Q: {7 T6.4 用户信息、退出、版本信息
  菜单栏最右侧的个人信息,主要是包含:
  • 用户信息:修改用户姓名,重置密码;
  • 退出:回到登录主界面;
  • 版本:目前您安装的Superset版本信息。
    6 d  t- K4 N; o" o
    0 f3 u, _! ^$ S; F) D2 N* `
图6.4.0 个人信息模块
- z" N: k5 ~6 F7 i- ]$ G) @4 I$ y& ?
6.5 语言选择
  作为Apache的顶级项目,自然是运用于全球的,支持世界上一些通用的语言 ,选择一款你最喜欢的即可。
图6.5.0 语言选择

' i$ d5 w3 L; g( S" b6 ~; v6.6 管理设置
  针对仪表盘,图表渲染加入自己想要的风格和模板,实际运用的用的不多。
$ {& w3 ^) Z' ?  u: u
% q& k6 H7 f3 E; V* a
图6.6.0 管理模块
0 \3 f* p1 v) d
6.7 + NEW
  菜单栏的+ NEW其实就是给最通用的三个模块SQL Query、图表、看板(仪表盘)的一个快捷方式,此三者的用法就不在累赘了。
图6.7.0 + NEW模块
5 U1 M/ g7 v5 E
  以上就是关于Apache Superset这款开源的大数据探索分析、可视化报表平台的基本介绍,更多更加刺激的内容可以关注官网及官方文档Apache Superset Documention
! b- m6 R/ r  d+ i

5 X$ p; I5 t* p. ^% n2 \原文来源:https://blog.csdn.net/LXWalaz1s1s/article/details/119061337
- W( v0 n5 P5 O3 T+ e( H5 E& i! j- o
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|通达创业无忧交流社区 ( 粤ICP备2023021749号|粤公网安备 44030402006137号 )

GMT+8, 2026-4-5 05:42 , Processed in 0.182568 second(s), 4 queries , Redis On.

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表