เศษและแบบจำลองใน Elasticsearch


303

ฉันพยายามที่จะเข้าใจว่าชิ้นส่วนที่ลอกเลียนแบบนั้นอยู่ใน Elasticsearch แต่ฉันไม่สามารถเข้าใจได้ หากฉันดาวน์โหลด Elasticsearch และเรียกใช้สคริปต์จากสิ่งที่ฉันรู้ว่าฉันได้เริ่มต้นคลัสเตอร์ด้วยโหนดเดียว ตอนนี้โหนดนี้ (พีซีของฉัน) มี 5 shards (?) และบาง replicas (?)

พวกเขาคืออะไรฉันมีดัชนี 5 รายการซ้ำกันหรือไม่ ถ้าเป็นเช่นนั้นทำไม ฉันต้องการคำอธิบายบางอย่าง


1
ดูที่นี่: stackoverflow.com/questions/12409438/…
javanna

แต่คำถามก็ยังไม่ได้รับคำตอบ
LuckyLuke

ฉันคิดว่าคำตอบที่คุณได้รับและคำตอบที่เชื่อมโยงข้างต้นควรชี้แจงสิ่งต่าง ๆ ถ้าอย่างนั้นยังไม่ชัดเจนอะไร
javanna

ฉันไม่เข้าใจสิ่งที่เป็นเศษและแบบจำลอง ฉันไม่เข้าใจว่าทำไมมีเศษและแบบจำลองจำนวนมากบนโหนดเดียว
LuckyLuke

1
ทุกดัชนีสามารถแบ่งออกเป็นเศษเพื่อให้สามารถกระจายข้อมูล Shard เป็นส่วนอะตอมมิกของดัชนีซึ่งสามารถกระจายไปยังคลัสเตอร์ได้หากคุณเพิ่มโหนดเพิ่มเติม
javanna

คำตอบ:


966

ฉันจะพยายามอธิบายด้วยตัวอย่างจริงเนื่องจากคำตอบและคำตอบที่คุณได้รับดูเหมือนจะไม่ช่วยคุณ

เมื่อคุณดาวน์โหลด elasticsearch และเริ่มต้นขึ้นคุณจะสร้างโหนด elasticsearch ซึ่งพยายามเข้าร่วมคลัสเตอร์ที่มีอยู่หากมีหรือสร้างขึ้นใหม่ สมมติว่าคุณสร้างคลัสเตอร์ใหม่ของคุณเองด้วยโหนดเดียวโหนดที่คุณเพิ่งเริ่มต้น เราไม่มีข้อมูลดังนั้นเราต้องสร้างดัชนี

เมื่อคุณสร้างดัชนี (ดัชนีจะถูกสร้างขึ้นโดยอัตโนมัติเมื่อคุณจัดทำดัชนีเอกสารแรกเช่นกัน) คุณสามารถกำหนดได้ว่าจะประกอบไปด้วยจำนวนใด หากคุณไม่ระบุหมายเลขจะมีจำนวนเศษเริ่มต้น: 5 รายการ มันหมายความว่าอะไร?

มันหมายความว่า ElasticSearch จะสร้าง 5 เศษหลักที่จะมีข้อมูลของคุณ:

 ____    ____    ____    ____    ____
| 1  |  | 2  |  | 3  |  | 4  |  | 5  |
|____|  |____|  |____|  |____|  |____|

ทุกครั้งที่คุณทำดัชนีเอกสาร ElasticSearch จะตัดสินใจว่าเอกสารหลักที่ควรเก็บเอกสารนั้นและจะทำดัชนีที่นั่น เศษหลักไม่ใช่สำเนาของข้อมูล แต่เป็นข้อมูล! การมีหลายเศษจะช่วยให้ได้ประโยชน์จากการประมวลผลแบบขนานบนเครื่องเดียว แต่ประเด็นทั้งหมดก็คือถ้าเราเริ่มต้นการค้นหาด้วยอีลาสติกอื่นในคลัสเตอร์เดียวกันชิ้นส่วนจะถูกกระจายอย่างสม่ำเสมอ

โหนด 1 จะเก็บตัวอย่างไว้เพียงสามชิ้นเท่านั้น:

 ____    ____    ____ 
| 1  |  | 2  |  | 3  |
|____|  |____|  |____|

เนื่องจากเศษสองส่วนที่เหลือถูกย้ายไปยังโหนดเริ่มต้นใหม่:

 ____    ____
| 4  |  | 5  |
|____|  |____|

ทำไมสิ่งนี้ถึงเกิดขึ้น เนื่องจาก elasticsearch เป็นเครื่องมือค้นหาแบบกระจายและด้วยวิธีนี้คุณสามารถใช้ประโยชน์จากหลาย ๆ โหนด / เครื่องเพื่อจัดการข้อมูลจำนวนมาก

ดัชนีการค้นพบทั้งหมดของอีเล็คทรอนิคส์ประกอบด้วยอย่างน้อยหนึ่งชิ้นส่วนหลักเนื่องจากเป็นที่เก็บข้อมูล เศษทุกชิ้นมีค่าใช้จ่ายดังนั้นหากคุณมีโหนดเดียวและไม่มีการเติบโตที่คาดการณ์ได้เพียงติดกับเศษชิ้นส่วนหลักเดียว

Shard อีกประเภทหนึ่งคือแบบจำลอง ค่าเริ่มต้นคือ 1 หมายถึงทุกชิ้นส่วนหลักจะถูกคัดลอกไปยังส่วนอื่นที่จะมีข้อมูลเดียวกัน แบบจำลองถูกใช้เพื่อเพิ่มประสิทธิภาพการค้นหาและล้มเหลว แบบจำลองจะไม่ถูกจัดสรรบนโหนดเดียวกันซึ่งเป็นส่วนหลักที่เกี่ยวข้อง (มันค่อนข้างจะเหมือนกับการสำรองข้อมูลลงในดิสก์เดียวกันกับข้อมูลต้นฉบับ)

กลับไปที่ตัวอย่างของเราด้วย 1 แบบจำลองเราจะมีดัชนีทั้งหมดในแต่ละโหนดเนื่องจาก 2 ชิ้นส่วนของแบบจำลองจะได้รับการจัดสรรในโหนดแรกและพวกเขาจะมีข้อมูลเช่นเดียวกับเศษหลักในโหนดที่สอง:

 ____    ____    ____    ____    ____
| 1  |  | 2  |  | 3  |  | 4R |  | 5R |
|____|  |____|  |____|  |____|  |____|

เหมือนกันสำหรับโหนดที่สองซึ่งจะมีสำเนาของเศษหลักในโหนดแรก:

 ____    ____    ____    ____    ____
| 1R |  | 2R |  | 3R |  | 4  |  | 5  |
|____|  |____|  |____|  |____|  |____|

ด้วยการตั้งค่าเช่นนี้หากโหนดล่มคุณยังคงมีดัชนีทั้งหมด เรพลิกาเศษจะกลายเป็นอุปกรณ์อัตโนมัติและคลัสเตอร์จะทำงานอย่างถูกต้องแม้โหนดล้มเหลวดังต่อไปนี้:

 ____    ____    ____    ____    ____
| 1  |  | 2  |  | 3  |  | 4  |  | 5  |
|____|  |____|  |____|  |____|  |____|

เนื่องจากคุณมี"number_of_replicas":1แบบจำลองไม่สามารถกำหนดได้อีกต่อไปเนื่องจากไม่มีการจัดสรรบนโหนดเดียวกันกับที่เป็นแหล่งข้อมูลหลัก นั่นเป็นเหตุผลที่คุณจะมี 5 เศษยังไม่ได้มอบหมายเลียนแบบและสถานะคลัสเตอร์จะแทนYELLOW GREENไม่มีการสูญหายของข้อมูล แต่อาจดีกว่าเนื่องจากไม่สามารถกำหนดเศษบางส่วนได้

ทันทีที่โหนดที่เหลือถูกสำรองข้อมูลมันจะเข้าร่วมคลัสเตอร์อีกครั้งและแบบจำลองจะถูกกำหนดอีกครั้ง สามารถโหลดชิ้นส่วนที่มีอยู่บนโหนดที่สองได้ แต่ต้องทำการซิงโครไนซ์กับส่วนอื่นเนื่องจากการดำเนินการเขียนส่วนใหญ่เกิดขึ้นขณะที่โหนดหยุดทำงาน GREENในตอนท้ายของการดำเนินการนี้สถานะคลัสเตอร์จะกลายเป็น

หวังว่านี่จะอธิบายสิ่งต่าง ๆ ให้คุณ


57
คำอธิบายที่ยอดเยี่ยมขอบคุณที่สละเวลาเพื่อรวบรวมมัน! :)
LuckyLuke

6
นั่นคือคำอธิบายที่ดีที่สุดของแนวคิด shard / replica ขอบคุณมาก :)
Frank Förster

1
@javanna คำอธิบายที่ดีสามารถพูดคุยเล็กน้อยเกี่ยวกับหลายคลัสเตอร์และวิธีการทำงานได้อย่างไร
raffian

3
ฉันขอแนะนำให้อธิบายเพิ่มเติมว่าจะเกิดอะไรขึ้นเมื่อโหนดที่หยุดทำงานกลับมาขึ้นอีกครั้งหรือไม่
c0dem4gnetic

1
คุณสอนไหม เพราะคุณควร คุณร็อค แต่ตามที่ @Animesh Pandey ถามฉันก็อยากรู้ว่าจะเกิดอะไรขึ้นกับสองแบบจำลองหรือ 1 แบบจำลองที่มี 3 โหนด
frostymarvelous

24

ดัชนีถูกแบ่งออกเป็นเศษเพื่อแจกจ่ายและสเกล

แบบจำลองเป็นสำเนาของเศษและให้ความน่าเชื่อถือถ้าโหนดหายไป มักจะมีความสับสนในจำนวนนี้เพราะจำนวนเรพลิกา == 1 หมายถึงคลัสเตอร์จะต้องมีสำเนาหลักและสำเนาที่คัดลอกมาของเศษที่มีอยู่ในสถานะสีเขียว

เพื่อสร้างแบบจำลองคุณต้องมีอย่างน้อย 2 โหนดในคลัสเตอร์ของคุณ

คุณสามารถค้นหาคำจำกัดความที่นี่เข้าใจง่ายยิ่งขึ้น: http://www.elasticsearch.org/guide/reference/glossary/

ขอแสดงความนับถือ Paul


นี่คือสิ่งที่ทุกเอกสารพูดว่า - ดัชนีแตกออกเป็นเศษเล็กเศษน้อย แต่สิ่งที่ดัชนีมีจริงหรือไม่
Alex Pryiomka

@AlexPryiomka ดัชนีมีข้อมูล
Gaurav

ดังนั้นมันจึงเหมือนกับการจำลองแบบพาร์ติชันในโลกคาฟคา?
เบียทริ

19

ถ้าคุณไม่ชอบที่จะเห็นมันสีเหลือง คุณสามารถกำหนดจำนวนของแบบจำลองให้เป็นศูนย์:

curl -XPUT 'localhost:9200/_settings' -d '
{
    "index" : {
        "number_of_replicas" : 0
    }
}
'

โปรดทราบว่าคุณควรทำสิ่งนี้เฉพาะในกล่องการพัฒนาท้องถิ่นของคุณ


10

Shard:

  1. เป็นเซิร์ฟเวอร์การค้นหาแบบกระจายElasticSearchใช้แนวคิดที่เรียกว่า Shardแจกจ่ายเอกสารดัชนีข้ามโหนดทั้งหมด
  2. indexอาจจะสามารถจัดเก็บข้อมูลจำนวนมากที่สามารถเกินขีด จำกัด ของฮาร์ดแวร์single node
  3. ตัวอย่างเช่นดัชนีเดียวของเอกสารพันล้านฉบับที่ใช้พื้นที่ดิสก์ 1TB อาจไม่พอดีกับดิสก์ของโหนดเดียวหรืออาจช้าเกินไปที่จะตอบสนองคำขอค้นหาจากโหนดเดียวเพียงอย่างเดียว
  4. เพื่อแก้ปัญหานี้ให้ความสามารถในการแบ่งดัชนีของคุณลงในหลายชิ้นที่เรียกว่าElasticsearchshards
  5. เมื่อคุณสร้างดัชนีคุณสามารถกำหนดจำนวนshards ที่คุณต้องการ
  6. Documentsจะถูกเก็บไว้ในshardsและเศษจะถูกจัดสรรไปยังnodesในของคุณcluster
  7. ในขณะที่คุณกำลังclusterเติบโตหรือหดตัวมันElasticsearchจะย้ายเศษระหว่างกันโดยอัตโนมัติnodesเพื่อให้ส่วนที่clusterเหลืออยู่มีความสมดุล
  8. สะเก็ดอาจเป็นหรือprimary shardreplica shard
  9. แต่ละเอกสารในดัชนีของคุณเป็นของ a single primary shardดังนั้นจำนวนเศษหลักที่คุณกำหนดจำนวนข้อมูลสูงสุดที่ดัชนีของคุณสามารถเก็บได้
  10. A replica shardเป็นเพียงแค่สำเนาของเศษชิ้นส่วนหลัก

Replica:

  1. Replica shardเป็นสำเนาของprimary Shardเพื่อป้องกันการสูญหายของข้อมูลในกรณีที่ฮาร์ดแวร์ล้มเหลว
  2. Elasticsearchอนุญาตให้คุณทำสำเนาดัชนีของคุณอย่างน้อยหนึ่งสำเนาลงในสิ่งที่เรียกว่าเศษจำลองหรือreplicasสำหรับระยะสั้น
  3. indexยังสามารถจำลองศูนย์ (หมายถึงไม่มีแบบจำลอง) ครั้งหรือมากกว่า
  4. number of shardsและแบบจำลองที่สามารถกำหนดต่อดัชนีในช่วงเวลาที่ดัชนีจะถูกสร้างขึ้น
  5. หลังจากสร้างดัชนีแล้วคุณสามารถเปลี่ยนจำนวนแบบจำลองได้ตลอดเวลา แต่cannot change the number of shards หลังจากที่คุณทำตามความเป็นจริงแล้ว
  6. โดยค่าเริ่มต้นแต่ละดัชนีElasticsearchจะได้รับการจัดสรร 5 Shards หลักและ1 replicaหมายความว่าถ้าคุณมีอย่างน้อยสองโหนดในคลัสเตอร์ของคุณดัชนีของคุณจะมี 5 Shards หลักและอีก 5 แบบจำลอง (1 จำลองที่สมบูรณ์) รวม 10 Shards ต่อ ดัชนี.

6

ดัชนีถูกแบ่งออกเป็นเศษเพื่อแจกจ่ายและสเกล

แบบจำลองเป็นสำเนาของเศษ

โหนดเป็นอินสแตนซ์ที่รันอยู่ของการค้นหาแบบยืดหยุ่นซึ่งเป็นของคลัสเตอร์

คลัสเตอร์ประกอบด้วยหนึ่งโหนดขึ้นไปซึ่งแบ่งใช้ชื่อคลัสเตอร์เดียวกัน แต่ละคลัสเตอร์มีโหนดหลักเดียวซึ่งเลือกโดยอัตโนมัติโดยคลัสเตอร์และสามารถเปลี่ยนได้หากโหนดต้นแบบปัจจุบันล้มเหลว


ฉันมีสามAWS ec2อินสแตนซ์แต่ละอันมีการติดตั้งแถบค้นหา หมายความว่าเรามีสามโหนดที่นี่? หากโหนดทั้งหมดเหล่านี้มีcluster.name: testชุดคุณสมบัติเดียวกันมันจะสร้างชื่อคลัสเตอร์testซึ่งจะมีสามโหนดหรือไม่
TheCoder

5

ฉันจะอธิบายเรื่องนี้โดยใช้สถานการณ์คำจริง ลองนึกภาพคุณกำลังใช้งานเว็บไซต์อีคอมเมิร์ซ ในขณะที่คุณเป็นที่นิยมมากขึ้นผู้ขายและผลิตภัณฑ์เพิ่มในเว็บไซต์ของคุณ คุณจะตระหนักถึงจำนวนของผลิตภัณฑ์ที่คุณอาจจำเป็นต้องสร้างดัชนีและมีขนาดใหญ่เกินกว่าที่จะใส่ลงในฮาร์ดดิสก์ตัวเดียวของโหนดเดียว แม้ว่าจะเหมาะกับฮาร์ดดิสก์การค้นหาเชิงเส้นผ่านเอกสารทั้งหมดในเครื่องเดียวนั้นช้ามาก ดัชนีหนึ่งรายการบนโหนดเดียวจะไม่ใช้ประโยชน์จากการกำหนดค่าคลัสเตอร์แบบกระจายซึ่งใช้งานการค้นหายืดหยุ่น

ดังนั้น ElasticSearch จึงแยกเอกสารในดัชนีข้ามหลายโหนดในคลัสเตอร์ การแบ่งเอกสารทุกครั้งเรียกว่าเศษ แต่ละโหนดที่มีเศษเอกสารจะมีเพียงส่วนย่อยของเอกสาร สมมติว่าคุณมี 100 ผลิตภัณฑ์และ 5 ชิ้นแต่ละชิ้นจะมี 20 ผลิตภัณฑ์ การแบ่งข้อมูลนี้เป็นสิ่งที่ทำให้การค้นหาความหน่วงต่ำเป็นไปได้ในการค้นหาข้อมูล ทำการค้นหาแบบขนานบนหลายโหนด ผลลัพธ์จะถูกรวมและส่งคืน อย่างไรก็ตามเศษไม่ให้ความผิดพลาด ความหมายถ้าโหนดใด ๆ ที่มีส่วนที่แตกลงความสมบูรณ์ของคลัสเตอร์จะเป็นสีเหลือง ความหมายของข้อมูลบางอย่างไม่สามารถใช้ได้

เพื่อเพิ่มแบบจำลองความทนทานต่อความผิดปกติให้กับภาพ โดย deault elastic search สร้างแบบจำลองเดียวของแต่ละ shard แบบจำลองเหล่านี้จะถูกสร้างขึ้นเสมอบนโหนดอื่น ๆ ที่ชิ้นส่วนหลักไม่ได้อยู่ ดังนั้นเพื่อให้ระบบยอมรับความผิดพลาดคุณอาจต้องเพิ่มจำนวนโหนดในคลัสเตอร์ของคุณและขึ้นอยู่กับจำนวนเศษของดัชนีของคุณ สูตรทั่วไปในการคำนวณจำนวนโหนดที่จำเป็นต้องใช้ตามแบบจำลองและส่วนที่เป็น "จำนวนโหนด = จำนวนของเศษ * * (จำนวนของแบบจำลอง + 1)" การปฏิบัติมาตรฐานคือการมีอย่างน้อยหนึ่งแบบจำลองสำหรับความอดทนต่อความผิด

การตั้งค่าจำนวนของเศษชิ้นส่วนเป็นการดำเนินการแบบสแตติกหมายถึงคุณต้องระบุเมื่อสร้างดัชนี การเปลี่ยนแปลงใด ๆ หลังจากนั้นจะต้องมีการทำดัชนีข้อมูลอีกครั้งอย่างสมบูรณ์และใช้เวลานาน แต่การตั้งค่าจำนวนแบบจำลองเป็นการดำเนินการแบบไดนามิกและสามารถทำได้ตลอดเวลาหลังจากการสร้างดัชนีเช่นกัน

คุณสามารถตั้งค่าจำนวนเศษและแบบจำลองสำหรับดัชนีของคุณด้วยคำสั่งด้านล่าง

curl -XPUT 'localhost:9200/sampleindex?pretty' -H 'Content-Type: application/json' -d '
{
  "settings":{
    "number_of_shards":2,
    "number_of_replicas":1
  }
}'

3

ไม่ใช่คำตอบ แต่เป็นอีกการอ้างอิงสำหรับแนวคิดหลักของ ElasticSearch และฉันคิดว่าพวกเขาค่อนข้างชัดเจนว่าสอดคล้องกับคำตอบของ @ javanna

เศษ

ดัชนีอาจจัดเก็บข้อมูลจำนวนมากที่เกินขีด จำกัด ฮาร์ดแวร์ของโหนดเดียว ตัวอย่างเช่นดัชนีเดียวของเอกสารพันล้านฉบับที่ใช้พื้นที่ดิสก์ 1TB อาจไม่พอดีกับดิสก์ของโหนดเดียวหรืออาจช้าเกินไปที่จะตอบสนองคำขอค้นหาจากโหนดเดียวเพียงอย่างเดียว

เพื่อแก้ปัญหานี้ Elasticsearch ให้ความสามารถในการแบ่งดัชนีของคุณออกเป็นหลายชิ้นที่เรียกว่าเศษ เมื่อคุณสร้างดัชนีคุณสามารถกำหนดจำนวนของเศษที่คุณต้องการ แต่ละเศษอยู่ในตัวเอง "ดัชนี" ทำงานได้อย่างสมบูรณ์และเป็นอิสระที่สามารถโฮสต์บนโหนดใด ๆ ในคลัสเตอร์

การแยกชิ้นส่วนมีความสำคัญเนื่องจากเหตุผลหลักสองประการ:

  • ช่วยให้คุณสามารถแบ่ง / ปรับขนาดปริมาณเนื้อหาของคุณในแนวนอน
  • จะช่วยให้คุณแจกจ่ายและคู่ขนานการดำเนินงานในเศษ (อาจบนโหนหลาย) ดังนั้นการเพิ่มประสิทธิภาพการทำงาน / การส่งผ่าน

จำลอง

ในสภาพแวดล้อมเครือข่าย / คลาวด์ที่คาดว่าจะเกิดความล้มเหลวได้ทุกเวลามันมีประโยชน์มากและแนะนำอย่างยิ่งให้มีกลไกการเฟลโอเวอร์ในกรณีที่ส่วน / โหนดนั้นออฟไลน์หรือหายไปด้วยเหตุผลใดก็ตาม ด้วยเหตุนี้ Elasticsearch จะช่วยให้คุณทำสำเนาดัชนีของคุณอย่างน้อยหนึ่งชุดเป็นสิ่งที่เรียกว่าแบบจำลองเศษหรือแบบจำลองสั้น ๆ

การจำลองแบบมีความสำคัญด้วยเหตุผลหลักสองประการ:

  • มันมีความพร้อมใช้งานสูงในกรณีที่ shard / node ล้มเหลว ด้วยเหตุผลนี้จึงเป็นเรื่องสำคัญที่จะต้องทราบว่าการลอกแบบจำลองนั้นไม่เคยถูกจัดสรรบนโหนดเดียวกันกับชิ้นส่วนดั้งเดิม / หลักที่คัดลอกมา
  • ช่วยให้คุณสามารถขยายปริมาณการค้นหา / ปริมาณงานได้เนื่องจากสามารถทำการค้นหาในแบบจำลองทั้งหมดในแบบคู่ขนาน

1

ใน ElasticSearch ที่ระดับสูงสุดเราจะจัดทำดัชนีเอกสารเป็นดัชนี แต่ละดัชนีมีจำนวนของเศษซึ่งกระจายข้อมูลภายในและส่วนภายในมีส่วน Lucene ซึ่งเป็นหน่วยเก็บข้อมูลหลักของ ดังนั้นหากดัชนีมี 5 เศษนั่นหมายถึงข้อมูลถูกกระจายไปทั่วเศษและไม่มีข้อมูลเดียวกันอยู่ในเศษ

ระวังวิดีโอซึ่งอธิบายหลักของ ES https://www.youtube.com/watch?v=PpX7J-G2PEo

บทความเกี่ยวกับดัชนีหลายดัชนีหรือหลายชิ้นการ ค้นหาแบบยืดหยุ่นดัชนีหลายรายการเทียบกับดัชนีเดียวและประเภทสำหรับชุดข้อมูลที่แตกต่างกันอย่างไร


1

Elasticsearchสามารถปรับขนาดได้อย่างยอดเยี่ยมพร้อมเครดิตทั้งหมดไปยังสถาปัตยกรรมแบบกระจาย มันเป็นไปได้เนื่องจาก Sharding ตอนนี้ก่อนที่จะก้าวต่อไปให้เราพิจารณากรณีการใช้งานที่เรียบง่ายและใช้กันทั่วไป ให้เราสมมติว่าคุณมีดัชนีที่มีเอกสารจำนวนมากและเพื่อความง่ายให้พิจารณาว่าขนาดของดัชนีนั้นคือ 1 TB (เช่นผลรวมของขนาดของแต่ละเอกสารในดัชนีนั้นคือ 1 TB ) นอกจากนี้สมมติว่าคุณมีสองโหนดแต่ละตัวมีพื้นที่ 512 GB สำหรับจัดเก็บข้อมูล ดังที่เห็นได้อย่างชัดเจนดัชนีทั้งหมดของเราไม่สามารถเก็บไว้ในสองโหนดใด ๆ ที่มีอยู่และด้วยเหตุนี้เราจึงต้องกระจายดัชนีของเราระหว่างโหนดเหล่านี้

ในกรณีเช่นนี้ที่ขนาดของดัชนีเกินขีด จำกัด ของฮาร์ดแวร์ของโหนดเดียวshardingมาเพื่อช่วยเหลือ Sharding แก้ปัญหานี้โดยการแบ่งดัชนีออกเป็นชิ้นเล็ก ๆ และชิ้นส่วนเหล่านี้มีชื่อว่า Shards


0

ในแง่ที่ง่ายที่สุดshardคือไม่มีอะไรนอกจากเป็นส่วนหนึ่งของดัชนีที่เก็บไว้ในดิสก์ภายในโฟลเดอร์ที่แยกจากกัน:

ชิ้นส่วนยางยืด

ภาพหน้าจอนี้แสดงไดเรกทอรี Elasticsearch ทั้งหมด

อย่างที่คุณเห็นข้อมูลทั้งหมดจะเข้าสู่dataไดเรกทอรี

โดยการตรวจสอบดัชนีC-mAfLltQzuas72iMiIXNwเราจะเห็นว่ามันมีห้าเศษ (โฟลเดอร์0ไป4)

ในทางกลับกันJH_A8PgCRj-GK0GeQ0limwดัชนีมีเพียงหนึ่งชิ้น ( 0โฟลเดอร์)

ชิ้นส่วนยางยืด

จำนวนการpriดูจำนวนทั้งหมด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.