ข้ามไปที่เนื้อหาหลัก

บทความ

Kev AI Decision Model

โพสต์ล่าสุด

Elasticsearch คืออะไร? ระบบค้นหาและวิเคราะห์ข้อมูลสำหรับยุค Data และ AI

ภาพจาก https://images.contentstack.io Elasticsearch คืออะไร Elasticsearch คือระบบค้นหาและวิเคราะห์ข้อมูลแบบกระจายศูนย์ หรือ Distributed Search and Analytics Engine ที่ออกแบบมาเพื่อจัดการข้อมูลจำนวนมากและค้นหาข้อมูลได้อย่างรวดเร็ว โดยเฉพาะข้อมูลประเภทข้อความ เอกสาร Log Event และข้อมูลที่อยู่ในรูปแบบ JSON Elasticsearch พัฒนาบนพื้นฐานของ Apache Lucene ซึ่งเป็น Search Library ที่มีประสิทธิภาพสูง ทำให้ Elasticsearch สามารถรองรับการค้นหาแบบ Full-text Search การค้นหาแบบ Fuzzy Search การกรองข้อมูล การวิเคราะห์ข้อมูลด้วย Aggregation รวมถึงความสามารถด้าน Vector Search และ Hybrid Search ที่สามารถนำไปใช้กับระบบ AI และ RAG ได้ ในช่วงแรก Elasticsearch ได้รับความนิยมอย่างมากจากงานด้าน Log Analytics และระบบค้นหาข้อมูล แต่ปัจจุบันถูกนำไปใช้กว้างขึ้นในระบบ Enterprise Search, Observability, Data Platform, Knowledge Base, AI Search และ Retrieval-Augmented Generation Elasticsearch เป็นระบบที่ออกแบบมาเพื่อให้สามารถจัดเก็บข้อมูลในรูปแบบ Document และค้นหาข้อมูลเหล่านั้นได้อย่างรวดเร็ว ข้อมูลใน Elasticsear...

สถาปัตยกรรมภายใน Apache Spark โครงสร้างภายในและการทำงานของ Distributed Data Processing

ในยุคที่ข้อมูลกลายเป็นทรัพยากรสำคัญขององค์กรต่างๆ ดังนั้นการประมวลผลข้อมูลจึงไม่ได้จำกัดอยู่เพียงการจัดเก็บและเรียกดูข้อมูลจากฐานข้อมูลเพียงอย่างเดียวอีกต่อไป จึงจำเป็นต้องปรับระบบให้เข้ากับระบบสมัยใหม่ที่ต้องสามารถรับข้อมูลจำนวนมหาศาลจากหลายๆ แหล่ง ระบบต้องมีนำข้อมูลเหล่านั้นมาประมวลผลอย่างเป็นกระบวนการและเป็นระบบ เพื่อนำข้อมูลไปวิเคราะห์ ปรับเปลี่ยนข้อมูลให้กลายเป็นสารสนเทศที่พร้อมใช้งานตลอดเวลาได้อย่างรวดเร็ว แนวคิดดังกล่าวนี้ ทำให้เกิดเทคโนโลยีสำหรับการประมวลผลข้อมูบแบบกระจาย Distributed Data Processing กล่าวคือ มีหลายเครื่องมาช่วยในการประมวลผลข้อมูลเหล่านี้ ดังนั้น ระบบประมวลผลแบบกระจายจึงเข้ามามีบทบาทสำคัญ ในยุคปัจจุบัน และหนึ่งในเทคโนโลยีที่ได้รับการใช้งานอย่างแพร่หลายคือ Apache Spark ที่ช่วยแก้ปัญหาระบบประมวลแบบกระจาย มีรายละเอียดังนี้ Apache Spark เป็นระบบประมวลผลข้อมูลแบบกระจายที่ออกแบบมาเพื่อทำงานกับข้อมูลขนาดใหญ่ โดยสามารถกระจายการประมวลผลไปยังคอมพิวเตอร์หลายเครื่องใน Cluster และสามารถทำงานได้ทั้ง Batch Processing, SQL, Streaming และ Machine Learning ในช่วงหลายปีที่ผ่านมา S...

คำถามการวิจัย “ทำอย่างไรให้ Cluster Computing ประมวลผลข้อมูลชุดเดิมซ้ำ ๆ ได้เร็ว โดยไม่ต้องอ่านข้อมูลจาก Disk ใหม่ทุกครั้ง และยังทนต่อเครื่องที่ล้มได้?” ของ Apacha Spark

งานวิจัยเริ่มต้นที่ UC Berkeley และแกนปัญหาคือ “ทำอย่างไรให้ Cluster Computing ประมวลผลข้อมูลชุดเดิมซ้ำ ๆ ได้เร็ว โดยไม่ต้องอ่านข้อมูลจาก Disk ใหม่ทุกครั้ง และยังทนต่อเครื่องที่ล้มได้?” งานสำคัญเริ่มต้นคือ “Spark: Cluster Computing with Working Sets” โดย Matei Zaharia, Mosharaf Chowdhury, Michael Franklin, Scott Shenker และ Ion Stoica ตีพิมพ์ในปี 2010 และมี technical report ของ Berkeley ลงวันที่ 7 พฤษภาคม 2010 1. ปัญหาที่นักวิจัยเห็น ยุคนั้น MapReduce/Hadoop เป็นแนวทางสำคัญสำหรับ Big Data โดยเฉพาะ Machine Learning ที่ต้องใช้ Dataset เดิมหลายรอบ เช่น ถ้าทุก iteration ต้องอ่านข้อมูลจาก Disk ใหม่ จะเกิด overhead สูง งานวิจัย Spark จึงตั้งโจทย์ว่า ทำอย่างไรให้ Working Set อยู่ใน Memory และนำกลับมาใช้ซ้ำได้ 2. นวัตกรรมสำคัญคือ RDD นักวิจัยไม่ได้เริ่มจากคำว่า DataFrame หรือ Spark SQL แต่ละ Partition สามารถถูกเก็บใน Memory และนำกลับมาใช้ซ้ำได้ 3. แล้วถ้า Memory หายล่ะ? นี่คือจุดที่งานวิจัย ฉลาดมาก แทนที่จะ replicate ทุกข้อมูลเหมือนระบบ Distributed Storage บางประเภท Spark ใช้แนวคิด Lineage ...

Docker Swarm คืออะไร? จาก Container สู่ระบบ Distributed Application

เมื่อพูดถึง Docker คนส่วนใหญ่มักนึกถึงการสร้างและรัน Container แต่เมื่อระบบเริ่มใหญ่ขึ้น การมี Container เพียงไม่กี่ตัวบนเครื่องเดียวอาจไม่เพียงพอ ลองจินตนาการว่าระบบหนึ่งมีทั้ง Web Application, API, Database, Redis, Kafka, Worker และ AI Service และแต่ละ Service ต้องทำงานบนหลายเครื่องเพื่อรองรับผู้ใช้งานจำนวนมาก คำถามคือ ใครจะเป็นคนจัดการ Container เหล่านี้? นี่คือจุดที่แนวคิด Container Orchestration เข้ามามีบทบาท และหนึ่งในเครื่องมือที่มากับ Ecosystem ของ Docker ก็คือ Docker Swarm Docker Swarm คืออะไร? Docker Swarm คือระบบ Container Orchestration ของ Docker ที่ใช้สำหรับรวม Docker Host หลายเครื่องเข้าด้วยกันเป็น Cluster และบริหาร Container หรือ Service เหล่านั้นจากศูนย์กลาง แทนที่จะคิดว่า Server 1  └── Container Server 2  └── Container Server 3  └── Container เราสามารถมองเป็น               Docker Swarm Cluster                        │       ...