使用 Elastic Stack 来分析奥运数据

Posted Elastic 中国社区官方博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用 Elastic Stack 来分析奥运数据相关的知识,希望对你有一定的参考价值。

这是继上一篇文章 “使用 Elastic Stack 来分析奥运数据(二)” 的续篇。这是一个连续三篇文章的系列文章:

在之前的文章中,我详细地介绍了如何摄入奥运数据,并且可视化数据。在今天的练习中,我将使用 Maps 来可视化数据。

在我们的数据中,虽然我们没有经纬度数据,但是我们发现有一个叫做 NOC 的字段。它代表运动员来自那个国家。在我之前的文章 “Kibana:通过 Elastic Maps 中的全局行政区层为 IP 分析带来新见解”,我展示了如何使用行政区来展示数据。针对我们的奥运情况,我们可以展示一下奥运运动员分别在哪些国家。

参赛运动员分布

我们接上次的练习。在 Dashboard 中点击 Create visualization:

 

 

 

 

 

 从上面我们可以看出来美国的颜色比较深,显示参加比赛的人员比较多。相反,在地球的有些地方,我们看到没有运动员或者较少的运动员参加奥运会。

点击上面的 Save & return:

从上面,我们可以看出来共有18853个美国人参加奥运会。这确实是一个比较大的数据。 

金牌分别在哪些国家

有时,我们更关心这些金牌分布在哪些国家。由于 Maps 只能作用于索引上,而且它没有 filter 可以使用。那么我们该怎么办呢?一种办法是把 olympic 这个索引 reindex 成为另外一个索引,把所有金牌的文档放到另外一个索引中。

POST _reindex

  "source": 
    "index": "olympic",
    "query": 
      "match": 
        "medal": "Gold"
      
    
  ,
  "dest": 
    "index": "olympic_gold_medals"
  

在上面,我们把数据 reindex 到一个叫做 olympic_gold_medals 里去。我们需要创建一个 view data。这样做的话,如果我们的数据发生改变,我们需要每次都要这么做。

我们另外一种方法是创建一个 alias:

POST _aliases

  "actions": [
    
      "add": 
        "index": "olympic",
        "alias": "medals",
        "filter": 
          "bool": 
            "filter" : [
              
                "term": 
                  "medal": "Gold"
                
              
            ]
          
        
      
    
  ]

那么这个 alias medals 将含有所有金牌的文档,比如我们查询:

GET medals/_count

它显示:


  "count" : 13372,
  "_shards" : 
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  

这个和我们使用 Discover 查看到的金牌数是一模一样的:

我们接下来需要为这个 alias 创建一个 data view:

 

 

 

这样我们就创建了一个叫做 medals 的 data view。 

和之前一样,我们选择 Maps 来可视化数据:

 

 

 

 

 

 

从上面,我们可以看出来美国已经得了315块金牌。在世界的很多其它地方有的还没有金牌呢。 

 

 其实从地图上的数字我们就可以看到每个国家得了多少块金牌。 点击上面的 Save & return 按钮:

 好了,今天的展示就到这里。希望大家对 Elastic Maps 有更多的认识和了解。

以上是关于使用 Elastic Stack 来分析奥运数据的主要内容,如果未能解决你的问题,请参考以下文章

使用 Elastic Stack 来分析奥运数据

使用 Elastic Stack 来分析奥运数据

Elastic:使用 Elastic Stack 进行异常值检测 - airbnb 数据分析

Kibana:使用 Elastic Stack 来分析 COVID 数据

Kibana:使用 Elastic Stack 来分析 COVID 数据

Enterprise:使用 Elastic Stack 8.2 中的 Elasticsearch API 来定位 App Search 中的文档