從ES6.6開始,Elasticsearch提供索引生命周期管理功能,索引生命周期管理可以通過API或者kibana界面配置,詳情參考[index-lifecycle-management]
本文僅通過kibana界面演示如何使用索引生命周期管理結合冷熱分離架構實現索引數據的動態管理。
kibana中的索引生命周期管理位置如下圖(版本6.8.2):

點擊創建create policy,進入配置界面,可以看到索引的生命周期被分為:Hot phrase,Warm phase, Cold phase,Delete phrase四個階段
- Hot phrase: 該階段可以根據索引的文檔數,大小,時長決定是否調用rollover API來滾動索引,詳情可以參考[indices-rollover-index],因與本文關系不大不再詳細贅述。
- Warm phrase: 當一個索引在Hot phrase被roll over后便會進入Warm phrase,進入該階段的索引會被設置為read-only, 用戶可以為這個索引設置要使用的attribute, 如對於冷熱分離策略,這里可以選擇temperature: warm屬性。另外還可以對索引進行forceMerge, shrink等操作,這兩個操作具體可以參考官方文檔。

- Cold phrase: 可以設置當索引rollover一段時間后進入cold階段,這個階段也可以設置一個屬性。從冷熱分離架構可以看出冷熱屬性是具備擴展性的,不僅可以指定hot, warm, 也可以擴展增加hot, warm, cold, freeze等多個冷熱屬性。如果想使用三層的冷熱分離的話這里可以指定為temperature: cold, 此處還支持對索引的freeze操作,詳情參考官方文檔。
- Delete phrase: 可以設置索引rollover一段時間后進入delete階段,進入該階段的索引會自動被刪除。

冷熱分離架構是Elasticsearch的經典架構之一,使用該架構用戶可以在保證熱數據良好讀寫性能的同時,仍可以存儲海量的數據,極大地豐富了ES的應用場景,解決了用戶的成本問題。
再結合ES在6.6推出的索引生命周期管理,使得ES集群在使用性和自動化方面表現出色,真正地解決了用戶在性能,存儲成本,自動化數據管理等方面的問題。
