Superset搭建及其简单使用

背景

老板一直反馈说我们给不了他想要的, 关键每次他想要的都不一样, 每实现一个新功能, 他就想要一堆相关的信息, 我要将这些信息都给他做成网页, 用图表展示出来, 各种维度搜索, 这还不得累死这帮开发小伙伴. 所以对于他这种需求, 我基本都予以回绝, 坚决不做. 不过口头说不做, 也深知老板不容易, 他要的信息也不过分, 其实就是要一些数据统计罢啦, 经过一些调研, 一些数据分析部门的朋友建议我用tableau, 我也玩了玩, 功能相当强大, 不过有两个问题:

  1. 单机软件
    这种图表总归是希望可以在线查看, 手机查看最完美
  2. 付费软件
    不便宜

所以我就一直在寻找开源在线的解决方案, 最开始打算使用grafana, 后来发现他对时序支持比较好, 对于表查询的展示好像怪怪的, 就放弃了. 终于在某天在一个偶然的机会, 发现了Superset这个开源项目. 好东西. 于是乎有了今天的分享

简介

曾用名Caravel, Panoramix, 是由Airbnb(知名在线房屋短租公司)开源的数据分析与可视化平台, 该工具主要特点是可自助分析, 自定义仪表盘, 分析结果可视化(导出), 用户/角色权限控制, 还集成了一个SQL编辑器, 可以进行SQL编辑查询等。

安装

我使用docker进行安装, 本以为很简单, 中间还是遇到一些坑.

  1. 首先安装docker
  2. 创建相关目录
mkdir /dockerfs/superset/conf -p
mkdir /dockerfs/superset/data -p
  1. 创建容器
docker run -p 8088:8088 -v /dockerfs/superset/conf:/etc/superset -v mkdir /dockerfs/superset/data:/data  --name superset -d amancevice/superset:0.18.5
  1. 使用配置文件
vi /dockerfs/superset/conf/superset_config.py

输入内容

#---------------------------------------------------------
# Superset specific config
#---------------------------------------------------------
ROW_LIMIT = 5000
SUPERSET_WORKERS = 4

SUPERSET_WEBSERVER_PORT = 8088
#---------------------------------------------------------

#---------------------------------------------------------
# Flask App Builder configuration
#---------------------------------------------------------
# Your App secret key
SECRET_KEY = '\2\1thisismyscretkey\1\2\e\y\y\h'

# The SQLAlchemy connection string to your database backend
# This connection defines the path to the database that stores your
# superset metadata (slices, connections, tables, dashboards, ...).
# Note that the connection information to connect to the datasources
# you want to explore are managed directly in the web UI
SQLALCHEMY_DATABASE_URI = 'sqlite:////data/superset.db'

# Flask-WTF flag for CSRF
WTF_CSRF_ENABLED = True

# Set this API key to enable Mapbox visualizations
MAPBOX_API_KEY = ''

问题就出现在sqlite的路径上, sqlite默认存储在sqlite:////home/superset/.superset/superset.db, 我这里为了以后升级, 所以切换了存储路径, 这里有两种做法

  • 直接将/home/superset/.superset/路径映射出来
  • 将/home/superset/.superset/superset.db文件拷贝到/data目录

我这里选择的是第二种, 坑也在这, 使用

docker exec -it superset /bin/bash
cp /home/superset/.superset/superset.db /data

失败, 发现没有权限, ls了一下才发现当前用户是非root用户, 而/data目录是root权限.
经过一番查找, 发现可以使用以下命令用root账号登陆容器

docker exec -u 0 -it superset /bin/bash

0号用户就是root用户, 剩下来的就简单了

mv /home/superset/.superset/superset.db /data
  1. 退出容器, 重启容器, 然后进行用户初始化
docker restart superset 
docker exec -it superset superset-init
init pwd.png
  1. 打开浏览器, 键入地址, 可以使用起来了
login.png
dashboard.png

使用

  1. 配置数据源
datasources.png

connection.png

注意 连接mysql的时候一定要加charset=utf8, 要不然中文会显示乱码.
点击Test Connection, 进行测试, 如果正常会显示"Seems OK!"

  1. 添加要展示的表
  2. 创建slice, 然后将创建好的slice加入到dashboard
    我感觉这部分不难, 自己摸索摸索总归能够用起来, 我这里就不详细说了
  3. 多表展示
    这里要特别强调一下如何显示多表的展示, 很多文章都说superset不支持多表, 只支持单表, 我刚开始也以为是这样, 后来发现这个方法可以进行基于多表的展示.
    首先记得数据库配置里先勾选"Expose in SQL Lab", 要不然在SQL Lab中是找不到数据源的
Expose in SQL lab.png
SQL lab.png

先执行一个语句, 注意查询结果中不要有相同的列, 如果有, 后续会提示错误

query.png

点击"Query History", 选择Visualize


Visualize.png

勾中一个, 会有以下效果, 我基本都是用默认属性, 然后点击最下方按钮


modify.png

他会跳到slice的编辑页, 可以进行编辑, 其实他这个过程是创建了一个以查询为结果的临时表, 后续就是在这个临时表中做展示. 知道这个原理, 也可以通过直接添加表来进行操作, 只是操作流程不允许写入sql, 可以先添加, 然后再填入sql(我没尝试过, 应该行得通)
table list.png
table detail.png

最终结果如下

result.png

结语

文章写的有点啰嗦, 如果你有数据可视化的问题, 希望这篇文章能够给予你一定的帮助, 目前我观察下来, 这部分做的好的软件不多, 很多都是靠卖服务赚钱的, 比如数据观(人家做的真好, 其实挺鼓励使用人家的服务的, 如果没什么研发人员, 可以优先考虑使用), 希望这个软件可以满足老板的部分需求. 据说这里面的图表还可以嵌入到其他系统中, 没有仔细研究过, 不过这种不易调优的查询, 最好还是临时用用就好, 别嵌入到系统中, 稳定性和性能都不能有所保障.

最后还是附几张人家的图表截图吧

spanshot1.png
spanshot2.png
spanshot3.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 156,069评论 4 358
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,212评论 1 287
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 105,912评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,424评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,741评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,194评论 1 206
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,553评论 2 307
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,289评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,923评论 1 237
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,251评论 2 240
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,775评论 1 255
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,144评论 2 249
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,698评论 3 228
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,936评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,658评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,214评论 2 267
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,159评论 2 258

推荐阅读更多精彩内容