Elasticsearch Aggregation คืออะไร?

Elasticsearch Aggregation Khux Xari



ข้อมูลถูกรวบรวมเป็นจำนวนมหาศาลทุกวัน และการจัดการข้อมูลขนาดใหญ่เป็นกรณีการใช้งานที่สำคัญที่สุดของเครื่องมือ 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