es通常被用來(lái)存放各種日志數(shù)據(jù),然后做統(tǒng)計(jì)举娩。
對(duì)于請(qǐng)求量大的系統(tǒng)來(lái)說(shuō)析校,日志數(shù)據(jù)無(wú)比龐大,需要按日期來(lái)劃分索引晓铆,便于做冷熱數(shù)據(jù)的遷移管理勺良。
假設(shè),日志數(shù)據(jù)按每日來(lái)分索引存儲(chǔ)骄噪,索引名字格式:
log-action-2022-09-13
查詢(xún)時(shí)尚困,使用別名log-action
代碼語(yǔ)言:go
- 程序啟動(dòng)時(shí),初始化索引链蕊,自動(dòng)創(chuàng)建今天和明天的索引
func createIfNotExist(day time.Time) {
indexName := day.Format("log-action-2006-01-02")
.....
}
- 啟動(dòng)定時(shí)腳本事甜,每24小時(shí)執(zhí)行一次,檢查并創(chuàng)建下一天的索引
import (
"github.com/robfig/cron"
)
...
c := cron.New()
c.AddFunc("* * */24 * * *", func() { es.InitIndex() })
c.Run()