Elasticsearch:构建地图以按国家或地区比较指标

时间:2022-12-07 16:52:21

标如果你不熟悉 Elastic 地图,本教程是一个不错的起点。 它会指导你完成处理位置数据的常见步骤。在完成本教程后,你将学会:

  • 创建具有多个图层和数据源的地图
  • 使用符号、颜色和标签来设置数据值的样式
  • 在仪表板中嵌入地图
  • 在仪表板中跨仪表盘搜索

完成本教程后,你将拥有一个如下所示的地图:

Elasticsearch:构建地图以按国家或地区比较指标

在本教程的演示中,我将使用 Elastic Stac 8.5.2 来进行展示。 

准备数据

我将使用 Kibana 自带的索引例子来进行展示。我们按照如下的步骤来摄入数据:

Elasticsearch:构建地图以按国家或地区比较指标

Elasticsearch:构建地图以按国家或地区比较指标 

Elasticsearch:构建地图以按国家或地区比较指标 

Elasticsearch:构建地图以按国家或地区比较指标 

上面的操作将在 Elasticsearch 中创建一个叫做  kibana_sample_data_logs 的索引。这个索引的数据是关于网页请求的数据。它含有请求点的地理位置信息。

创建地图可视化

我们按照如下的方法来创建可视化:

Elasticsearch:构建地图以按国家或地区比较指标

Elasticsearch:构建地图以按国家或地区比较指标 

Elasticsearch:构建地图以按国家或地区比较指标 

第一个图层 - 添加等值线层

你将添加的第一层是等值线层,用于按网络日志流量对世界国家/地区进行着色。 深色代表网络日志流量较多的国家,浅色代表流量较少的国家。

Elasticsearch:构建地图以按国家或地区比较指标   Elasticsearch:构建地图以按国家或地区比较指标

Elasticsearch:构建地图以按国家或地区比较指标 

Elasticsearch:构建地图以按国家或地区比较指标 

Elasticsearch:构建地图以按国家或地区比较指标 

Elasticsearch:构建地图以按国家或地区比较指标 

这样我们就完成了第一个图层的设计。当我们点击上面图的任何部分,我们可以看到:

 Elasticsearch:构建地图以按国家或地区比较指标

上面显示的  ISO 3166-1 alpha-2 code 为 US。它含有 127 个文档。这个依赖于当前时间选择的范围。深色区域显示是请求比较多的地方,而浅色的地方则表示请求比较少的地方。它展示的是每个国家的请求的多少分布。

第二个图层 - 为单个文档添加一个图层

为避免用户一次被太多数据淹没,你将为 Elasticsearch 数据添加两层。 当用户放大地图时,第一层将显示单个文档。我们安装如下的步骤来创建。点击上图中 Add layer:

Elasticsearch:构建地图以按国家或地区比较指标

Elasticsearch:构建地图以按国家或地区比较指标 

Elasticsearch:构建地图以按国家或地区比较指标 

Elasticsearch:构建地图以按国家或地区比较指标 

如上所示,这个图层只有在地图的放大倍数为 9-24 时它才可以得到显示。在其他的 0-9 的放大倍数时,这个图层是不可见的。点击上面的 Save & close:

Elasticsearch:构建地图以按国家或地区比较指标 

当我们把放大倍数置为超过 9 以后,我们可以看到上面的文档在地图上。否则,我们是看不到这些地图数据的。 你可以调整时间范围来显示文档,如果你的地图上还没有数据的话。

第三个图层 - 为聚合数据添加一个层

你将为聚合数据创建一个图层,并使其仅在地图缩小时可见。 较深的颜色将象征具有更多网络日志流量的网格,而较浅的颜色将象征具有较少流量的网格。 较大的圆圈表示传输的总字节数较多的网格,较小的圆圈表示传输的字节数较少的网格。我们按照如下的步骤来进行,点击上面的 Add layer:

Elasticsearch:构建地图以按国家或地区比较指标

Elasticsearch:构建地图以按国家或地区比较指标 

Elasticsearch:构建地图以按国家或地区比较指标 

Elasticsearch:构建地图以按国家或地区比较指标 

Elasticsearch:构建地图以按国家或地区比较指标 

Elasticsearch:构建地图以按国家或地区比较指标 

当我们把 zoom 值调整到 0-9 的范围时,那么我们可以看到上面的图。颜色越深,则代表请求的越多。

这样我们就完成了地图的可视化。它有如上的三个图层组成。在实际的操作中,我们甚至可以调整整个图层的位置。比如,我们可以拖动下面的图标:

Elasticsearch:构建地图以按国家或地区比较指标 

在我们的练习中,我们不需要改变这个上下层的关系,所以我们可以不做。点击上面的 Save & return 按钮:

Elasticsearch:构建地图以按国家或地区比较指标

Elasticsearch:构建地图以按国家或地区比较指标 

这样就完成了我们的地图可视化图。

使用仪表盘来探索数据

查看吗的地理空间数据以及热图和饼图,然后筛选数据。 当你在一个面板中应用筛选器时,它会应用于仪表板上的所有面板。 我们按照如下的步骤来完成:

Elasticsearch:构建地图以按国家或地区比较指标

Elasticsearch:构建地图以按国家或地区比较指标 

Elasticsearch:构建地图以按国家或地区比较指标 

Elasticsearch:构建地图以按国家或地区比较指标 

这样,我们就看到如下的一个仪表盘:

Elasticsearch:构建地图以按国家或地区比较指标 

任务一:找出来 bytes 值为高的分布在哪里?

 我们使用鼠标按照如下的方法来进行选择:

Elasticsearch:构建地图以按国家或地区比较指标

Elasticsearch:构建地图以按国家或地区比较指标 

我们可以看到请求的位置发生在哪些地方。我们点击上图中的 x 符号来取消这个过滤器。

任务二:在地图上设置过滤器 

我们在地图上点击一下:

Elasticsearch:构建地图以按国家或地区比较指标

点击上面的符号:

Elasticsearch:构建地图以按国家或地区比较指标 

如上图所示,它仅显示了美国的索引数据,而其它国家的数据不见了。在上面它生成了一个过滤器。

我们可以把地图放大直到放大倍数超过 9:

Elasticsearch:构建地图以按国家或地区比较指标 

我们可以看到当放大倍数超过 9 以后,另外一个图层出现,而之前的那个 cluster 的图层就不见了。