Superset 官方入门教程中文翻译

Easter79
• 阅读 2141

本文翻译自 Superset 的官方文档:Toturial - Creating your first dashboard

最新版本的 Superset 界面与功能上与文档中提到的会有些许出入,以实际的为主。本文仅作翻译

入门教程-创建你的第一个看板

本教程的目标用户是那些想要在 Superset 中创建图表与看板的人。我们将会展示如何通过 Superset 去连接到一个新的数据库并且配置这个库中的一张表以用于分析。同时你也能够通过已经添加上来的数据库去探索数据,可以添加可视化的图表到看板中。通过本教程你能有一个端到端(end-to-end)的用户体验。

连接到一个新的数据库

假设你已经有一个配置好的数据库,并且能够通过正在运行 Superset 的环境中进行连接。如果你仅仅是想体验一下 Supertest 和探索一些样本数据,那么你可以加载 PostgreSQL样本数据集 到一个新的数据库中,或者配置我们在这节中将要使用到的 天气样本数据

数据源菜单下,选择_数据库_选项:

Superset 官方入门教程中文翻译

在跳转的结果页面中,选择右上角的绿色“+”号:

Superset 官方入门教程中文翻译

你可以在这个页面配置许多高级选项,但对于本教程来说,你只需要配置如下两项就好了:

  1. 给要添加进来的数据库起个名字:

Superset 官方入门教程中文翻译

  1. 输入 SQLAlchemy 连接 URI 并且测试连接:

Superset 官方入门教程中文翻译

上图展示了连接用于测试的天气数据库的连接。如 URI 下面的文本所示,你可以参考 SQLAlchemy 文档中的 创建新的连接 URI 来连接目标数据库。

点击 测试连接 按钮来确认两端都没问题。如果 Superset 能够成功连接并获得授权,那么你将看到如下弹窗提醒:

Superset 官方入门教程中文翻译

此外,你应该能够在页面底部看到 Superset 能够读取到的、你刚添加的数据库中已经创建的表:

Superset 官方入门教程中文翻译

如果连接没问题,点击位于页面底部的 保存 按钮来保存这个配置:

Superset 官方入门教程中文翻译

添加新表

到此数据库已经配置好了,你需要添加一个将要用于查询的具体的表到 Superset 中。

数据源 按钮下,选择 数据表 选项:

Superset 官方入门教程中文翻译

在跳转的结果页中,单击右上角的绿色“+”号按钮:

Superset 官方入门教程中文翻译

为了添加新表到 Superset 中你只需要添加少许的几个信息即可:

  • 表名

Superset 官方入门教程中文翻译

  • 数据库 下拉列表中选择目标库(例如,你刚才添加上去的一个)

Superset 官方入门教程中文翻译

  • 可选的,数据库的 schema。如果数据表是存在于默认的 schema 中(例如 PostgreSQL 或者 Redshift 中的 _public_),那么该选项可以留空。

单击 保存 按钮来保存配置:

Superset 官方入门教程中文翻译

当页面重定向到数据表清单页面后,你应该能看到一条信息提示说你的表已经创建好了:

Superset 官方入门教程中文翻译

这条信息同时也告诉你可以编辑表配置。我们当前将仅会编辑一小部分配置-为了能让你开始-同时剩下一些留在高级教程中。

在你刚才创建的表旁边单击编辑按钮:

Superset 官方入门教程中文翻译

在结果页中,点击 列列表 标签。在这里,你可以定义一些在探索数据时使用到的具体列。我们将会历遍这些选项去描述它们的作用:

  • 如果你希望用户根据具体的列来进行分组,那么在 可分组 下勾选它
  • 如果你需要根据具体的列来进行过滤,那么在 可过滤 下勾选它
  • 是否有一些字段你需要去统计它的唯一值个数的?勾选 唯一性统计
  • 是否有一些字段你需要去求和的,或者想要得到一些基本的统计信息?那么 求和最小值最大值 列会有帮助
  • 所有的日期或者时间字段,都应该勾选上 表示时间(原文是 is temporal )。我们将会在稍后讲述它们是如何操作的。

(译注:目前我安装上的版本中,只剩下可分组、可过滤、表示时间这三个选项了)

以下是已经针对天气数据配置好的字段。对于天气数据的测量(比如降雨量、降雪量等等)来说,根据以下这些字段它已经足够去分组和过滤的了:

Superset 官方入门教程中文翻译

如上图所示,点击 保存 按钮以保存这些配置。

探索数据

要探索数据,只需要在表列表中点击你刚才创建的表的名字即可:

Superset 官方入门教程中文翻译

默认地,展现在你面前的是表视图(Table View):

Superset 官方入门教程中文翻译

让我们使用一些基本的查询来统计表中的所有记录数。首先,我们需要更改 时间(Since)过滤器来取得数据的时间范围,你可以通过一些简单的词语来应用这个筛选,例如“3年前”:

Superset 官方入门教程中文翻译

而这个时间区间的上限,在 Until 过滤器中,默认是 现在,当然这个可能并不是你想要的。

再看到位于 分组 下方的 指标 部分,可以在其中输入 “Count” —— 你会看到一个根据你的输入而匹配出来的指标列表:

Superset 官方入门教程中文翻译

选择 COUNT(*) 指标,然后点击位于探索器顶部旁边的绿色按钮:

Superset 官方入门教程中文翻译

你将会右侧的表格里看到查询结果:

Superset 官方入门教程中文翻译

让我们在 分组 区域中,以 weather_description 字段为分组,取得以天气记录类型为分类的记录数有多少:

Superset 官方入门教程中文翻译

执行查询:

Superset 官方入门教程中文翻译

让我们查找一个更加有用的数据:在 2015 年有记录的温度最高的时间和地点的 TOP 10。

分组 区域中,把 weather_description 替换为 latitude_,_longitude 和 _measurement_date_:

Superset 官方入门教程中文翻译

同时在 指标 区域中,把 COUNT(*) 替换为 _max__measurement_flag_:

Superset 官方入门教程中文翻译

max__measurement_flag 指标是在我们前面配置表的时候,勾选了 measurement_flag 字段对应的 Max 选框而创建的,指明这个字段是一个数值并且当需要根据指定的字段进行分组的时候我们要在其中查询它的最大值。

在本案例中,measurement_flag 是测量所需要使用到的值,它很明显是依赖于测量的类别的(研究者会记录不同的降雨量和气温的值)。因此,我们必须仅在 weather_description 相等于 “Maximum temperature” 的记录中过滤我们的查询,这个过滤会在探索器窗口底部的 过滤 模块中进行:

Superset 官方入门教程中文翻译

最后,由于我们仅关心 top 10,所以我们要限制我们的查询结果为 10 条记录,通过位于 Options 头下方的 行限制 来实现:

Superset 官方入门教程中文翻译

点击 查询 然后可以得到如下的结果:

Superset 官方入门教程中文翻译

在这个数据集中,最高温度以十分之一摄氏度记录( is recorded in tenths of a degree Celsius)。最大值是 1370,在内华达州中部测量得到的,相当于 137 摄氏度,或约等于 278 华氏度。这个数据可能是错的。我们已经使用 Superset 探查了一些异常值,但这仅仅是冰山一角。

你可以通过这些方法来做许多事情:

  • 默认的显示数值的格式是 1.37k,是不便于人们阅读的。可能你会更加喜欢使用全的、使用逗号分隔的值。通过修改配置(编辑 表配置 > 列出 SQL 指标 > 编辑指标 > D3 格式)你可以更改任何一个指标数据的格式。
  • 此外,可能你想把温度直接以原生的摄氏度来显示,而不是显示它的 10 倍值,又或者你需要把它转换成华氏度来显示。你可以修改针对数据库执行的 SQL 语句,将转换逻辑直接映射到指标本身(编辑 表配置 > 列出 SQL 指标 > 编辑指标 > SQL 表达式)。

现在,让我们为这些数据创建一个更好的可视化图表并且把它添加到看板中。

我们更改图表类型为 “分布-柱状图”:

Superset 官方入门教程中文翻译

我们前面设置的对最高温度指标的过滤器可以保留,但是查询语句和格式选项是依赖于图表类型的,因此你必须要再次配置这些值:

Superset 官方入门教程中文翻译

你应该注意到了,对于这个图表来说,它有更多的格式化选项:设置轴标签、外边距、刻度等等。为了在更多的受众面前展示图表,你可能会想要应用多个这些图表并且把它们添加到看板中。现在,我们执行查询并且得到如下的图表:

Superset 官方入门教程中文翻译

创建切片和看板

这些图可能对于研究者来说是有用的,因此让我们来保存它。在 Superset 中,一个保存好的查询被称为一个 切片(Slice)。

为了创建切片,单击位于探索器左上角的保存按钮:

Superset 官方入门教程中文翻译

此时会有一个弹窗出现,要求填写切片的名字,和一个是否要添加到看板的可选项。由于我们还没有创建任务看板,这里我们可以创建一个同时直接添加我们的切片到这个看板中:

Superset 官方入门教程中文翻译

点击保存,然后你会被重定向回原来的查询界面。同时可以看到我们的切片和看板都已经成功创建了:

Superset 官方入门教程中文翻译

来检查一下我们的新看板。点击 看板 菜单:

Superset 官方入门教程中文翻译

找到刚才创建的看板:

Superset 官方入门教程中文翻译

一切安好-我们的切片也在这里:

Superset 官方入门教程中文翻译

但是它比我们预期的要小一点。幸运的是,你可以调整在看板中的切片。点击它,保持鼠标按下不要放开并且拖动右下角直到你想要的大小:

Superset 官方入门教程中文翻译

调整完之后,你会被提示去点击看板左上方的按钮来保存这个新的配置。

恭喜你!你已经成功地在 Superset 中连接、分析并且进行了数据可视化操作。这里面有许许多多的表配置与可视化选项,所以请开始探索与创建你自己的切片和看板吧。

本翻译版权归本人 博客园-东围居士 所有,转载请注明出处

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
6个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Android So动态加载 优雅实现与原理分析
背景:漫品Android客户端集成适配转换功能(基于目标识别(So库35M)和人脸识别库(5M)),导致apk体积50M左右,为优化客户端体验,决定实现So文件动态加载.!(https://oscimg.oschina.net/oscnet/00d1ff90e4b34869664fef59e3ec3fdd20b.png)点击上方“蓝字”关注我
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Wesley13 Wesley13
3年前
35岁是技术人的天花板吗?
35岁是技术人的天花板吗?我非常不认同“35岁现象”,人类没有那么脆弱,人类的智力不会说是35岁之后就停止发展,更不是说35岁之后就没有机会了。马云35岁还在教书,任正非35岁还在工厂上班。为什么技术人员到35岁就应该退役了呢?所以35岁根本就不是一个问题,我今年已经37岁了,我发现我才刚刚找到自己的节奏,刚刚上路。
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
美凌格栋栋酱 美凌格栋栋酱
1星期前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Easter79
Easter79
Lv1
今生可爱与温柔,每一样都不能少。
文章
2.8k
粉丝
6
获赞
1.2k