รูปแบบข้อมูลที่มักจะนำ Elasticsearch ไปใช้งานมากๆ ก็คือ

  • พวก logging ต่างๆ ของระบบ
  • ข้อมูลจาก Social media ต่างๆ
  • ข้อมูลพวก event ต่างๆ

ซึ่งข้อมูลรูปแบบนี้มักถูกนำมาใช้ในรูปแบบของช่วงเวลาเป็นหลัก
และวจึงนำข้อมูลในช่วงเวลาเหล่านั้น ไปประมวลผลหรือทำงานต่อไป
ดังนั้นมาดูว่าสามารถจัดการใน Elasticsearch ได้อย่างไร

รูปแบบการจัดการข้อมูลและ index ใน Elasticsearch มีดังนี้

1. แบบ index ที่เดียว
โดยข้อมูลจะกระจายไปยัง shard ต่างๆ และก็จะโตไปตามจำนวนข้อมูล

Screen Shot 2557-09-26 at 11.57.30 PM

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

Screen Shot 2557-09-26 at 11.59.02 PM

ดังนั้นในการนำไปใช้งานนั้นได้อย่างดี โดยสามารถเพิ่มข้อมูลเฉพาะของข้อมูลนั้นๆ เข้าไป
ตัวอย่างเช่น

  • ข้อมูลเวลา
  • ข้อมูล category
  • ข้อมูลอื่นๆ ที่ต้องการตามระบบงาน เช่น ที่อยู่ จังหวัด ชนิดของ device เป็นต้น

จะทำให้สามารถค้นหาและกรองข้อมูลตามความต้องการได้
ดังนั้น ก่อนจะนำไปใช้งานต้องทำความเข้าใจกับการใช้งานข้อมูลด้วยนะครับ
เพื่อที่จะได้แก้ไขปัญหาตามที่ต้องการ

เนื่องจาก Elasticseach มันจะทำให้เราตีลังกาคิดจาก RDBMS คือ
เราต้องคิดเพื่อแก้ไขปัญหาหนึ่งๆ ไม่ใช่ storage เพื่อเก็บข้อมูลแล้วนำไปแสดงผลนะครับ