"Make every metric mean exactly the same thing to every consumer."
"ยอดขาย" หมายถึงอะไร? ฝ่ายการเงินคิดรวมภาษี ฝ่ายขายไม่รวมค่าส่ง ฝ่ายการตลาดนับเฉพาะช่องทางออนไลน์...
เลเยอร์ความหมายคือชั้นที่เป็น ตัวกลางระหว่างข้อมูลดิบ (Gold Tables) กับ ผู้ใช้และ AI — แปลงโครงสร้างทางเทคนิคให้เป็นคำศัพท์ทางธุรกิจและเมตริกที่เข้าใจตรงกัน
เมตริกถูกนิยามครั้งเดียว ใช้ซ้ำได้ทุกที่
ผู้ใช้ธุรกิจสร้างคำตอบเองโดยไม่ต้องรู้ SQL
ให้บริบทแกโมเดล LLM เพื่อตอบคำถามได้แม่นยำ
หัวใจของ Semantic Layer คือการนิยามเมตริกแบบ Declarative — อธิบาย "อะไร" ไม่ใช่ "อย่างไร"
ตัวอย่าง dbt Semantic Layer YAML:
metrics:
- name: revenue
type: sum
label: "รายได้รวม"
sql: total_amount
time_grains: [day, week, month, year]
filters:
- field: is_refunded
operator: '='
value: 'false'
total_amount โดยไม่รวมเรกคอร์ดที่ถูกคืนเงิน (is_refunded = false) — ใช้คำนิยามนี้ได้ทั้ง BI และ AI
ตัวชี้วัดที่คำนวณได้ เช่น ยอดขาย, กำไร, จำนวนคำสั่งซื้อ พร้อมสูตรและการกรอง
แอตทริบิวต์สำหรับแบ่งมุมมอง เช่น หมวดหมู่สินค้า, ภูมิภาค, เวลา
ตารางหรือ "แนวคิด" (เช่น Customer, Order) ที่เชื่อมโยงมิติและเมตริก
ความสัมพันธ์ระหว่างเอนทิตี เช่น Customer 1-N Order
สถานการณ์:
คุณมีตาราง Gold: fct_orders(amount, quantity, is_refunded, order_date, customer_key, product_key)
metrics:
- name: net_revenue
type: sum
label: "รายได้สุทธิ"
sql: amount
filters:
- field: is_refunded
operator: '='
value: 'false'
เหตุผลที่ AI ต้องการ Semantic Layer เพื่อตอบคำถามธุรกิจอย่างน่าเชื่อถือ
ป้อนคำนิยามเมตริกและมิติให้ LLM รู้จักใน System Prompt (คล้าย RAG สำหรับเมตริก)
แทนที่จะโหลด Schema หลายพันคอลัมน์ ให้ LLM ใช้เฉพาะเอนทิตีและเมตริกที่เกี่ยวข้อง
Semantic Layer ช่วยให้ Text-to-SQL ตรงกับนิยามองค์กร ลดข้อผิดพลาดของ Join
จากแนวคิดสู่การปฏิบัติ ด้วย dbt, Looker, และ MetricFlow
dim_customer, fct_orders ใน GoldLookML เป็นภาษาแบบ Declarative ที่อธิบาย View และ Explore สำหรับ BI
view: order_facts {
dimension: order_date { type: date }
dimension: customer_region
measure: net_revenue {
type: sum
sql: ${TABLE}.amount ;;
}
}
explore: order_facts {
join: customer { relationship: many_to_one }
}
explore = เรื่องที่ผู้ใช้ธุรกิจเล่าได้, measure = เมตริกที่คำนวณ
ภารกิจ:
สำหรับ "Agentic E-Commerce Platform" ของคุณ จงนิยาม: