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

Data Warehouse (2) : ส่วนประกอบของ Data Warehouse

Data Warehouse (2) : ส่วนประกอบของ Data Warehouse


ใน blog post ที่แล้วได้พูดถึง concept คร่าวๆ ของ data warehouse รวมไปถึงประโยชน์ในเชิงการใช้งานของ data warehouse ไปแล้ว ต่อมาที่จะพูดถึงก็จะเป็นส่วนประกอบของ data warehouse

ส่วนประกอบของ data warehouse


เราจะอธิบายส่วนประกอบของ data warehouse (และมันไปติดต่อกับระบบอื่นยังไง) ผ่าน diagram ที่แสดงการไหลของข้อมูลอันนี้


จากรูปจะแบ่ง layer ของระบบ (หรือฐานข้อมูล) ออกเป็นทั้งหมด 5 layer ด้วยกัน ได้แก่

1. Operational System

Operational system ก็คือระบบต่างๆ ขององค์กรนั่นเอง โดยระบบพวกนี้จะใช้ฐานข้อมูลที่อยู่ในรูปแบบที่เรียกว่า OLTP (Online Transaction Processing) กล่าวคือถูกออกแบบมาเพื่อรองรับการเขียนอ่านข้อมูลในทันที (หรือในเวลาอันสั้น) โดยจุดประสงค์หลักของฐานข้อมูลพวกนี้คือจะต้องเก็บและเรียกใช้ข้อมูล (จำนวนไม่มาก ต่อครั้ง) ได้อย่างรวดเร็ว และถูกต้องแม่นยำ ไม่สูญหาย ถ้ายกตัวอย่างจากบริษัทร้านค้า ระบบพวกนี้ก็จะเป็นประเภท POS, E-commerce หรือ Inventory (เก็บข้อมูลสินค้าคงคลังใน stock) เป็นต้น

2. Staging Layer

Staging Layer ก็เป็นชื่อเรียก layer ที่คั่นกลางระหว่าง operational system กับ data warehouse ซึ่ง staging นี้จะเป็นที่พักข้อมูลระหว่างการแปลงข้อมูลจากรูปแบบของ operational system กับ data warehouse โดยกระบวนการแปลงข้อมูลนี้เรียกว่า ETL (Extract, Transform, Load) ซึ่งกระบวนการ ETL นี้ก็จะถูกใช้ตั้งแต่ operational system ไปจนถึง data mart เลยทีเดียว โดยหลักการเบื้องต้นแบบง่ายๆ ของกระบวนการ ETL ก็คือ ดึง (extract) ข้อมูลออกมาจากระบบต้นทาง แปลงข้อมูลให้อยู๋ในรูปแบบที่ต้องการ (transform) และ write data ลงสู่ที่หมายปลายทาง (load) โดยปกติ staging layer นี้ก็จะเป็นแค่ที่พักของข้อมูลเท่านั้น ดังนั้นโดยปกติก็จะถูกลบเมื่อใช้งานเสร็จ (หรืออาจจะเก็บไว้เผื่อในกรณีที่การนำข้อมูลเข้า data warehouse ไม่สำเร็จ แต่อย่างไรก็ตามโดยปกติแล้วก็จะไม่ค่อยมีการเก็บข้อมูล historical ของ staging ไว้)

3. Data Warehouse Layer

อันนี้ก็จะเป็นส่วนที่เก็บข้อมูลของตัว data warehouse เอง

4. Data Mart Layer

Data mart เป็น subset ของ data warehouse หรือก็คือเป็น data warehouse ฉบับย่อๆ โดยจุดประสงค์ของการแยกออกมาเป็น data mart คือ ต้องการนำข้อมูลไปใช้ โดยมีจุดประสงค์เฉพาะเจาะจง เช่น จากตัวอย่างก็มีการสร้าง data mart ออกมา 3 mart คือ Customer analysis data mart เพื่อนำมาใช้ในการวิเคราะห์ข้อมูลการซื้อสินค้าของลูกค้า, Inventory analysis data mart เพื่อนำมาใช้ในการวิเคราะห์สินค้าคงคลัง (อาจจะวิเคราะห์เพื่อหาวิธีลดต้นทุน เป็นต้น) และ report data mart สำหรับนำมาใช้สร้าง report ทั้งนี้ทั้ง 3 data mart นี้เป็นเพียงตัวอย่างที่แสดงให้เห็นว่า สามารถเลือกสร้าง data mart ออกมาได้จากทั้งในเชิงของ business area (เช่น 2 mart แรก) และในเชิงของฟังก์ชั่นการใช้งาน เช่น report data mart

5. Application Layer

อันนี้จะเป็นส่วนของตัวระบบต่างๆ ที่เอาข้อมูลจาก data mart ไปใช้ ที่ยกตัวอย่างมาก็เช่น ระบบ report ซึ่งสร้าง report จากข้อมูลใน data mart ซึ่ง report นอกจากจะสร้าง report ในลักษณะที่เป็น static (นึกถึงรายงานใน Excel ปกติ ที่ดูได้อย่างเดียว ไม่สามารถทำอะไรได้) report ที่ดึงข้อมูลจาก data mart ไปก็สามารถนำไปสร้าง report แบบ dynamic ได้ (ลองนึกถึง pivot table ใน Excel ที่สามารถดูรายละเอียดย่อยลงไปได้ เช่น ถ้ามีข้อมูลระดับปีแล้ว อยากจะดูแต่ละเดือนในแต่ละปีก็สามารถดูได้ เป็นต้น)
หรือระบบ data mining ซึ่งสามารถนำข้อมูลใน data mart ไปใช้ในการวิเคราะห์ และสร้างแบบจำลองเพื่อค้นหารูปแบบที่ซ่อนอยู่ในข้อมูล หรือทำนายได้ เช่น อาจจะนำไปใช้วิเคราะห์ดูว่าลูกค้าประเภทไหนที่ชอบซื้อสินค้าในแต่ละประเภท เป็นต้น

1 ความคิดเห็น: