ข้อมูลถูกรวบรวมเป็นจำนวนมหาศาลทุกวัน และการจัดการข้อมูลขนาดใหญ่เป็นกรณีการใช้งานที่สำคัญที่สุดของเครื่องมือ Elasticsearch ข้อมูลจะถูกจัดเก็บไว้ในฐานข้อมูลการวิเคราะห์ตามเวลาจริง และผู้ใช้สามารถดึงข้อมูลเพื่อค้นหาความรู้ที่เป็นประโยชน์โดยใช้แบบสอบถาม ผู้ใช้สามารถใช้การสืบค้นเพื่อค้นหาข้อมูลจากหลายดัชนีและแสดงในบัคเก็ตเดียวจากฐานข้อมูลเชิงสัมพันธ์
คู่มือนี้จะอธิบายการรวมของ Elasticsearch พร้อมตัวอย่างโดยใช้การรวมแบบต่างๆ
Elasticsearch Aggregation คืออะไร?
ใน Elasticsearch การรวมเป็นกระบวนการของการรวมหรือจัดกลุ่มฟิลด์เพื่อดึงข้อมูลจากฐานข้อมูลเชิงสัมพันธ์ การรวมใน Elasticsearch ถือได้ว่าเป็น จัดกลุ่มตามข้อ หรือ รวม() ฟังก์ชันในภาษา SQL
วิธีการใช้การรวม Elasticsearch?
ในการใช้การรวมใน Elasticsearch ผู้ใช้จำเป็นต้องมีความเข้าใจพื้นฐานเกี่ยวกับฐานข้อมูลของตน ให้เราสำรวจไวยากรณ์และการนำไปใช้จริง:
ไวยากรณ์
ในการค้นหาข้อมูลจากฐานข้อมูล ไวยากรณ์ของการรวมในโปรแกรม Elasticsearch มีดังนี้:
'อากส์' : {'name_of_aggregation' : {
'type_of_aggregation' : {
'สนาม' : 'document_field_name'
}
ตัวอย่างข้างต้น:
-
- มันใช้ ' อ๊ากกก ” คำหลักที่อธิบายการใช้การรวมในแบบสอบถาม
- เดอะ name_of_aggregation ถูกกำหนดโดยผู้ใช้ตามข้อมูลที่จำเป็น
- หลังจากนั้นผ type_of_aggregation ใช้ในการรับข้อมูล
- บรรทัดสุดท้ายใช้ สนาม คำหลักที่ตามด้วยชื่อแอตทริบิวต์จากเอกสาร
ตัวอย่างที่ 1: การรวมในข้อมูลตัวอย่าง Kibana
ส่วนนี้อธิบายการรวมด้วยความช่วยเหลือของตัวอย่างโดยใช้ข้อมูลตัวอย่างจาก Kibana โดยเชื่อมต่อก่อน หลังจากนั้น เพียงเข้าไปข้างใน “ เครื่องมือสำหรับนักพัฒนา ” โดยค้นหาจากแถบค้นหาแล้วคลิก:
ดึงข้อมูลจากข้อมูลตัวอย่าง
เพียงใช้คำสั่งต่อไปนี้เพื่อดึงข้อมูลจาก ' kibana_sample_data_logs ” ดัชนีบนคอนโซล Dev Tools:
รับ / kibana_sample_data_logs / _ค้นหา
ผลลัพธ์แสดงว่าดึงข้อมูลจาก “ kibana_sample_data_logs ” ดัชนี
รหัสต่อไปนี้ใช้ a รับ ขอได้ที่ “ kibana_sample_data_log ” เพื่อค้นหาโดยใช้การรวมค่า_countบนแท็บ “ ลูกค้า ' สนาม:
รับ / kibana_sample_data_logs / _ค้นหา{ 'ขนาด' : 0 ,
'อากส์' : {
'ip_count' : {
'value_count' : {
'สนาม' : 'ไคลเอนต์'
}
}
}
}
ภาพหน้าจอด้านบนแสดงการรวมบน ลูกค้า ฟิลด์ที่มีค่า 14074 .
การรวมตัวที่สำคัญ
การรวมที่สำคัญบางส่วนที่ใช้ในการค้นหาข้อมูลอย่างมีประสิทธิภาพจากฐานข้อมูลมีการระบุไว้ด้านล่าง:
ตัวอย่างต่อไปนี้อธิบายการรวมที่กล่าวถึงข้างต้นโดยใช้ รับ คำขอจาก “ kibana_sample_data_ecommerce ” ดัชนี:
การรวมคาร์ดินัลลิตี้
รหัสต่อไปนี้ใช้ ' ความสำคัญ ” การรวมตัวบน “ สกุ ” จากข้อมูลอีคอมเมิร์ซ การรันโค้ดนี้จะได้รับการรวมค่าเดียวเพื่อรับ SKU เฉพาะจากฐานข้อมูล Elasticsearch:
รับ / kibana_sample_data_ecommerce / _ค้นหา{
'ขนาด' : 0 ,
'อากส์' : {
'unique_skus' : {
'คาร์ดินัลลิตี้' : {
'สนาม' : 'สกุ'
}
}
}
}
มันแสดงให้เห็น ความสำคัญ การรวมการหา 7186 ค่า จากดัชนี
การรวมสถิติ
การรวมตัวที่สำคัญอีกประการหนึ่งคือ “ สถิติ ” การรวมซึ่งใช้เพื่อให้ได้ “ นับ ”, “ นาที ”, “ สูงสุด ”, “ เฉลี่ย ', และ ' ผลรวม ” สถิติจาก “ ปริมาณทั้งหมด ' สนาม:
รับ / kibana_sample_data_ecommerce / _ค้นหา{
'ขนาด' : 0 ,
'อากส์' : {
'quantity_stats' : {
'สถิติ' : {
'สนาม' : 'ปริมาณทั้งหมด'
}
}
}
}
ภาพหน้าจอด้านบนแสดงสถิติในผลลัพธ์จาก ' ปริมาณทั้งหมด ' สนาม.
การรวมตัวกรอง
การรวมตัวกรองใช้เพื่อกรองข้อมูลตามคำหรือวลีจากฐานข้อมูลตามที่มีรหัสต่อไปนี้:
รับ / kibana_sample_data_ecommerce / _ค้นหา{ 'ขนาด' : 0 ,
'อากส์' : {
'filter_aggregation' : {
'กรอง' : {
'ภาคเรียน' : {
'ผู้ใช้' : 'เอ็ดดี้' } } ,
'อากส์' : {
'ราคา_เฉลี่ย' : {
'เฉลี่ย' : {
'สนาม' : 'สินค้า.ราคา' } }
} } } }
การดำเนินการของรหัสจะกรองข้อมูลตาม “ เอ็ดดี้ ” user และแสดงราคาเฉลี่ยของสินค้าที่ซื้อ ภาพหน้าจอด้านบนแสดงให้เห็นว่า ผู้ใช้ ได้พบ 100 ครั้งจากข้อมูลและการ ค่า ของ เฉลี่ย _ ราคา การรวมตัว
การรวมระยะ
การรวมคำสร้างบัคเก็ตและจัดเก็บข้อมูลจากฟิลด์ในบัคเก็ต และรหัสต่อไปนี้ใช้ ' ผู้ใช้ ” เพื่อเก็บข้อมูลในบัคเก็ต:
รับ / kibana_sample_data_ecommerce / _ค้นหา{
'ขนาด' : 0 ,
'อากส์' : {
'Term_Agregation' : {
'เงื่อนไข' : {
'สนาม' : 'ผู้ใช้'
}
}
}
}
ภาพหน้าจอต่อไปนี้แสดงว่าการรวมคำศัพท์ได้สร้างที่เก็บข้อมูลสำหรับผู้ใช้แต่ละรายและจำนวนเอกสารของพวกเขา
นั่นคือทั้งหมดที่เกี่ยวกับการรวมของ Elasticsearch และการรวมที่สำคัญต่างๆ
บทสรุป
ใน Elasticsearch การรวมจะใช้เพื่อรับข้อมูลจากเอกสารรวม และเอกสารเหล่านี้จะถูกแยกออกจากฟิลด์เฉพาะ มีการอธิบายการรวมที่สำคัญบางอย่างที่ใช้เพื่อรับข้อมูลเชิงลึกที่เป็นประโยชน์จากดัชนี คู่มือนี้ได้อธิบายการรวมของ Elasticsearch และสาธิตกระบวนการใช้การรวมของ Elasticsearch