มีกรณีการใช้งานอะไรบ้างสำหรับการใช้ Elasticsearch กับแบบสอบถาม sql มาตรฐาน [ปิด]


125

ฉันเพิ่งเริ่มใช้งาน Elasticsearch และหนึ่งในกรณีการใช้งานหลักที่ฉันเคยเห็นคือความสามารถในการปรับขนาดด้วยการค้นหาชุดข้อมูลขนาดใหญ่ แต่นอกจากนี้เมื่อใดที่คุณต้องการใช้กับการสร้างแบบสอบถาม sql ด้วย RDBMS แบบเดิม


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

เข้าใจ เจตนาที่ถูกต้องไม่ใช่แค่การประหารชีวิต
James Drinkard

คำตอบ:


78

มีสองกรณีการใช้งาน Elasticsearch หลัก:

  1. ค้นหาข้อความ

คุณต้องการ Elasticsearch เมื่อคุณทำการค้นหาข้อความจำนวนมากโดยที่ฐานข้อมูล RDBMS แบบเดิมทำงานได้ไม่ดีนัก (การกำหนดค่าไม่ดีทำหน้าที่เป็นกล่องดำประสิทธิภาพต่ำ) Elasticsearch สามารถปรับแต่งได้สูงและขยายได้ผ่านปลั๊กอิน คุณสามารถสร้างการค้นหาที่มีประสิทธิภาพโดยไม่ต้องมีความรู้มากอย่างรวดเร็ว

  1. การบันทึกและการวิเคราะห์

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

โปรดทราบว่าคุณไม่ต้องการใช้ Elasticsearch เป็นที่จัดเก็บข้อมูลหลักของคุณ เหตุผลที่นี่: ElasticSearch มีความน่าเชื่อถือเพียงใดในฐานะที่เก็บข้อมูลหลักเมื่อเทียบกับปัจจัยต่างๆเช่นการสูญเสียการเขียนความพร้อมใช้งานของข้อมูล

ปรับปรุง

ฉันรู้สึกเหมือนว่าส่วนที่สองไม่ได้หงุดหงิดอีกต่อไปแล้วมันเป็นสิ่งที่ Elastic ในฐานะ บริษัท ทำผลงานได้ดีมากในปีที่ผ่านมา ด้วยการเคลื่อนไหวของ DevOps ในปัจจุบันไปป์ไลน์ CI / CD จำนวนเมตริกที่เพิ่มขึ้นจากแหล่งต่างๆ ELK จึงกลายเป็นตัวเลือกที่ไม่เหมาะสมสำหรับการตรวจสอบโครงสร้างพื้นฐานจึงไม่ได้เป็นเพียงเครื่องมือค้นหาข้อความแบบกระจายอีกต่อไป มีชุดผลิตภัณฑ์ที่น่าทึ่ง:

  • Logstash (อินพุตข้อมูลจำนวนมาก)
  • เต้น
    • Filebeat
    • Metricbeat
    • Packetbeat
    • Winlogbeat
  • Kibana
    • กราฟ
    • Timelion
  • X-Pack (พรีเมียม)
    • การแจ้งเตือน
    • รายงาน
    • ความปลอดภัย
    • การเรียนรู้ของเครื่อง
    • เมตริกศูนย์ข้อมูลข้าม

ระบบนิเวศที่สร้างโดยชุมชนกำลังเติบโตขึ้นรอบ ๆ ELK stack ที่ขยายคุณสมบัติในปัจจุบันซึ่งมีเพียงไม่กี่อย่างที่ควรค่าแก่การกล่าวถึง:

  • ElastAlert
  • ค้นหายาม

เหตุใดการ จำกัด Elastic Search จึงไม่ถูกใช้เป็นเครื่องมือค้นหาสำหรับระบบมาตรฐานเช่น pos หรือ erp เนื่องจากฉันไม่เข้าใจว่า บริษัท ต่างๆมีการใช้พลังงานจำนวนมากเพียงแค่เปลี่ยนข้อมูลจาก sql ไปเป็นการค้นหาแบบยืดหยุ่นสำหรับการวิเคราะห์
pannu

ในเวอร์ชันเก่าไม่แนะนำตอนนี้ฉันไม่รู้
Evaldas Buinauskas

คุณบอกว่าเนื่องจากการกำหนดค่าที่ไม่ดี RDBMS จึงทำงานได้ไม่ดีนัก หมายความว่าด้วยการกำหนดค่าที่ดีคุณสามารถใช้งานได้เช่นเดียวกับ EleasticSearch ในส่วนของการค้นหาข้อความ (การค้นหาแบบคลุมเครือ)?
ตำนาน

2
@ ตำนานฉันหมายถึงตัวเลือกการกำหนดค่าที่ไม่ดีจริงๆ ประสบการณ์ของฉันเองถูก จำกัด ไว้ที่ MSSQL Full Text Search และจำนวนการตั้งค่าใน MSSQL ไม่สามารถเทียบกับ Elasticsearch ได้ การค้นหาข้อความใน RDBMS เป็นคุณลักษณะในขณะที่ใน Elasticsearch เป็นสิ่งสำคัญ
Evaldas Buinauskas

ฉันค้นหาข้อมูลมากมายในเว็บ แต่ไม่พบอะไรที่เป็นรูปธรรม แอปพลิเคชันควรมีข้อมูลจำนวนเท่าใด (เพียงประมาณ) เพื่อให้เราคิดเกี่ยวกับการย้ายไปยัง ElasticSerach เนื่องจากการดูแลระบบแบบกระจายมีความซับซ้อน ตัวอย่างเช่นการค้นหาในข้อความแสดงความคิดเห็นที่จัดทำดัชนีอย่างดีใน mongodb (ฉันไม่ได้พูดถึงคุณสมบัติขั้นสูงของ ES การค้นหาข้อความล้วน ๆ )
IvánSánchez

27

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

ฉันเชื่อว่าโพสต์นี้ได้สรุปการเปลี่ยนแปลงในตลาดที่ผลักดันกรณีการใช้งานใหม่สำหรับ Big Data สิ่งที่คุณต้องรู้เกี่ยวกับฐานข้อมูลโอเพนซอร์ส

ด้วยการถือกำเนิดของ Web 2.0 หน้าเว็บแบบคงที่กลายเป็นแบบไดนามิกและโซเชียลมีเดียอยู่รอบตัวเรา ทุกคนทวีตโพสต์บล็อกวิดีโอบล็อกแชร์รูปภาพแชทและแสดงความคิดเห็น Internet of Things (IoT) กำลังเกิดขึ้นซึ่งเป็นเครือข่ายอุปกรณ์เชื่อมต่อที่เติบโตอย่างรวดเร็วซึ่งรวบรวมและแลกเปลี่ยนข้อมูลเช่นเซ็นเซอร์และอุปกรณ์อัจฉริยะ มีตัวอย่างดีๆอยู่ที่นี่

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

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

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

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

ต่อไปนี้เป็นแหล่งข้อมูลเพิ่มเติมที่เจาะลึกหัวข้อนี้:

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