หนึ่งในคำถามสำคัญของระบบ BI/DW คือ ข้อมูลจะทันสมัยแค่ไหน ถ้าผู้ใช้เปิดรายงานหรือเปิด cube เช้าวันจันทร์ จะเห็นข้อมูลของเมื่อวันศุกร์สัปดาห์ที่แล้ว เสาร์ที่ผ่านมา หรือข้อมูลล่าสุดเมื่อเย็นวันอาทิตย์ ความทันสมัยของข้อมูลหรือ timeliness นี้ เป็นหนึ่งในจุดขายของระบบ Business Intelligence ทั่วไปประเภทโฆษณาว่า เราสามารถให้ real-time data analysis หรือ up to the minute data ได้

ความจริงการโฆษณาอย่างนั้น ก็ไม่ได้ผิดพลาดอะไรหรอก เพียงแต่ว่า น่าจะมีการทำ remark เล็กๆ ไว้หน่อยว่า เงื่อนไขที่จะได้ข้อมูลทันสมัยขนาดนั้นน่ะ มีอะไรบ้าง

ปัจจัยหลักที่ส่งผลกระทบต่อความทันสมัยของข้อมูลในระบบ BI/DW ไม่ได้ขึ้นอยู่กับตัวระบบเอง แต่ขึ้นอยู่กับความพร้อมของแหล่งข้อมูลต้นทาง หรือ source system มากกว่า อย่างที่ทราบกันอยู่ว่า ข้อมูลที่ไหลเข้ามาในคลังข้อมูล มีต้นกำเนิดมาจากระบบอื่นๆ ไม่ว่าจะเป็น ERP, CRM หรือ SCM ยิ่งองค์กรมีขนาดใหญ่ ความหลากหลายของแหล่งข้อมูลก็ยิ่งมีมาก

ความหลากหลายของแหล่งข้อมูล ทั้งในแง่ของระบบ และขั้นตอนกระบวนการทำงาน ส่งผลต่อความสมบูรณ์หรือ completeness ของข้อมูลที่อยู่ในคลังข้อมูลในเวลาใดเวลาหนึ่ง ถ้าคุณมีระบบ data warehouse ที่ใช้รวบรวมข้อมูลยอดขายมาจากทุกสำนักงานขายทั่วโลก คุณจะ update ข้อมูลในคลังข้อมูลบ่อยแค่ไหน? ทันทีที่เริ่มประมวลผลข้อมูลที่เข้ามา ข้อมูลจาก source system ก็เปลี่ยนแปลงไปแล้ว ทันทีที่ตลาดทางเอเชียปิดทำการ ตลาดสหรัฐก็เริ่มทำงาน ดังนั้น ณ เวลาใดเวลาหนึ่ง ข้อมูลในคลังข้อมูล จะขาดความสมบูรณ์ไปเสมอ

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

ถึงตอนนี้คงมีคนคิดว่า “ท่าจะบ้า จะวัดกันไปบ่อยๆ ทำไม เด็กนะ ไม่ใช่ต้นไผ่ เสียเวลาเรียนเปล่าๆ”  จริงครับ ผมเห็นด้วย และก็เช่นเดียวกับงาน DW/BI บางครั้งผู้ใช้ก็เรียกร้องข้อมูลที่อัพเดตล่าสุดมากจนเกินความจำเป็น และไม่ได้ตระหนักถึงเรื่อง completeness ที่ต้องแลกไปหรือแม้แต่เรื่องต้นทุนที่เพิ่มขึ้นเพื่อเก็บและประมวลผลข้อมูลที่อาจจะไม่ได้เปลี่ยนแปลงบ่อยนัก

ประเด็นหลักของการเลือกความถี่และช่วงเวลาในการประมวลผลข้อมูลใน data warehouse คือการหาจุดที่สมดุลกันระหว่าง timeliness กับ completeness โดยพิจารณาจากความต้องการของผู้ใช้เป็นหลัก และต้องเป็น need ด้วย ไม่ใช่แค่ wish โดยมากผมจะถามต่อว่า ผู้ใช้ใช้ข้อมูลไปทำอะไร (คงไม่มีใครแค่ต้องการ “ดู” ข้อมูลเฉยๆ เป็นแน่ เพราะข้อมูลน่ะไม่สวย และไม่สนุก ดังนั้นการเรียกใช้ข้อมูลแต่ละครั้งจึงมีเป้าหมายอยู่ในใจเสมอว่าจะทำอะไรกับข้อมูลเหล่านั้นบ้าง) และปรับความถี่ในการอัพเดตข้อมูลให้สอดคล้องกัน