Metrics Store คืออะไรนะ? ทำไมถึงเป็นสิ่งที่ควรมีใน Modern Data Stack?

เช้านี้ย้อนมาอ่านเว็บที่เปิดค้างไว้แล้วเจอบทความนี้ Understanding the Metrics Store. Why, What and How Enterprise Adopt Metric Store | Kyligence

เค้าอธิบายได้เข้าใจง่ายดีครับ

A metrics store is, in the simplest words, a middle layer between upstream data warehouses/data sources and downstream business applications. It can be called the Metrics Platform, Headless BI, the Metrics Layer, or the Metrics Store — — they are ultimately the same thing.

เราสามารถมองเป็นการ decouple ส่วนของ metrics ต่างๆ ออกมาจาก business intelligence (BI) tool พวก Tableau หรือ Data Studio ก็ได้ ลองดูรูปด้านล่างนี้จากคุณ Benn Stancil ประกอบ


รูปจาก The missing piece of the modern data stack

คนที่ใช้พวก BI น่าจะพอเข้าใจ ผมก็เป็นคนหนึ่งที่ใช้ Data Studio บ่อย ในหลายๆ ครั้งเราก็ไปคำนวณ metrics บน Data Studio เลย เพราะว่ารวดเร็วกว่ามาปรับ query ใหม่ ซึ่งแน่นอนว่าก็จะมีปัญหาอย่างในบทความเค้าบอก

  • Inconsistency of key metrics definition — ต่างคนต่าง define metrics ที่ตัวเองใช้
  • Inability to reuse defined metrics — เอาไปใช้ร่วมกันไม่ได้ หรือยากลำบาก
  • The difficulty for business users to define metrics with SQL — อันนี้แน่นอน ก็ถ้าไม่สามารถมาเขียน SQL ได้ ไปทำบน BI ของตัวเองก็ตอบโจทย์กว่า

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

ในบทความมีกล่าวถึงแพลตฟอร์มที่ชื่อว่า Pandora แล้วเค้าก็อธิบายเปรียบเทียบขั้นตอนการทำงาน before กับ after ให้ดูเป็นรูป


รูปจาก Data Analytics Workflow: Before vs After | by Lori Lu | Medium

น่าสนใจเลยทีเดียวว่าเค้าทำแพลตฟอร์มขึ้นมาแล้วให้คนเข้าไป initiate ตั้งแต่ Day 1 เลยได้อย่างไร :+1: ถ้าทำออกมาไม่ดีพอ คนก็จะกลับไปสร้าง metrics บน BI กันอยู่ดี

มาถึงตรงนี้แล้ว คิดว่าน่าจะพอเห็นภาพเรื่องความสำคัญของ metric store กันแล้วเนอะ บริษัทดังๆ อย่างที่ Airbnb เค้าก็สร้างแพลตฟอร์มขึ้นมาใหม่เลยชื่อ Minerva หรือที่ Uber ก็สร้างมาชื่อ uMetric

ไว้ถ้าผมได้เริ่มสร้างสิ่งนี้ในองค์กร จะเอามาเล่าให้อ่านกันนะ ส่วนใครมีโอกาสใช้ หรือกำลังพัฒนาอยู่ มีคำแนะนำ หรืออยากเล่าประสบการณ์ สามารถเขียนมาแบ่งปันกันได้นะครับ :blush: