引子

数据剖析(Data Analytics)以及商业智能(Business Intelligence)是很多企业实现数字化战略的重要事务模块。咱们之前在《浅谈数据:数据领域需求把握些什么?》中介绍过数据领域中不可获取的部分,也便是架构流程方面的软件东西辅助服务。本文将介绍的数据剖析开源渠道 Apache Superset 就能供给这样的服务。本文将简略介绍怎么装置布置以及运用 Superset。

实战数据分析: 利用开源项目 Superset 搭建自助数据分析平台

Superset 简介

Superset 是 Apache 基金会孵化的开源自助数据剖析渠道,能够当作开源版的 Power BI 或 Tableau,不过 Superset 的交互界面仅限于 Web。整个体系根据 Python Flask,集成了 MySQL、Postgres、SQL Server 等干流联系性数据库,以及 ElasticSearch、ClickHouse、Snowflake 等现代数据库。前端可视化剖析界面跟 Power BI 和 Tableau 十分相似,操作也相对简洁。因而,假如需求搭建一个相似 Power BI 或 Tableau 这样的企业级数据剖析渠道,在不氪金的情况下,Superset 是个十分不错的挑选。

实战数据分析: 利用开源项目 Superset 搭建自助数据分析平台

装置 Superset

装置 Superset 最简略的方式是 Docker 容器。对 Docker 不熟悉的朋友,能够检查 Docker 官网或相关材料,或许越过本章节让懂技能的朋友协助装置。

假定你现已装置好了 Docker 以及 Docker Compose,现在能够在指定位置创立容器装备 docker-compose.yml 文件,输入以下内容。其中,咱们加入了 MySQL 容器来供给数据库服务。

version: "3.3"
services:
  superset:
   image: apache/superset
   container_name: superset
   volumes:
    - "./startup.sh:/opt/startup.sh"
   ports:
    - "8088:8088"

  mysql:
   image: mysql
   container_name: mysql
   environment:
    MYSQL_DATABASE: "superset"
    MYSQL_ALLOW_EMPTY_PASSWORD: "yes"

然后,在同一个目录下创立初始化脚本文件 startup.sh,输入以下内容。其中,加载演示数据部分现已注释掉,需求检查演示数据的朋友能够撤销注释。

#!/bin/sh# create admin account
superset fab create-admin \
  --username admin \
  --firstname Superset \
  --lastname Admin \
  --email admin@superset.com \
  --password admin
​
# upgrade database
superset db upgrade
​
# load examples
#superset load_examples# set up roles
superset init

现在咱们现已创立好容器装备文件以及初始化脚本文件,就能够开端发动容器并初始化了。履行以下命令来发动容器以及初始化。

# start docker containers
docker-compose up -d
​
# initialize superset
docker exec -it sh /opt/startup.sh

当上述操作履行完毕后,咱们就能够用浏览器翻开 http://localhost:8088,进入到 Superset 登陆页面。

实战数据分析: 利用开源项目 Superset 搭建自助数据分析平台

咱们能够输入默许用户名暗码 admin/admin 进入界面。

创立第一个数据集

登陆进入 Superset 之后你会发现现在什么也没有(除非之前撤销注释了加载数据)。现在咱们需求进行两步操作来创立第一个数据集(Dataset)。

衔接数据库

将鼠标悬浮在右上角的加号按钮,继续悬浮到 Data,然后点击 Connect database

实战数据分析: 利用开源项目 Superset 搭建自助数据分析平台

出现弹窗后,挑选 MySQL,并输入数据库衔接信息,如下图。然后点击 Connect,继续点击 Finish完结数据库衔接。

实战数据分析: 利用开源项目 Superset 搭建自助数据分析平台

设置答应上传文件

为了在 Superset 上赶快体会交互式数据剖析,咱们将挑选上传一个 Excel 数据文件到 Superset。

不过在此之前,咱们需求多做一步,即在 MySQL 中答应上传文件。这个能够经过 Superset 界面进行设置。操作如下。

  1. Settings 中点击 Database Connections
  2. 编辑刚刚创立的 MySQL 数据库;
  3. Advanced,在 Security 下勾选 Allow file uploads to database,然后确定。

好了,现在咱们能够上传 Excel 文件了!

上传 Excel 数据文件

在右上角点击 Upload file to database 然后点击 Upload Excel file

实战数据分析: 利用开源项目 Superset 搭建自助数据分析平台

然后,在上传 Excel 页面中,挑选要上传的文件,输入表名为 sales,点击下方的 Save 按钮,即可创立数据集。

为了之后的数据剖析演示,咱们将运用 Kaggle 上的 Sample Sales Data 数据集。因为其默许 CSV 文件上传到 Superset 有数据库编码问题,我现已将其转化为 Excel 文件上传到 GitHub,能够经过 GitHub 链接下载。

上传 Excel 数据文件完毕后,你能够在 Datasets 中看到现已创立好的数据集。

接下来咱们来看看如安在 Superset 中剖析该数据。

剖析出售数据

点击方才创立好的 sales 数据集,进入到剖析页面。假如你对 Power BI 或许 Tableau 熟悉的话,你会发现这其实便是 Power BI 的 Visual,或 Tableau 中的 Chart。其最左侧是数据集的各个字段,周围是数据操作区域,右侧是图标展现区域。

实战数据分析: 利用开源项目 Superset 搭建自助数据分析平台

季节性剖析

现在,咱们想看看按季度的出售额是多少。将左侧的 SALES 拖到 METRICS,并挑选 SUM;然后将 YEAR_IDQTR_ID 拖到 DIMENSIONS;再点 CREATE CHART。咱们能够看到如下统计表格。

实战数据分析: 利用开源项目 Superset 搭建自助数据分析平台

从上图能够看到,出售额(Sales)好像受季节性影响:每个冬天,也便是第四季度会有大量的出售额。这是因为,欧美国家会在圣诞节期间大量收购节日礼品以及物资,构成较高的出售额。因而,这个发现也不意外。

相关性剖析

接下来,咱们想关怀一下订单数量(Quantity Ordered)与单价(Price Each)跟优惠力度(Deal Size)的联系。咱们挑选 View all charts,挑选 Bubble Chart,输入相关字段后,生成如下泡泡图。

实战数据分析: 利用开源项目 Superset 搭建自助数据分析平台

能够看到,优惠力度越大,订单数量越高;而价格与订单数量没有显着的相关联系。

以上,咱们经过鼠标操作几下,就创立了两个简略的图表,从而完结了简略的可视化数据剖析。Superset 虽然功能上还不及商业软件 Power BI 和 Tableau,但这关于咱们白嫖玩家来说现已完全够用!

总结

本篇文章介绍了怎么搭建装置 Superset,以及在 Superset 上创立数据集,以拖拽的方式进行可视化剖析,从而协助咱们体会和理解 Superset 在数据剖析方面的功能。作为 Apache 基金会孵化出来的开源项目,Superset 是十分优秀的数据剖析渠道,能够作为一些中小公司的挑选,特别是关于有必定运维经验的程序员。不过,Superset 在功能性、易用性、技能生态等方面还达不到同类商业软件 Power BI、Tableau。例如,Power BI 的 Gateway 让其能够轻松的打通各个体系的数据,它其实现已不单是数据可视化东西了,但 Power BI 的商用许可也十分贵重。Superset 还有其他的一些功能,例如 Dashboard,本文限于篇幅就没有介绍了,以后有机会再详细介绍一下。

社区

假如您对笔者的文章感兴趣,能够加笔者微信 tikazyq1 并注明 “码之道”,笔者会将你拉入 “码之道” 交流群。