索引概念
ES中的索引(index)定義了文檔的邏輯存儲(chǔ)和字段類型已脓,索引是一種虛擬空間乏奥,類似于數(shù)據(jù)庫中的表。一個(gè)索引可以包含不同的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù),且由一到多個(gè)分片組成媳瞪。主要相關(guān)概念如下:
索引(index): 存儲(chǔ)文檔歸類的邏輯空間,由多個(gè)分片組成句葵,相當(dāng)于數(shù)據(jù)庫中的表。
分片(shard): 相當(dāng)于Lucene中的索引文件乍丈,適當(dāng)增加分片數(shù)可以提升索引性能。
段(segment): 一個(gè)shard有多個(gè)段忆矛,一個(gè)段是Lucene中存儲(chǔ)數(shù)據(jù)最小單位请垛,一個(gè)段對(duì)應(yīng)Lucene中的一個(gè)倒排索引。
文檔(document): 一條ES記錄宗收,相當(dāng)于數(shù)據(jù)庫中的行。
副本(replicas): 也叫備份采驻。設(shè)置副本后匈勋,在索引的時(shí)候,會(huì)寫入主分片颓影,并同步到副本分片。有了副本分片可以提升檢索效率碎浇,和保障數(shù)據(jù)高可用。
創(chuàng)建方式
動(dòng)態(tài)創(chuàng)建
定義:索引不用提前創(chuàng)建奴璃,插入的第一條(批)數(shù)據(jù)后城豁,完成創(chuàng)建
場景:非業(yè)務(wù)邏輯場景,對(duì)數(shù)據(jù)結(jié)構(gòu)定義要求不高的場景
備注:使用動(dòng)態(tài)創(chuàng)建雳旅,es會(huì)根據(jù)第一條數(shù)據(jù)來對(duì)字段進(jìn)行動(dòng)態(tài)結(jié)構(gòu)映射间聊,如果對(duì)字段數(shù)據(jù)結(jié)構(gòu)要求較高的,需要提前定義好類型哎榴。動(dòng)態(tài)創(chuàng)建僵蛛,索引的分片數(shù)默認(rèn)為1(7.x)迎变,副本數(shù)為1
舉例:
靜態(tài)創(chuàng)建
定義:提前創(chuàng)建好索引,可以指定索引的分片數(shù)衣形,副本數(shù),字段數(shù)據(jù)結(jié)構(gòu)等信息泪电。
場景:業(yè)務(wù)系統(tǒng)數(shù)據(jù)需要嚴(yán)格定義好結(jié)構(gòu)纪铺,海量時(shí)序性索引可以提前創(chuàng)建索引,避免集中寫入創(chuàng)建鲜锚,影響集群性能
備注:靜態(tài)創(chuàng)建沒有動(dòng)態(tài)創(chuàng)建靈活,但是可以做很多限制和參數(shù)調(diào)整芜繁,適用性高。通常會(huì)根據(jù)常用的時(shí)序性索引創(chuàng)建template蔬捷,輔助創(chuàng)建索引。
舉例:
注:索引一旦創(chuàng)建周拐,無論以什么方式創(chuàng)建凰兑,都無法更改已經(jīng)生成的數(shù)據(jù)結(jié)構(gòu)mapping。
元數(shù)據(jù)
_index: 代表當(dāng)前的索引名(唯一標(biāo)識(shí)索引的數(shù)據(jù))
_type:代表數(shù)據(jù)的type類型吏够,7.x后默認(rèn)_doc
_id: 索引字段的唯一id锅知,可以自定義播急,但是不能重復(fù)
_version:文檔的版本號(hào)喉镰,如果進(jìn)行更新等操作,會(huì)增加版本數(shù)
_seqno:嚴(yán)格遞增的順序號(hào)生真。保證后寫入的Doc的seqno比之前的大捺宗。
_primary_term: 代表主分片上數(shù)據(jù)重新分配的次數(shù)。比如重啟節(jié)點(diǎn)蚜厉,重新分配都會(huì)觸發(fā)這個(gè)參數(shù)累加。
_routing: 路由規(guī)則术瓮,寫入和查詢要保證路由是一致贰健。
設(shè)計(jì)規(guī)范
分片數(shù)量
索引分片數(shù)量不超過節(jié)點(diǎn)數(shù)量
1個(gè)索引40個(gè)分片等同于40個(gè)1分片索引
副本數(shù)量
索引副本數(shù)量少于節(jié)點(diǎn)數(shù)量
副本數(shù)量取決于集群節(jié)點(diǎn)數(shù),最少一個(gè)(保證高可用)
分片容量
數(shù)據(jù)容量
單個(gè)分片數(shù)據(jù)量 不要超過50GB辜伟,推薦在20-40GB中
數(shù)據(jù)條數(shù)
單分片限制最大條數(shù)不超過2^32 - 1