แสดงบทความที่มีป้ายกำกับ OLAP แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ OLAP แสดงบทความทั้งหมด

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

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

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