วิธีจัดการ Big Data
ที่เราเรียนกันทั่วไป เราจะปล่อยให้เป็นภาระของ DBMS
เช่น SQL Server, DB2, Oracle จะต้องจัดเก็บ (คล้ายกับการจัดเก็บใน Windows)
อันนี้ไม่ได้หมายถึง Data Warehouse น๊ะครับ
เมื่อข้อมูลที่เกิดขึ้นมีขนาดใหญ่แบบสุดขั้ว (Big Data)
วิธีแบบที่เราใช้กันทั่วไป เริ่มไม่เหมาะแล้ว
SQL ข้อมูล 10 K rows, 1 M, 100 M, 1G จะ "เร็ว" "ช้า" ไม่เท่ากัน
ผู้ใช้อยากได้ ผลลัพธ์ในระดับ น้อยกว่า 3 วินาที
ด้วยวิธีปัจจุบัน ข้อมูลมาก อาจจะใช้เวลามากถึง 10 นาที
วิธีแก้ปัญหา แรกๆ คือ สร้าง Index
(ถ้า มักจะค้นหาด้วย field = ID ก็สร้าง Index ด้วย field = ID SQL ก็)
แต่เมื่อข้อมูลมีขนาดมากขึ้น Index บน Single Table เริ่มทำงานได้ "ช้า"
ขณะเดียวกัน ได้เกิดวิธี OLAP (หรือ Cube,BI)
เพื่อแก้ปัญหาข้อมูลขององค์กรที่มีขนาดใหญ่ หลักการคล้ายๆกัน
โดยการสร้าง Index ให้ครอบคลุมเป้าหมาย (ที่กำหนดไว้) ทั้งหมด
น่าตกใจ ผลจากการสร้าง OLAP ทำให้เกิดข้อมูล "ขนาดใหญ่" กว่าข้อมูลพื้นฐาน 10-100 เท่า
แต่เมื่อเรียกใช้งาน ใช้เวลาเร็วกว่ามาก
วิธีนี้ ผุ้ใช้งานมักจะต้องซื้อส่วนนี้เพิ่มขึ้นมา และมีราคาแพง ทำให้จำกัดผุ้ใช้งานในวงแคบ
จนกระทั่ง MS SQL Server ได้แถมฟรีมาให้ใช้กัน : )
วิธีถัดไป คือ การแบ่ง Single Table เป็นหลาย Partition หรือ หลาย Table
คิดง่ายๆ การค้นหาข้อมูล 1 Table = 10M rows กับแบ่งเป็น 3 Partition (4M,4M,2M)
การค้นหา ในพื้นที่ก็ต้องเร็วกว่า แต่ถ้า DBMS ไม่เก่งพอ ก็เรียกใช้งานลำบาก
ที่ผ่านมาข้างต้น ก็ยังไม่รองรับข้อมูลปริมาณมาก
เช่น Google, Yahoo, FaceBook, ...
ทำไม Google จึงค้นหาข้อมูล 100,000 rows
จากหลายเครื่องฯ จากหลายสถานที่ทั่วโลก ในเวลาไม่เกิน 2 วินาที
Q: ทำงานได้อย่างไร ?
A: ตอบแบบ ง่าย คือใช้วิธีคล้าย Partition แต่รวมระบบจัดการเข้าไปด้วย
วิธีล่าสุดเรียก HADOOP (อ่านว่า ฮา-ดูป)
OpenSource = Apache HADOOP
ใครสนใจรายละเอียด ลองค้นดูคำนี้ครับ
เพื่อให้การจัดการ สอดคล้องกัน ควรจะรู้เทคโนโลยีใหม่ด้วยครับ เช่น
- เทคโนโลยี Clound ทำให้ ลดขั้นตอนที่ยุ่งยากด้านการจัดการ H/W, OS, DBMS
- ถ้าให้เข้าใจง่าย อาจจะดูอ้างอิงจาก MS (น่าจะเข้าใจง่ายขึ้น)
- MS ให้บริการ Clound 2 ระดับ
* Infra (มีเครื่องให้ แต่ติดตั้ง OS, Sw, App เอง)
* Platform (มีเครื่อง, OS ให้ ติดตั้ง Sw,App เอง)
* [Service] เช่น การใช้ FaceBook, Yahoo
- มี Win Azure เพื่อใช้บริหาร Clound
- MS SQL 2012 มีฟังก์ชั่นรองรับ HADOOP (จัดการง่าย)