3.14-Elasticsearch聚合分析簡介

什么是聚合(Aggregation)

  • ElasticSearch除搜索以外,提供針對ES數(shù)據(jù)進行分析的功能

    • 實時性高

    • Hadoop (T+1)

  • 通過聚合,我們會得到一個數(shù)據(jù)的概覽, 是分析和總結(jié)全套的數(shù)據(jù),而不是尋找單個文檔

  • 高性能,只需要一條語句,就可以從ElasticSearch得到分析結(jié)果

    • 無需在客戶端自己去實現(xiàn)分析邏輯

Kibana可視化報表 - 聚合分析

image.png
  • 公司程序員的工作崗位分布

  • 公司采用的編程框架分布

  • 公司員工薪水分布

  • 客戶的地理位置分布

  • 訂單的增長情況

  • 等等...

集合的分類

  • Bucket Aggregation - 一些列滿足特定條件的文檔的集合

  • Metric Aggregation - 一些數(shù)學運算,可以對文檔字段進行統(tǒng)計分析

  • Pipeline Aggregation - 對其他的聚合結(jié)果進行二次聚合

  • Matrix Aggregation - 支持對多個字段的操作并提供一個結(jié)果矩陣

Bucket & Metric

image.png

Bucket

image.png
  • 一些例子

    • 杭州屬于浙江 / 一個演員屬于男性或女性

    • 嵌套關(guān)系 - 杭州屬于浙江屬于中國屬于亞洲

  • ElasticSearch提供了很多類型的Bucket,幫助你用多種方式劃分文檔

    • Term&Range (時間/年齡區(qū)間/地理)

Metric

  • Metric會基于數(shù)據(jù)計算結(jié)果,除了支持在字段上進行計算,同樣也支持在腳本(painless script)產(chǎn)生的結(jié)果之上進行計算

  • 大多數(shù)Metric是數(shù)學計算,僅輸出一個值

    • min/max/sum/avg/cardinality
  • 部分metric支持輸出多個數(shù)值

    • stats/precentiles/percentile_rank

一個Bucket的例子

查看航班目的地的統(tǒng)計信息


image.png

加入Metrics

查看航班上的地的統(tǒng)計信息,增加均價,最高最低價格


image.png

嵌套

查看航班上的地的統(tǒng)計信息,平均票價,以及天氣狀況


image.png

課程Demo

  • 需要通過Kibana導入Sample Data的飛機航班數(shù)據(jù)。具體參考“2.2節(jié)-Kibana的安裝與界面快速瀏覽”
#按照目的地進行分桶統(tǒng)計
GET kibana_sample_data_flights/_search
{
    "size": 0,
    "aggs":{
        "flight_dest":{
            "terms":{
                "field":"DestCountry"
            }
        }
    }
}



#查看航班目的地的統(tǒng)計信息,增加平均,最高最低價格
GET kibana_sample_data_flights/_search
{
    "size": 0,
    "aggs":{
        "flight_dest":{
            "terms":{
                "field":"DestCountry"
            },
            "aggs":{
                "avg_price":{
                    "avg":{
                        "field":"AvgTicketPrice"
                    }
                },
                "max_price":{
                    "max":{
                        "field":"AvgTicketPrice"
                    }
                },
                "min_price":{
                    "min":{
                        "field":"AvgTicketPrice"
                    }
                }
            }
        }
    }
}



#價格統(tǒng)計信息+天氣信息
GET kibana_sample_data_flights/_search
{
    "size": 0,
    "aggs":{
        "flight_dest":{
            "terms":{
                "field":"DestCountry"
            },
            "aggs":{
                "stats_price":{
                    "stats":{
                        "field":"AvgTicketPrice"
                    }
                },
                "wather":{
                  "terms": {
                    "field": "DestWeather",
                    "size": 5
                  }
                }

            }
        }
    }
}

相關(guān)閱讀

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容