先决条件:创建bank* 和 shakespeare* 两个 index pattern 作为数据源
1、Pie chart
使用饼形图深入了解银行帐户数据中的帐户余额。
1)Visualize --> Create new visualization --> Pie -->Choose a source,选择 bank* index pattern
最初,饼形图包含单个“切片”。 这是因为默认搜索匹配所有文档。
要指定在饼图中显示哪些切片,请使用Elasticsearch存储桶聚合。 此聚合将符合搜索条件的文档分类为不同的类别。 您将使用存储桶聚合来建立多个帐户余额范围,并找出每个范围内有多少个帐户。
2)在Buckets 面板,点击 Add > Split slices.
a.在Aggregation 下拉列表, 选择 Range
b.在Field下拉列表, 选择balance
c.单击四次Add range,以使范围总数达到六个。
d.定义下面的范围:
0 999
1000 2999
3000 6999
7000 14999
15000 30999
31000 50000
3)点击Apply changes
现在,可以看到1000个帐户中有多少比例属于每个余额范围。
4)添加另一个查看帐户持有人年龄的bucket 聚合
a.在Buckets 的底部,点击Add
b.对于sub-bucket type,选择Split slices
c.在Sub aggregation下拉列表,选择Terms
d.在Field 下拉列表,选择 age
5)点击 Apply changes
现在,可以看到帐户持有人年龄的细分,在余额范围周围以环形显示。
order by Count,是按照记录的条数来排序,而不是年龄。
可以点击Inspect来查看Elasticsearch 查询语句。 对应的聚合语句为:
"aggs": {
"2": {
"range": {
"field": "balance",
"ranges": [
{
"from": 0,
"to": 999
},
{
"from": 1000,
"to": 2999
},
{
"from": 3000,
"to": 6999
},
{
"from": 7000,
"to": 14999
},
{
"from": 15000,
"to": 30999
},
{
"from": 31000,
"to": 50000
}
],
"keyed": true
},
"aggs": {
"3": {
"terms": {
"field": "age",
"order": {
"_count": "desc"
},
"size": 5
}
}
}
}
}
6) 要保存此图表以便以后使用,请单击顶部菜单栏中的Save ,然后输入Pie Example。
2、Bar chart
使用条形图查看莎士比亚的数据集,并比较剧中口头部分的数量。
1)创建Vertical Bar chart并将搜索源设置为Index pattern shakespeare*
2) 在Y轴上显示每剧的口语部分的数量
a.在Metrics 窗格中,展开“ Y轴”。
b.设置Aggregation 为Unique Count
c.设置Field 为 speaker
d.在Custom label框中,输入Speaking Parts
3)沿X轴显示剧
a.在Buckets窗格中,点击Add > X-axis
b.设置Aggregation 为Terms
c.设置Field 为play_name
d.要按字母顺序列出剧,在Order 下拉列表,选择Ascending。
e.给该轴一个自定义标签Play Name
4)点击Apply changes
排序是按照 Y轴Speaking Parts做升序。
该visualization 对应的elasticsearch 聚合查询语句为(意思是求每个play有多少个不同的speaker,并按照speaker的数量做升序排列):
"aggs": {
"2": {
"terms": {
"field": "play_name",
"order": {
"1": "asc"
},
"size": 5
},
"aggs": {
"1": {
"cardinality": {
"field": "speaker"
}
}
}
}
},
注意各个剧的名称为什么显示为整个短语,而不是分解为单个单词。 这是您在教程开始时将play_name字段标记为不被分析时进行映射的结果。
5)使用名字Bar Example来保存该图表。