资讯专栏INFORMATION COLUMN

Superset搭建及其简单使用

YPHP / 1664人阅读

摘要:背景老板一直反馈说我们给不了他想要的关键每次他想要的都不一样每实现一个新功能他就想要一堆相关的信息我要将这些信息都给他做成网页用图表展示出来各种维度搜索这还不得累死这帮开发小伙伴所以对于他这种需求我基本都予以回绝坚决不做不过口头说不做也深知

背景

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

单机软件这种图表总归是希望可以在线查看, 手机查看最完美
付费软件不便宜
所以我就一直在寻找开源在线的解决方案, 最开始打算使用grafana, 后来发现他对时序支持比较好, 对于表查询的展示好像怪怪的, 就放弃了. 终于在某天在一个偶然的机会, 发现了Superset这个开源项目. 好东西. 于是乎有了今天的分享

简介

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

安装

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

首先安装docker
创建相关目录

mkdir /dockerfs/superset/conf -p mkdir /dockerfs/superset/data -p

创建容器

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

使用配置文件

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 = "21thisismyscretkey12eyyh" # 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

退出容器, 重启容器, 然后进行用户初始化

docker restart superset docker exec -it superset superset-init

init pwd.png

打开浏览器, 键入地址, 可以使用起来了

login.png

dashboard.png

使用 配置数据源

datasources.png

connection.png

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

添加要展示的表
创建slice, 然后将创建好的slice加入到dashboard我感觉这部分不难, 自己摸索摸索总归能够用起来, 我这里就不详细说了
多表展示这里要特别强调一下如何显示多表的展示, 很多文章都说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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/32288.html

相关文章

  • [原]解密Airbnb 自助BI神器:Superset 颠覆 Tableau

    摘要:概述我非常认同前百度数据工程师现神策分析创始人桑老师最近谈到的数据分析三重境界统计计数多维分析机器学习数据分析的统计计数和多维分析,我们通常称之为数据探索式分析,这个步骤旨在了解数据的特性,有助于我们进一步挖掘数据的价值。 showImg(https://camo.githubusercontent.com/f98421e503a81176b003ddd310d97e1e1214625...

    Keagan 评论0 收藏0
  • Apache Superset使用分享

    摘要:请原谅我以下所有截图中都是使用的中文,有些地方翻译略显生硬。本来系统是使用的英文,奈何领导要求中文呀。时间字段的表示时间属性必须勾选上一般会时间列默认勾选。可根据来排查问题所在,并且系统为用户提供版的查询工具来操作数据库。Superset简介 Superset是一个受Apache软件基金会支持的处于孵化阶段的企业级数据可视化web项目。具有以下特点: 内含丰富的数据图表样式 支持多种数据源...

    mdluo 评论0 收藏0
  • superset 性能优化1-已经使用中的superset更改默认数据源sqlite到mysql

    摘要:已经使用中的更改默认数据源到提取由于当前使用需要到宿主数据导出然后使用数据库工具打开文件选择导出向导数据保存到一个文件夹创建数据库与账号安装支持修改数据库这个网上很多配置然后使用初始化数据表结构如果直接导入导出的字段默认都是,这个会有问题更 已经使用中的superset更改默认数据源sqlite到mysql 1.提取sqlite db(由于当前使用 docker 需要到宿主)docke...

    skinner 评论0 收藏0
  • superset 性能优化1-已经使用中的superset更改默认数据源sqlite到mysql

    摘要:已经使用中的更改默认数据源到提取由于当前使用需要到宿主数据导出然后使用数据库工具打开文件选择导出向导数据保存到一个文件夹创建数据库与账号安装支持修改数据库这个网上很多配置然后使用初始化数据表结构如果直接导入导出的字段默认都是,这个会有问题更 已经使用中的superset更改默认数据源sqlite到mysql 1.提取sqlite db(由于当前使用 docker 需要到宿主)docke...

    denson 评论0 收藏0
  • 开源的数据探查与可视化平台superset

    摘要:安装远程主机强迫关闭了一个现有的连接。安装包测试连接参考数据可视化平台使用心得一小时建立数据分析平台 安装 pip superset curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python get-pip.py λ pip install superset Collecting superset Download...

    1fe1se 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<