Superset 数据分析平台搭建及使用 2

来源:互联网 发布:凯立德端口修改工具 编辑:程序博客网 时间:2024/05/23 01:58

Superset 数据分析平台使用

一、实验介绍

1.1 实验内容

Superset 是 Airbnb 开源的数据分析与可视化平台,同时也是由 Python 语言构建的轻量级 BI 系统。Superset 可实现对 TB 量级数据进行处理,兼容常见的数十种关系或非关系型数据库,并在内部实现 SQL 编辑查询等操作。除此之外,基于 Web 服务的 Superset 可实现多用户协使用,并可针对不同角色进行权限管理。Superset 如今已归属于 Apache 孵化项目,并被 Yahoo,豆瓣等国内外知名公司使用。

1.2 实验知识点

  • Superset 平台使用

1.3 实验环境

  • python2.7
  • Xfce 终端

1.4 适合人群

本课程难度为一般,属于初级级别课程,适合具有 Python 基础,并对数据分析与可视化感兴趣的用户。

二、Superset 简明教程

2.1 Dashboards 看板

当我们登陆 Superset 之后,默认呈现的是看板界面。看板是许多 BI 类工具的必要元素之一,它的作用是将不同类型的图表平铺集中呈现,这些图表甚至可以由不同数据表绘制而来。看板所达到的效果也是显而易见的。

Superset 提供默认提供了 3 个示例看板,分别是:Misc Charts、Birth、World’s Bank Data。我们可以通过下面的动图看到,它集中显示了世界人口变化的一些数据图表。其中包含地图样式、饼状图、散点图、柱状图、词图等。

此处输入图片的描述

看板中的图表并不是静态的,它可以实随着数据库的变化时刷新。你可以随意组合、拖动、拼接不同类型的图表。图表是动态可交互。例如图中所示,当我们在 World’s Bank Data 看板中选择特定地区时,看板中的所有图表都会刷新到选定地区的数据。

2.2 Slice 切片

上面,我们介绍了看板,而看板中的图表均是通过 Slice 切片工具绘制。你可以通过顶部菜单栏进入到切片。

此处输入图片的描述

切片,实际上就是抽取整个数据库中的特定一块数据,然后针对这块数据进行绘图的过程。通过对数据库切片,我们就可以用不同类型的图表绘制不同维度的数据,从而达到对整个数据集的透视效果。

你可以通过左上角的 + 号新建一个切片。进入之后,需要选取数据表、选取绘制的图类型。界面的下方,是针对数据的一些选项。通过不同的筛选条件,将需求绘制出来。

此处输入图片的描述

Superset 目前支持绘制 30 多种不同类型的图表,它们如下图所示。其中,Sankey,Chord Diagram,Word Cloud 等样式的图表都非常不错。

此处输入图片的描述

2.2 Sources 数据源

Slice 切片中使用到的数据由 Superset 数据源提供。Superset 数据源实际上就是连接本地数据库。

Superset 安装完成之后,就可以直接连接 SQLite 数据库。但同时也支持连接常见的数据库类型,不过需要安装依赖。相关数据库安装命令如下:

# MySQL 数据库pip install mysqlclient# Postgres 数据库pip install psycopg2# Presto 数据库pip install pyhive# Oracle 数据库pip install cx_Oracle# Redshift 数据库pip install sqlalchemy-redshift# MSSQL 数据库pip install pymssql# Impala 数据库pip install impyla# SparkSQL 数据库pip install pyhive# Greenplum 数据库pip install psycopg2# Athena 数据库pip install "PyAthenaJDBC>1.0.9"# Vertica 数据库pip install sqlalchemy-vertica-python# ClickHouse 数据库pip install sqlalchemy-clickhouse

Superset 使用了 SQLAlchemy,使得连接数据库变得非常简单。SQLAlchemy 是 Python 语言下的一款开源软件,它提供了 SQL 工具包及对象关系映射工具。

下面,我们就尝试连接一个数据库,首先你可以先通过下面命令下载 SQLite 数据库文件。示例数据来源于 清华大学开放中文词库。

wget http://labfile.oss.aliyuncs.com/courses/919/THUOCL_IT.sqlite

然后,我们点击顶部数据库菜单,然后通过 + 新建连接。

此处输入图片的描述

需要填写数据库名称,然后重点是 SQLAlchemy URI。这里是 SQLite 数据库,在 Linux 下它的链接如下:

sqlite:////home/shiyanlou/THUOCL_IT.sqlite

链接以 sqlite:// 开头,后面是数据文件的绝对路径 //home/shiyanlou/THUOCL_IT.sqlite

不同类型数据库的 SQLAlchemy URI 开头部分不一致,具体如下:

# MySQL 数据库mysql://# Postgres 数据库postgresql+psycopg2://# Presto 数据库presto://# Oracle 数据库oracle://# sqlite 数据库sqlite://# Redshift 数据库postgresql+psycopg2://# MSSQL 数据库mssql://# Impala 数据库impala://# SparkSQL 数据库jdbc+hive://# Greenplum 数据库postgresql+psycopg2://# Athena 数据库awsathena+jdbc://# Vertica 数据库vertica+vertica_python://# ClickHouse 数据库clickhouse://

如果你在实际操作中仍然有疑问,可以参考SQLAlchemy URI 官方说明。

填写完 SQLAlchemy URI 之后,可以点击 Test Connection 测试连接是否正确。如果成功链接,页面下方会显示出该数据库对应的表。页面下方的选项,推荐Expose in SQL LabAllow Run Sync,其余默认即可。

2.4 SQL 工具箱

Superset 顶部的最后一个菜单为 SQL 工具箱,它提供了针对数据库的 SQL 查询功能。

此处输入图片的描述

三、实验总结

Superset 适合与个人或中小企业内部使用的 BI 工具。相比于成熟的商业软件,它开源免费,可以自己根据需求进一步 DIY。基于 Web 的形式非常方便,还可以多用户协同使用。

当然,Superset 也有一些缺点。多标之间的联动操作、过滤条件都比较薄弱,更新迭代慢,这些这都不及商业软件。

原创粉丝点击