OLAP มักจะมี UI ให้ในหลายๆรูปแบบ บางรูปแบบก็จะมี client เฉพาะของตัวเอง บางแบบก็จะมี plug-in ไปโยนลง excel ก็มีแล้วใช้ plug-in เป็นตัวเชื่อมต่อ อีกแบบหนึ่งก็คือทำ UI เป็นเว็บไปเลย แบบเว็บนี้ค่อนข้างเป็นที่นิยมSQL OLAP เป็นเครื่องมืออันหนึ่งที่จะทำให้เราเข้าไปดึงข้อมูลจาก data warehouses ได้เร็ว
บางคนอาจจะใช้ SQL OLAP ในการ generate report เองก็ได้ ทำให้การเขียนโปรแกรมทำได้ง่าในงานที่ซับซ้อนมากขึ้น ซึ่งสามารถอ่านเพิ่มเติมเกี่ยวกับวิธีใช้ SQL OLAP functions ได้ ที่นี่
จะว่าไปแล้ว OLAP มันก็ไม่ได้เกี่ยวอะไรกับ database มากนัก เพียงแต่ว่ามันเกิดมาคู่กับเครื่องมือ data warehouses ทำให้ส่วนใหญ่มันต้องรวมเข้ากับวิชา database ไปด้วย แต่ feature ส่วนใหญ่ของมันก็ไม่ใช่ความสามารถที่ถนัด เพราะว่า DBMS จะถนัดในเรื่องของการจัดการข้อมูลที่มีจำนวนมากๆ หรือ security เป็นต้น แต่ OLAP ไม่ได้เน้นตรงนั้น แต่จะไปเน้นในเรื่องของการวิเคราะห์ข้อมูล การแสดงข้อมูลเป็นกราฟ เป็นตาราง (เช่น ตารางแบบ cross pad) เป็นต้น ซึ่งบ่อยครั้งเราจะเห็น UI ของ OLAP คล้ายๆกับโปรแกรมพวก spreadsheet เลย
หน้าที่หลักๆของ OLAP คือสามารถดึงข้อมูลมาแสดงในมิติต่างๆได้ สามารถแสดงผลบนหน้าจอเป็นรูปแบบต่างๆได้ สามารถมองข้อมูลในรูปแบบทางสถิติต่างๆเช่น หา min, max, นับจำนวน และดูในแง่ของการจัดลำดับก็ได้ เป็นต้น
.
Common OLAP Features
feature ที่เห็นโดยทั่วๆไปของทุกๆตัวเลยก็คือ ช่วยให้เราสามารถดูข้อมูลได้ในหลายๆมิติ เช่นดูยอดขายตามประเภท ตามลูกค้าแต่ละคน เป็นต้น นอกจากนี้แล้วในแต่ละ dimension เรายังสามารถดูในระดับชั้นการสรุปที่ต่างๆกันเช่น ถ้าเรามองในแง่ของยอดขาย เราก็อาจจะมองเป็นรายตัว รายกลุ่ม ถ้าแง่ของลูกค้า ก็ดูเป็นรายคน รายอำเภอ จังหวัด หรือเชิงเวลาก็อาจจะเป็นรายวัน รายเดือน รายปี เป็นต้น อีกทั้งยังสามารถดูได้ในลักษณะของ interactive กับระบบได้เลย ซึ่งเป็นที่มาของตัว O (โอ) ที่มาจากคำว่า online
.
OLAP Architectures
แบ่งเป็นทั้งหมด 4 แบบด้วยกัน ได้แก่
1. Multi-Dimensional OLAP (MOLAP)
ปกติข้อมูลที่อยู่ใน MOLAP จะ เป็นข้อมูลที่ถูกดึงมาจาก data warehouse โดยในกรณีที่เราสร้างโครงสร้าง และสร้าง data cube ขึ้นมาแล้ว เวลาเราต้องการที่จะใช้งานมัน เราก็จะสั่งให้มันโหลดข้อมูลจาก warehouse เข้ามา แล้วข้อมูลก็จะถูกเก็บไว้ใน data cube จากนั้น client หรือ user ก็จะสามารถ วิเคราะห์ข้อมูลได้ เวลาที่ user จะวิเคราะห์นั้น user จะ interaction กับ MOLAP ตรงๆเลย โดยไม่ได้ไปยุ่งกับ data warehouse (มันจะเกี่ยวเฉพาะตอนโหลดข้อมูลมาตอนแรก)
ถ้าหากว่า 1 เดือนต่อไป user อยากจะวิเคราะห์ใหม่ user ก็จะสั่งให้ MOLAP ไปดึงข้อมูลมาจาก data warehouses ใหม่ แล้วค่อยวิเคราะห์ ทำให้ข้อมูลที่ MOLAP นั้นจะไม่อยู่ถาวร โดยจะอยู่ชั่วคราวเท่านั้น นี่คือธรรมชาติของ MOLAP Server
OLAP อื่นๆก็มักจะมี UI ให้ในหลายๆรูปแบบ บางรูปแบบก็จะมี client เฉพาะของตัวเอง หรือบางแบบก็จะมี plug-in ไปโยนลงโปรแกรมประยุกต์ เช่น MS Office Excel ที่มี plug-in เป็นตัวเชื่อมต่อ หรืออีกแบบหนึ่งก็คือทำ UI เป็นเว็บไปเลย ซึ่งแบบเว็บนี้ค่อนข้างเป็นที่นิยม
ข้อสำคัญของ MOLAP อย่างหนึ่งก็คือ ข้อมูลจะเก็บในโครงสร้างข้อมูลแบบ Matrix และเก็บข้อมูลไว้ที่ Server แต่การจัดการกับ Matrix คือมันจะจัดการกับข้อมูลจำนวนมากๆได้ (คล้ายๆกับ array 2 มิติ) มีความสามารถจัดการกับ sparse matrix (array ที่มีค่าเฉพาะบางช่อง) ได้เป็นอย่างดี
ส่วนใหญ่แล้ว บริษัท Software ที่ขายพวก MOLAP จะเป็น บริษัท Software เกี่ยวกับสถิติ โดยพวกบริษัทที่ทำ database product จะไม่ค่อยถนัดทางด้านนี้เท่าไรนัก (ไม่ค่อยเห็นทำออกมาขาย)
.
2. Relational OLAP (ROLAP)
ลักษณะก็จะคล้ายๆกับ MOLAP แต่จะต่างกันตรงที่ว่า ROLAP (R ย่อมาจาก Relational) หมายความว่าข้อมูลที่เก็บมันไม่ได้ถูกเก็บอยู่ในรูปของ Multi Dimensional Array แต่จะเก็บในรูปแบบของ relational table และมันก็ไม่ได้เก็บข้อมูลอยู่ใน Relational OLAP Server ด้วย เพราะตัว Server จะจำแต่โครงสร้าง ส่วนตัวข้อมูลนั้นจริงๆจะยังอยู่ใน Warehouse ซึ่งเมื่อไหร่ก็ตามที่ user ต้องการจะค้นหาข้อมูล ตัว Server ก็จะไปดึงข้อมูลจาก warehouses แล้วก็ค่อยตอบกลับ user ไป
ข้อดีก็คือ มันไม่ต้องห่วงเรื่องปริมาณข้อมูลที่มันต้องจัดการ เพราะว่ามันไม่ได้เก็บข้อมูลเยอะมากแค่ไหนก็รับไหว เพราะมันไมไ่ด้รับอะไรอยู่แล้ว
ข้อเสียคือ เวลาจะทำอะไรก็ต้องกลับไปหาที่ data source ซึ่ง software ที่เป็น ROLAP ส่วนใหญ่แล้วมักจะเป็น software จำพวก database product ที่จะทำแบบนี้ เพราะ db product มันถนัดแบบนี้อยู่แล้ว เวลาเค้าทำโปรแกรมออกมาก็ไม่ได้มีอะไรเท่าไหร่ แค่เป็นโปรแกรมมิ่ง interface ครอบไว้อีกชั้นหนึ่งก็เท่านั้นเอง ซึ่งโครงสร้างข้อมูลก็เก็บเป็น relational database และการประมวลผลก็จะช้ากว่าแบบแรก
อย่างไรก็ตามทั้ง MOLAP และ ROLAP นั้น ปัจจุบันแล้ว หลายๆ Product ก็สามารถทำได้ทั้ง 2 แบบในตัวเดียว แล้วแต่ว่าเราจะเลือก
.
3. Hybrid OLAP Architecture
เป็นการเอา 2 แบบแรก (ทั้ง MOLAP และ ROLAP) มาผสมกัน โดยการเก็บบางส่วน และประมวลผลเองบางส่วน
เก็บส่วนไหน? ปกติแล้วข้อมูลที่จะเก็บ ก็คือข้อมูลส่วนที่เป็น summary ส่วนใน warehouse ก็อาจจะเก็บข้อมูลแบบรายวัน เช่นถ้าเราเก็บ summary ของรายเดือนไว้ เวลา user ถามรายวันมันก็จะไปค้นจาก warehouses ส่วนถ้าถามรายเดือนก็อาจจะเอาคำตอบมาให้ได้เลยทันที
ข้อดีคือ ถ้าเก็บแต่ผลสรุป มันก็ไม่ต้องเก็บเยอะ ใช้ที่น้อย
ข้อเสียคือ ถ้าเค้าถามรายละเอียดมากๆเข้า มันก็ไม่มีตอบ ทำให้ยังไงก็ต้องไปค้นหาใน warehouse อยู่ดี
.
4. Desktop OLAP Architecture
เป็นการดึง cube จาก server มาเก็บไว้ที่ client เลย จากนั้นก็วิเคราะห์ด้วย desktop เอง ทำให้ไม่ต้องดึงข้อมูลส่งไปมาในลักษณะเดียวกับแบบต่างๆที่ได้กล่าวไป ทำให้ดูเหมือนว่าน่าจะทำงานได้เร็ว แต่ถ้าข้อมูลเยอะๆก็ต้องช้าอยู่ดี เพราะว่า desktop ไม่มีพลังมากพอสำหรับข้อมูลขนาดเยอะๆ
.
ที่มาของภาพประกอบ: เอกสารประกอบการบรรยายวิชา Database Technology โดย Kriengkrai Porkaew, Asst.Prof., Ph.D.
Related Link from Roti
เนื้อหาข้อมูล ดีมากๆ ค่ะ เด็กจุฬา
ReplyDeleteเนื้อหาเยี่ยมมากคะ อ่านและเข้าใจง่าย ครอบคลุม สามารถมองเห็นภาพได้ชัดเจน และนำไปประยุกต์ใช้กับการวิเคราะห์ระบบได้จริงๆ
ReplyDeleteขอบคุณมากคะ
Lady DBA