วันศุกร์ที่ 26 กุมภาพันธ์ พ.ศ. 2553

Magic Quadrant

สมัยต่อผมเรียนปริญญาโท ในหลายๆเนื้อหาวิชานั้น ถ้าไม่อ้างอิงจากตำราหรือบทความวิชาการ ก็อ้างอิงจากบริษัททำวิจัยใหญ่ๆ ระดับโลกอย่างเช่น Gartner เป็นต้น

โดยสิ่งที่ผมชอบในงานวิจัยของ Gartner อย่างหนึ่งคือ Magic Quadrant ซึ่งเป็นการออกแบบการจัดลำดับสิ่งต่างๆ ของ Gartner ซึ่งผมว่ามันเชื่อถือได้ และ เห็นPosition หรือ ตำแหน่งสิ่งที่เราอยากอย่างชัดเจน แถมยังเห็นภาพคู่แข่งด้วย เพื่อไว้เปลี่ยนใจหันมาใช้ Application ตัวอื่นๆ แทน

ลองดูครับ ถ้านำไปไว้ในรายงานจะทำให้รายงานเราดูดีมีชาติตระกูลขึ้นเยอะครับ

Data model ในการออกแบบ Cube

การออกแบบ Cube นั้น ต้องใช้ Data model ซึ่ง Data model คือสิ่งที่ใช้ในทำให้ทราบถึงการออกแบบ ซึ่งมีหลายประเภทเช่น Data model ของ Relational Database หรือ ระบบต่างๆ ซึ่งแต่ละ Data model นั้น ก็จะมีเอกลักษณ์แต่ละตัวต่างกันออกไป ในส่วนระบบ Data Warehouse ที่มี Cube ไว้ ทำ OLAP นั้นก็มี Data Modeling ที่ใช้เพื่อในการออกแบบ Cube เฉพาะแบบของมัน โดยส่วนใหญ่ก่อนจะลง Cube จริง จะทำการออกแบบไว้ใน Data model นี้ก่อน ที่เรียกกันว่า Star schema ซึ่งเป็นแบบพื้นฐานที่สุด ของ Data Model ของ Cube

โดยหลัก ๆ การออกแบบ Data Modelของ Cube นั้นมี อยู่ 3 แบบ

Star schema นั้นเป็น Data Modeling ของ Cube นั้นเอง ที่มีรูปแบบเรียบง่ายไม่ซับซ้อน โดยมี Fact Table อยู่ตรงกลางหนึ่งตาราง และในตาราง ก็มีค่า 2 แบบ คือ Key กับ Measure และถูกเชื่อมโยงด้วย Dimension รอบข้างตามตัว Key ที่บรรจุไว้ใน Fact table โดยเก็บค่า Charatic หรือตัวอักษรไว้อธิบายความหมาย

Snowflake schema
โดยพื้นฐานต่าง ๆ เหมือนกับ Star schema คือ มี Fact table อยู่ตรงกลางและมี Dimension Tableล้อมรอบ แต่ต่างกันที่ ส่วน Dimension Table นั้น จะมีการเชื่อมโยงไปหา Dimension Table อื่นๆ ที่ต้องการข้อมูลเพื่อเติมจากใน Fact table

Galaxy schema
เป็น Data model ที่ซับซ้อนที่สุด เนื่องจากมี Fact table มากกว่า 1 ตัวขึ้น และสามารถใช้ Dimensions table ร่วมกันได้ และอาจมี Dimensions Table ที่แยกจากกัน

เพื่อใช้สร้าง Cube ให้นำไปทำ OLAP ได้อย่างมีประสิทธิภาพ การออกแบบ Data Model ให้ดีก่อนนั้นเป็นสิ่งสำคัญ เพื่อให้เราสามารถได้รายงานออกมาตามความต้องการของผู้ใช้จริง

องค์ประกอบของ Cube

Data modeling ของ Cube นั้น ประกอบด้วย 2 ส่วนคือ Fact Table กับ Dimension Table, Fact table

โดย Fact table คือ ตารางตั้งต้นของ dimensional modelหรือ Cube โดยจะบรรจุค่าที่ใช้วัดหรือตัววัดค่าเช่น ประสิทธิภาพของธุรกิจจากการทำธุรกิจ โดยจะเก็บข้อมูลไว้ 2 ประเภทได้แก่
1. ค่าตัวเลข ไว้เพื่อแสดงผลของค่า Dimension ต่างๆ ที่ดึงมา
2. ค่า Keys เพื่อใช้โยงไปหา Dimension Table ต่างๆ ตามที่มี Key ไว้ใน Fact table บ้างก็เรียก Key เหล่านี้ว่า Foreign key หรือ Surrogate key โดยใช้ key ดังกล่าวทำหน้าที่ ใน เชื่อมโยงไปหา Dimension Table ที่ได้ใช้ในการอธิบาย

The relational database table that contains values for one or more measures at the lowest level of detail for one or more dimensions (16, SQL.Server.2005.Analysis.Services.Step.By.Step)

Dimension Table

Dimension คือ ตารางที่ใช้อธิบายความหมายของค่าต่างๆ ของ Fact table โดยเชื่อมผ่าน Key จาก Fact Table นั้นเอง
A list of labels that can be used to cross-tabulate values from other dimensions (16, SQL.Server.2005.Analysis.Services.Step.By.Step)

Cube คือ

Cube หรือ OLAP Cube คือโครงสร้างข้อมูล (Data structure) รูปแบบหนึ่งเพื่อให้วิเคราะห์ข้อมูลได้เร็วขึ้น ซึ่งใช้กับ OLAP โดยส่วนใหญ่

ในการทำ OLAP นั้น ได้ใช้ Cube เป็นพื้นฐานในการวิเคราะห์ข้อมูลเป็นหลายมิติ หรือ dimensions นั้นเอง โดยส่วนใหญ่ Cube จะถูกสร้างในส่วนของ Data warehouse นั้นเอง เช่น SSAS ของ SQL Server หรือใน Business Information Warehouse ของ SAP นั้นเอง และถ้าระบบ Business intelligence นั้น จะนำ Cube ที่สร้างไปเป็นข้อมูลในการสร้างรายงานต่างๆ

โดยสามารถนำ Cube มาทำเป็น Array 2 มิติ เพื่อนำเสนอข้อมูลในมิติต่างๆได้

ในคำนิยามของ ที่ได้มีคนให้ไว้กับ Cube เช่น

Cube นั้นใช้อธิบายความสัมพันธ์ต่างๆ ผ่าน Fact table กับ Dimension Table
cube to describe what in the relational world would be the integration of the fact table with dimension tables. (18, SQL.Server.2005.Analysis.Services.Step.By.Step)

Cube เป็น กลุ่มของ กลุ่มตัววัดที่ตั้งแต่หนึ่งขึ้นไปโดยมีความสัมพันธ์กับ มิติ
A collection of one or more related measure groups and their associated dimensions (29, SQL.Server.2005.Analysis.Services.Step.By.Step)

ซึ่งเราสามารถลองเล่น Cube ได้จาก Tool ต่างๆนะครับ เช่น BW, SSAS, Essbase เป็นต้น

ความหมายของ OLAP

ในการเริ่มทำงาน OLAP เป็นคำที่พบต้องพบเจอบ่อยมากในการทำงาน ซึ่งหนังสือที่เกี่ยวกข้องกับ BI DSS Data warehouse จะบรรยายถึงคำว่า OLAP ซึ่งมันมาคู่กับ OLTP ซึ่งในบทความนี้เรามาสนใจเฉพาะ OLAP ก่อนแล้วกัน

ก่อนอื่นชื่อเต็ม ของ OLAP คือ online analytical processing เป็นรูปแบบการวิเคราะห์ข้อมูลที่นำมาใช้ในระบบ Data warehouse หรือ Business Intelligence โดยความหมายที่อื่นๆได้กล่าวไว้ดังนี้

ในวิกีพีเดียไทย Online Analytical Processing (OLAP) คือการใช้คำค้น (query) เพื่อค้นหาข้อมูลในคลังข้อมูลเหมือนในฐานข้อมูล เหตุผลที่เราไม่ค้นในฐานข้อมูล แต่มาทำในคลังข้อมูลแทนมีสองสาเหตุคือ
ความเร็ว
ความครอบคลุมของข้อมูลทั้งบริษัทที่มีอยู่ในคลังข้อมูล
http://th.wikipedia.org/wiki/%E0%B8%84%E0%B8%A5%E0%B8%B1%E0%B8%87%E0%B8%82%E0%B9%89%E0%B8%AD%E0%B8%A1%E0%B8%B9%E0%B8%A5

เดียวคิดว่าจะหาข้อมูลมาเพิ่มอีกนะครับ

วันอังคารที่ 9 กุมภาพันธ์ พ.ศ. 2553

คำนิยามของคลังข้อมูล (Definition of Data warehouse)

คลังข้อมูลหรือ Data warehouse นั้นเป็นระบบที่ใช้เก็บ รวม และจัดเรียงรูปแบบ ข้อมูลให้อยู่ในที่เดียวกัน โดยมีความสำคัญต่อการนำข้อมูลที่มีอยู่ในระบบองค์กรสักแห่งที่มีระบบ OLPT หลายระบบ มาทำให้ข้อมูลนั้นเป็นรูปแบบเดียวกัน อยู่ที่เดียวกัน โดยคำนิยามที่ผมหามาได้จากหลายๆที่ ได้กล่าวถึง Data warehouse ไว้ดังนี้

คลังข้อมูล เป็นระบบที่เก็บและรวมข้อมูลแต่ละช่วงเวลาจากระบบข้อมูลโดนใส่มิติ(dimensional)หรือที่เก็บข้อมูลที่ normalized
“A data warehouse is a system that retrieves and consolidates data periodically from the source systems into a dimensional or normalized data store” (Building a Data Warehouse: With Examples in SQL Server, Rainardi,1,2008)

คลังข้อมูลคือระบบที่ มีการแบ่งโครงสร้างตามเนื้อหา การรวมข้อมูล ไม่มีการเปลี่ยนแปลงของข้อมูล และ มีความสัมพันธ์กับเวลา โดยถูกเก็บไว้เป็นข้อมูลที่ใช้สนับสนุนการตัดสินใจของผู้บริหาร
“A data warehouse is a subject-oriented, integrated, nonvolatile, and time-variant collection of data in support of management’s decisions.” (Building the Data Warehouse, Inmon,29,2005)

คลังข้อมูลคือ กลุ่มกระบวนการและข้อมูลที่มีจุดประสงค์เพื่อรองรับการวิเคราะร์และการตัดสินใจทางธุรกิจ
“A data warehouse (DW) is the collection of processes and data whose overarching purpose is to support the business with its analysis and decision-making”.( A Manager’s Guide to Data Warehousing, Reeves,4,2009)

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