ฐานข้อมูลการประมวลผลออนไลน์เชิงวิเคราะห์ หรือ OLAP จะช่วยเพิ่มความเร็วในการค้นหาข้อมูลได้ในหลากหลายมิติที่พบได้ทั่วไปในแอปพลิเคชัน และการจัดทำรายงานต่าง ๆ ( OLAP คือ อะไร ) ฐานข้อมูลการประมวลผลออนไลน์เชิงวิเคราะห์ (Online Analytical Processing – OLAP) ถ้าให้อธิบายสั้น ๆ มันคือเทคโนโลยีตัวหนึ่งที่จะช่วยให้การวิเคราะห์ข้อมูลมหาศาลทำได้ดีขึ้น ถูกสร้างขึ้นมาเพื่อการสืบค้น และการค้นหาข้อมูลเชิงวิเคราะห์ ซึ่งแตกต่างจากการประมวลผลบนฐานข้อมูลการประมวลผลธุรกรรมออนไลน์ (OLTP) ที่มักจะใช้เวลานาน ในการส่งกลับผลลัพธ์ เพราะมีสาเหตุหลายประการดังต่อไปนี้ ประการแรก ฐานข้อมูล OLTP มักจะอยู่ในรูปนอร์มัลฟอร์มที่ 3 (ตามตำราการสร้างฐานข้อมูล เราจะถูกสอนกันว่าต้องจัดเก็บข้อมูลแยกเป็นหลาย ๆ ตาราง เป็นนอร์มัลฟอร์ม ที่มีระดับหนึ่ง สอง สาม สี่… แต่ที่นิยมสุด คือ ระดับสาม เพื่อให้การเก็บข้อมูลไม่ซ้ำซ้อน และเข้าใจง่าย) ดังนั้นเมื่อเราค้นหาข้อมูลเพื่อการวิเคราะห์ เราต้องทำการ JOIN ที่ซับซ้อนกันในหลายตาราง ซึ่งอาจจะต้องเสียเวลาในการคํานวณเป็นอย่างมาก ประการที่สอง ถ้าจะเพิ่มประสิทธิภาพความเร็วในการเขียนข้อมูลของฐานข้อมูล OLTP เราจะต้องมี Index น้อย ซึ่งขัดกับการสืบค้นข้อมูลเพื่อวิเคราะห์ที่ต้องมี Index ปริมาณมากถึงจะมีคุณภาพ ประการที่สาม ฐานข้อมูล OLTP มักจะถูกใช้ในกลุ่มธุรกิจบริการ ซึ่งมักจะมีธุรกรรมย่อย ๆ ปริมาณมาก และเกิดขึ้นอย่างต่อเนื่อง ซึ่งอาจทําให้เกิดความขัดแย้ง เพราะส่วนใหญ่ เมื่อเราดำเนินการกับธุรกรรมย่อย ๆ จำนวนมากก็จะใช้ Index มากตาม และเมื่อเรากำลังค้นหาข้อมูลเชิงวิเคราะห์ที่ใช้เวลานาน เลยทำให้ทั้งการทำธุรกรรม และการค้นหาข้อมูลทำงานช้าลงไปด้วย ฐานข้อมูล OLAP จะแก้ปัญหาที่ได้กล่าวไปข้างต้น โดยแยกฐานข้อมูลออกมา และปรับให้เหมาะสมกับการค้นหา หรือสืบค้นเชิงวิเคราะห์ นอกจากนี้ยังมีหลายวิธีในการเพิ่มประสิทธิภาพฐานข้อมูลสําหรับการวิเคราะห์ที่เราจะขอพูดถึงต่อไปนี้ มารู้จักกับ OLAP ฐานข้อมูล OLAP ได้ถูกออกแบบมา เพื่อเพิ่มมิติในการวิเคราะห์ข้อมูล ให้สามารถวิเคราะห์ข้อมูลปริมาณมากจากคลังข้อมูลหรือ Data Mart ได้รวดเร็วขึ้น โดยมีหลักการคือ แยกข้อมูลเชิงสัมพันธ์ออกเป็นรูปแบบหลายมิติที่เรียกว่า OLAP Cube เริ่มต้นจากการโหลดข้อมูลที่ต้องการวิเคราะห์ลงในหน่วยความจํา จัดเก็บข้อมูลตามลําดับคอลัมน์ และใช้ CPU หลายตัวควบคู่กันในการวิเคราะห์ (เช่น การประมวลผลแบบขนานหรือที่เรียกว่า MPP – Massively Parallel Processing) ETL และ ELT การใช้ OLAP มีอุปสรรคอย่างหนึ่งก็คือ การสร้างกระบวนการ หรือ Process ในการนําข้อมูลออกจากฐานข้อมูลธุรกรรม และเข้าสู่ฐานข้อมูลการวิเคราะห์ ซึ่งเราคุ้นเคยดีว่าระบบจะจัดข้อมูลเป็นชุดข้อมูลทุกคืน เพื่อแยก แปลง และโหลด (ETL) ข้อมูล แต่เมื่อฮาร์ดแวร์ และซอฟต์แวร์ได้รับการปรับปรุงให้ดีขึ้น เราจึงเริ่มใช้การสตรีมข้อมูลอย่างต่อเนื่องมาแทนที่ชุดการทำงานที่เป็น ETL Batch จนทำให้ในบางครั้งขั้นตอนการแปลงข้อมูล ถูกเลื่อนสลับไปทำหลังจากโหลดแทนด้วยซ้ำ (เลยกลายเป็น ELT แทน) และด้วยเหตุผลนี้เอง ELT จึงถูกนำมาใช้มากขึ้น เพราะตอบโจทย์ในการทำวิศวกรรมสําหรับ Machine Learning ที่ทํางานกับฐานข้อมูลการวิเคราะห์ตลอดเวลา การเก็บข้อมูลแบบเรียงเป็นคอลัมน์ ฐานข้อมูลธุรกรรมจะเก็บข้อมูลในตารางเป็นแถว ๆ ไว้ด้วยกัน ซึ่งมันจะทำให้คุณสามารถดูข้อมูลได้ง่าย แต่ถ้าเราใช้ฐานข้อมูล OLAP การจัดเก็บข้อมูลจะถูกเรียงตามคอลัมน์ไว้ด้วย เป็นการรวมข้อมูลหลาย ๆ ค่าเข้าด้วยกันที่จะทำให้คุณสามารถดูข้อมูลได้ง่ายขึ้นกว่าเดิมอีก (ยกตัวอย่างแต่ละแถว เราจะเก็บข้อมูลรายชื่อลูกค้า อายุ หรือยอดที่ซื้อ แต่ส่วนใหญ่เวลาเราวิเคราะห์ข้อมูล เรามักจะหาเป็นรายคอลัมน์มากกว่าเป็นแถว เช่น หาค่าเฉลี่ยอายุลูกค้า ยอดขายแต่ละจังหวัด ซึ่งหากฐานข้อมูลเก็บเป็นคอลัมน์ มันจะคำนวณได้เร็วกว่าเก็บแบบเป็นแถวแน่ ๆ ) นอกจากนี้การเก็บคอลัมน์ที่ใช้งานไว้ในหน่วยความจำ ทำให้การทำงานของฐานข้อมูล OLAP รวดเร็วขึ้น ไม่เพียงเท่านี้ การรวมคอลัมน์ของข้อมูลที่คล้ายกันจะทำให้การจัดเก็บแบบคอลัมน์ใช้ความจำน้อยลงไปอีก OLAP Cube คืออะไร OLAP Cubes หรือ Hypercubes คือ วิธีการจัดระเบียบข้อมูลด้วยมิติลําดับชั้น เพื่อให้สามารถดําเนินการวิเคราะห์ได้อย่างรวดเร็วโดยไม่ต้องมี SQL JOINs และ UNIONS มากมายนัก OLAP cubes จะมาปฏิวัติระบบ Business Intelligence (BI) ไปเลย โดยก่อนหน้านี้นักวิเคราะห์ตัวเลขจะต้องมาทำการสรุปสิ่งที่ต้องการสืบค้นในทุก ๆ วัน และจะดำเนินการหาผลลัพธ์ของการวิเคราะห์ในวันถัดไป แต่หลังจากมีระบบฐานข้อมูล OLAP Cubes วิศวกรข้อมูลสามารรถรันงานเพื่อสร้าง Cube ได้ในตอนกลางคืนและนักวิเคราะห์จะสามารถหาคำตอบ บอกสิ่งที่ต้องการสืบค้นแบบโต้ตอบReal-time กับ Cubes ในตอนเช้าได้เลย OLAP Cubes รองรับการจัดการข้อมูลแบบ “สไลซ์และทอยลูกเต๋า” ทั้ง 5 ชนิด ซึ่งการสไลซ์หมายถึงหั่นแยก Cube ที่มีมิติไม่มากด้วยเซ็ตมิติหนึ่งค่าเป็นค่าเดียว (เลยคล้าย ๆ กับการหั่นบาง ๆ ) เช่น MONTH=6 ส่วนลูกเต๋าหมายถึงการดึง Sub-cube ที่มีมิติข้อมูลหลายตัว ตั้งค่าเป็นค่าเดียว เช่น STORE=95 AND MONTH=6 และมาดูรายละเอียดให้ลึกลงไป การดูรายละเอียดแนวลึกช่วยให้นักวิเคราะห์สามารถเปลี่ยนมุมจากการดูแค่ผลสรุป ไปเป็นการดูค่าโดยละเอียดได้ และเราจะมีค่าที่รวบรวมหรือสรุปผลข้อมูลตามแต่ละคอลัมน์ แต่ละมิติ ส่วนการทำ Pivot คือการหมุน cube เพื่อดูมุมมองอื่นของชุดข้อมูล ซึ่งการหมุน OLAP Cube มีประสิทธิภาพมากกว่าการทำบน Excel อีกด้วย โดยเราจะใช้ภาษา MDX ซึ่งเป็นชุดคำสั่งรูปแบบ SQL ในการค้นหา OLAP Cubes ในช่วงไม่กี่ปีที่ผ่านมา OLAP Cubes ส่วนใหญ่ถูกแทนที่โดยคลังข้อมูลที่ใช้ที่เก็บข้อมูลแบบคอลัมน์ที่บีบอัด (ควรอยู่ในหน่วยความจํา) และ MPP (Massively Parallel Processing คือ ฐานข้อมูลชนิดหนึ่งที่ออกแบบมาเพื่อทำหน้าที่เป็น OLAP Database) MOLAP คืออะไร? MOLAP คือ การประมวลผลการวิเคราะห์ทางออนไลน์หลายมิติ (MOLAP) โดยเป็นต้นแบบของ OLAP ที่ใช้ OLAP Cubes แบบหลายมิติ ซึ่งการใช้การประมวลผลเบื้องต้นของ OLAP Cubes จะใช้เวลานานมาก เมื่อเทียบกับ MOLAP ที่สามารถวิเคราะห์ข้อมูลได้อย่างรวดเร็ว โดย MOLAP จะมีประสิทธิภาพมากที่สุด เมื่อเราใช้ Data Field เป็นตัวเลขที่สามารถรวมกันได้ ROLAP คืออะไร? การทำงานของ Relational OLAP...