【Elastic Engineering】使用 Elastic Stack 来分析奥运数据(二)

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 这是我的上一篇文章 “使用 Elastic Stack 来分析奥运数据(一)” 的续篇。在上一篇文章中,我详细介绍了如何把数据上传到 Elasticsearch 中。在今天的这篇文章中,我将着重来讲述如何实现针对这个 olympic 索引进行可视化。


这是我的上一篇文章 “使用 Elastic Stack 来分析奥运数据(一)” 的续篇。在上一篇文章中,我详细介绍了如何把数据上传到 Elasticsearch 中。在今天的这篇文章中,我将着重来讲述如何实现针对这个 olympic 索引进行可视化。


可视化奥运数据


在上一篇文章中,我们可以看到这样的数据:



截止2016,一共有271,116个运动员参赛。我们可以创建一个 Dashboard 来可视化这个数据。


获得参赛人数


 

 

这样我们就得到了我们的第一个可视化化图。在过去的140年里,共有 271,116 个运动员参加比赛了。

 

查看男女比例


我们还是按照上面的套路,点击 Create visualization:



这次,我们拖拽的是 sex 字段。我们可以从上面看出来男人站 72.51% 的比例。点击 Save & return:



这样就形成了我们的第二个可视化图。在上面, 我们还可以为每个图添加一个标题。我接下来想得到所有运动员中年龄最大的。


年龄最大的运动员


点击上图的 Create visualization:



点击上面的 Save & return:



这样我们就得到了我们的第三个可视化图。它显示参赛者最大年龄者是97岁。  细心的读者,可能在上面的图中看到一个24值的。它实际上是一个表示所有运动员年龄的中位数。也就是说一半以上的运动员年龄超过24岁。当然我们也可以求出来年龄的平均值。关于其它的指标,我在这里就不一一展示。  也许大家对年龄最小的运动员感兴趣。还记得我们在数据清洗时,如果 age 字段的值是一个 NAN (not a  number),我们就会设置为0。在表格中,其实有一部分的运动员的年龄是没有的,所以被设置为0。年龄最小的运动员是0,这也就不奇怪了。


历届参数人数


在我们的 Discover 界面,我们已经看到了历届参数的人数。那么我们该如何进行可视化呢?和之前一样,在 Dashboard 界面点击 Create visualization:



这也我们就得到了历届参数人数的总览图。从图中,我们可以看出来,早期有较少的人参加,而且在中间还有两个时期,没有奥运会的举办。在后期,我们可以看到夏季奥运会和冬季奥运会是每隔两年举办一次的。


查看历届冬季奥运会的参数人数


针对这个,我们使用 Lens 确实有点难度,因为我们只是使用其中的一部分数据来进行可视化,也就是 season 为 Winter 的数据。在 Lens 中我们没法使用 filter 来进行过滤。我们有两种方法来进行可视化:


1)使用一个被过滤的数据集。



我们点击 Save:



我们保存 olympic_winter 数据集。我们只有使用 aggregations 工具来进行可视化:



这样我们就得到了冬季奥运会的可视化图。


2)使用 TSVB 来进行可视化


另外一种方法就是直接使用 TSVB 来进行可视化。我们不需要保存一个被过滤的数据集。



在上面,我们选择 Bar,并点击 Save & return:



我们可以看到和上面的第一种方法一样的结果。


年龄分布图


我们看看奥运健儿的年龄分布图。在 Dashboard 中点击 Create visualization:



从上面我们可以看出来运动员的年龄中位数为24岁。还有一些年龄非常大的运动员也活跃在奥运会中。

 

奖牌按照国家排名


我们接下来按照获得的奖牌数量进行排名。这个奖牌的数量可以是金牌,银牌及铜牌。针对这种情况,它同样是有一个 filter,也就是 medal 不为 None 的那些运动员才是有奖牌的。我们可以仿照之前的方法创建一个过滤后的数据集:


 


我们接下来使用  Aggregation based 可视化工具来进行可视化:



从这个图中,我们可以看到每届前5名获奖的国家。


我们接下来想知道历届所有国家的获奖总体情况。我们进行如下的操作:



这样我们就得到了前十名的获奖的国家。从这个图中我们可以看出来,USA 到截止2016年为止,获奖数占15.95%。是获奖牌最多的国家。


找出所有的冬季奥运会项目


我们现在回到我在上一篇文章中的问题。我们先找出来所有的冬季奥运会的项目,并找出来参赛人数最多的项目。我们使用如下的方法:



在上面,我们选择之前保存的 olympic_winter 数据集:



这样我们就得到了所有的冬季奥运会的所有项目的名称。我们可以看到 Cross Country Skiing 是参赛人数最多的项目。

 

中国,美国,俄罗斯,日本及德国奖牌数


我们接下来想比较一下在最近三届冬季奥运会(2006,2010,2014)中国,美国,俄罗斯,日本及德国的获奖总体情况。我们使用 Lens 来完成。和之前的一样,在 Dashboard 中选择 Create visualization:


在上面,我输入如下的 KQL:


year: "2006"  and not medal:"None" and (NOC: CHN or NOC :GER or NOC :RUS or NOC :USA or NOC :JPN)


按照同样的方法,我们分别添加 2010 及 2014 年的过滤器。同时记得把显示模式设置为

Bar vertical:



我们接下来配置 Y 轴:



这样,我们就创建了针对我们感兴趣的5个国家2006年,2010年,2014年的所有情况。

 

找出我们感兴趣的5项运动的比较


我们想找出来感兴趣的5项运动,美国,日本,德国,俄罗斯及中国的情况。和上面的方法类似,只是我们在 filter 中添加我们需要的条件:



我们可以通过 Clone panel 来复制之前的可视化,这样更容易达到目的:



这次,我们选择 Edit lens。这一次,我们在 filter 中输入如下的条件:


year: "2006"  and not medal:"None" and (NOC : CHN or NOC :GER or NOC :RUS or NOC :USA or NOC :JPN) and (sports : "Cross Country" or  "Skiing" or "Ice Hockey" or "Speed Skating"  or Biathlon)


我们分别针对 2010 及 2014 年分别进行修改。同时我们选择展示的模式为 Bar vertical stacked:



这样我们就得到了冬季奥运会我们感兴趣的几个国家的几个比赛项目的比较。

 

最近三届获奖金牌前10名的国家


这也是到了我最关心的话题:金牌榜。我们想得到2006,2010,2014年冬季奥运会的金牌榜。把排在前十位的国家罗列出来。还记得我们之前使用  enrich processor 把国家的名称也添加到最终的 region 字段吗?在这里,我将使用 table 来进行展示。我们也会使用  region 来描述。很多人对 NOC 的名称还是不很熟悉。


在 Dashboard 中,我们点击 Create visualziation:



我们创建如下的 filter:


year:"2014" and medal:"Gold" 


同时我们选择显示模式为 table。如法炮制,我们创建 2010 及 2014 过滤器:



在上面,我们看到了各个国家的金牌数。就像我之前说的那样,在上面的表格中,我们使用了 RUS,NOR,这些缩写可能对于很多的读者并不熟悉。我们可以使用 region 来进行描述:



我们接下来把举办城市也添加到这个表格中:



这样我们就形成了我们希望的一个表格。在上面的表格中,我们修改表格的 header:



点击上面的 Save & return:



这样我们就得到了2006,2010,2014年的金牌排行榜。


至此,我们完成了如下的一个 Dashboard:



希望大家在整个的练习中学到了知识。更多有关 Kibana 的可视化教程,请参阅:





相关实践学习
利用Elasticsearch实现地理位置查询
本实验将分别介绍如何使用Elasticsearch7.10版本进行全文检索、多语言检索和地理位置查询三个Elasticsearch基础检索子场景的实现。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
存储 安全 数据可视化
《Elastic Stack 实战手册》——三、产品能力(下)
《Elastic Stack 实战手册》——三、产品能力(下)
121 0
|
数据采集 数据可视化 搜索推荐
《Elastic Stack 实战手册》——三、产品能力(上)
《Elastic Stack 实战手册》——三、产品能力(上)
128 0
|
数据挖掘 定位技术
带你读《Elastic Stack 实战手册》之80:——4.2.6.运用Elastic Stack分析COVID-19数据(3)
带你读《Elastic Stack 实战手册》之80:——4.2.6.运用Elastic Stack分析COVID-19数据(3)
106 0
|
弹性计算 文件存储 索引
带你读《Elastic Stack 实战手册》之80:——4.2.6.运用Elastic Stack分析COVID-19数据(2)
带你读《Elastic Stack 实战手册》之80:——4.2.6.运用Elastic Stack分析COVID-19数据(2)
|
存储 机器学习/深度学习 缓存
APM-Elastic Stack 实战手册
应用程序性能管理(Application Performance Management)简称 APM。主要功能为监视和管理软件应用程序性能和可用性。
2538 0
APM-Elastic Stack 实战手册
|
存储 安全 JavaScript
【Elastic Engineering】添加免费且开放的 Elastic APM 作为 Elastic 可观测性部署的一部分
什么是 APM? 利用应用程序性能监测,您可以查看应用程序将时间花在哪些地方、在执行哪些操作、在调用哪些其他应用程序或服务,以及遇到了哪些错误或异常情况。
1410 0
【Elastic Engineering】添加免费且开放的 Elastic APM 作为 Elastic 可观测性部署的一部分
|
数据可视化 索引
【Elastic Engineering】使用 Elastic Stack 来分析奥运数据(三)
在我们的数据中,虽然我们没有经纬度数据,但是我们发现有一个叫做 NOC 的字段。它代表运动员来自那个国家。在我之前的文章 “Kibana:通过 Elastic Maps 中的全局行政区层为 IP 分析带来新见解”,我展示了如何使用行政区来展示数据。针对我们的奥运情况,我们可以展示一下奥运运动员分别在哪些国家。
178 0
【Elastic Engineering】使用 Elastic Stack 来分析奥运数据(三)
|
数据可视化 API 索引
【Elastic Engineering】使用 Elastic Stack 来分析奥运数据(一)
最近冬奥会在中国北京顺利举行。这是一件举国高兴的事。在历届都有许多的奥运数据,我们是否可以使用 Elastic Stack 来分析这些数据,并为我国的体育事业提供一些洞察呢?
248 0
【Elastic Engineering】使用 Elastic Stack 来分析奥运数据(一)
|
Ubuntu 数据可视化 Linux
【Elastic Engineering】Elastic:使用 Elastic Stack 来监督系统日志及指标
在我之前的许多文章中,我基本上都已经讲到了这些方面的内容。在今天的文章中,我想针对一些开发还没有自己的系统,比如 centos 或 Ubuntu OS 来写一篇非常详细的文章。
430 0
【Elastic Engineering】Elastic:使用 Elastic Stack 来监督系统日志及指标
|
Ubuntu 数据可视化 数据挖掘
【Elastic Engineering】Elastic:使用 Elastic Stack 来监督 Apache 日志及指标
在我之前的许多文章中,我基本上都已经讲到了这些方面的内容。在今天的文章中,我想针对一些开发还没有自己的系统,比如 centos 或 Ubuntu OS 来写一篇非常详细的文章
353 0
【Elastic Engineering】Elastic:使用 Elastic Stack 来监督 Apache 日志及指标

热门文章

最新文章