วันเสาร์ที่ 15 กันยายน พ.ศ. 2555

วิธีจัดการ Big Data

วิธีจัดการ 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  (จัดการง่าย)




ไม่มีความคิดเห็น:

แสดงความคิดเห็น