使用 Elastic Stack 来分析奥运数据(三)

2022年2月24日   |   by mebius

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

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

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

参赛运动员分布

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

%title插图%num

%title插图%num

%title插图%num

%title插图%num

%title插图%num

%title插图%num

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

点击上面的 Save & return:

%title插图%num

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

金牌分别在哪些国家

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

POST _reindex
{
  "source": {
    "index": "olympic",
    "query": {
      "match": {
        "medal": "Gold"
      }
    }tgcode
  },
  "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" :tgcode 1,
    "skipped" : 0,
    "failed" : 0
  }
}

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

%title插图%num

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

%title插图%num

%title插图%num

%title插图%num

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

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

%title插图%num

%title插图%num

%title插图%num

%title插图%num

%title插图%num

%title插图%num

%title插图%num

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

%title插图%num

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

%title插图%num

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

文章来源于互联网:使用 Elastic Stack 来分析奥运数据(三)

相关推荐: Elasticsearch:Rank feature query

在我之前的文章: Elasticsearch:运用 distance feature 查询来增强相关性 Elasticsearch:distance feature 查询 – 对靠近位置或时间点的文档提高相关性 我运用了distance_feature来针对位…

Tags: ,