Fact ба Dimension Table гэж юу вэ? (Data Warehouse-ийн үндсэн ойлголт)

Өгөгдөлд суурилсан шийдвэр гаргах (data-driven decision making) нь орчин үеийн байгууллагын стратегийн гол хэсэг болж байна. Гэхдээ бизнесийн системүүдэд байгаа өгөгдөл ихэнхдээ transactional database хэлбэрээр хадгалагддаг бөгөөд энэ нь query удаан унших, BI болон анализ хийхэд тохиромжгүй байдаг.

Иймээс байгууллагууд Data Warehouse байгуулж, аналитик зорилгоор өгөгдлийг тусгай бүтэцтэй хадгалдаг. Энэ бүтэц нь ихэвчлэн Fact table болон Dimension table гэсэн хоёр үндсэн төрлийн хүснэгтээс бүрддэг.

Эдгээр нь Business Intelligence (BI), dashboard, data analytics, machine learning зэрэг системүүдийн суурь архитектур юм.

Fact Table гэж юу вэ?

Fact table гэдэг нь бизнесийн хэмжигдэхүүн (measurable metrics)-үүдийг хадгалдаг хүснэгт юм.

Fact table нь ихэвчлэн:

  • numeric metrics
  • transaction data
  • business events

зэргийг хадгалдаг.

Жишээ нь:

order_idproduct_idcustomer_iddate_idquantityrevenue
100120130120240101250
100220230220240101130

Энд:

  • quantity
  • revenue

гэдэг нь fact буюу хэмжигдэхүүнүүд юм.

Fact table ихэвчлэн маш олон мөртэй (millions / billions rows) байдаг.

Dimension Table гэж юу вэ?

Dimension table нь fact table-д байгаа өгөгдлийг тайлбарлах мэдээлэл (descriptive attributes) агуулдаг.

Өөрөөр хэлбэл dimension table нь:

  • хэн?
  • хаана?
  • ямар бүтээгдэхүүн?
  • ямар хугацаанд?

гэсэн асуултуудад хариулдаг.

Жишээ: Product Dimension

product_idproduct_namecategorybrand
201LaptopElectronicsDell
202PhoneElectronicsApple

Жишээ: Customer Dimension

customer_idcustomer_namecitysegment
301BatUlaanbaatarRetail
302SaraaDarkhanRetail

Dimension table нь аналитик query хийхэд нэмэлт мэдээлэл өгдөг.

Fact + Dimension хэрхэн хамт ажилладаг вэ?

Fact table нь dimension table-уудтай foreign key ашиглан холбогддог.

Жишээ:

Fact Sales
------------
product_id
customer_id
date_id
revenue
quantity

Dimension tables:

Dim Product
Dim Customer
Dim Date

SQL query жишээ:

SELECT 
    p.product_name,
    SUM(f.revenue) AS total_sales
FROM fact_sales f
JOIN dim_product p
    ON f.product_id = p.product_id
GROUP BY p.product_name;

Энэ query нь:

“Бүтээгдэхүүн бүрийн нийт борлуулалт”-ыг гаргана.

Star Schema

Fact ба dimension table-ууд ихэвчлэн Star Schema бүтэц үүсгэдэг.

        Dim Customer
              |
Dim Product — Fact Sales — Dim Date
              |
        Dim Store

Fact table нь төвд байрлаж, dimension table-ууд од (star) хэлбэрээр холбогддог.

Star schema-ийн давуу тал:

  • Query хурдан
  • BI tools-д тохиромжтой
  • SQL ойлгомжтой

Python ашиглан Fact Table үүсгэх жишээ

Fact table үүсгэх энгийн жишээ.

import pandas as pd

data = {
    "product_id": [101, 102, 101],
    "customer_id": [1, 2, 3],
    "quantity": [2, 1, 4],
    "price": [20, 30, 20]
}

df = pd.DataFrame(data)

df["revenue"] = df["quantity"] * df["price"]

print(df)

Output:

product_id customer_id quantity price revenue
101        1           2        20    40
102        2           1        30    30
101        3           4        20    80

Энэ dataframe нь fact sales table болж ашиглагдаж болно.

Dimension table Python жишээ

products = {
    "product_id": [101, 102],
    "product_name": ["Laptop", "Phone"],
    "category": ["Electronics", "Electronics"]
}

dim_product = pd.DataFrame(products)

print(dim_product)

Fact ба Dimension table-ийг join хийх

merged = df.merge(dim_product, on="product_id")

print(merged)

Output:

product_name  quantity revenue
Laptop        2        40
Phone         1        30
Laptop        4        80

Энэ нь аналитик query хийхтэй ижил зарчим юм.

Fact Table-ийн онцлог

Fact table ихэвчлэн:

  • numeric metrics хадгална
  • dimension keys агуулна
  • маш их хэмжээний data агуулна
  • aggregation хийхэд ашиглагдана

Жишээ metric:

  • revenue
  • sales
  • profit
  • clicks
  • impressions

Dimension Table-ийн онцлог

Dimension table нь:

  • descriptive attributes агуулна
  • жижиг хэмжээтэй
  • BI analysis хийхэд контекст өгнө

Жишээ dimension:

  • customer
  • product
  • date
  • location
  • store

Data Warehouse-д яагаад хэрэгтэй вэ?

Fact болон Dimension table ашиглах нь аналитик системд дараах давуу талуудыг бий болгодог.

1. Query performance сайжирна

BI dashboard-ууд хурдан ажиллана.

2. Business analysis илүү ойлгомжтой болно

Жишээ асуултууд:

  • ямар бүтээгдэхүүн хамгийн их зарагдсан бэ?
  • аль хотод хамгийн их борлуулалт байна?
  • аль сар хамгийн өндөр орлоготой байсан бэ?

3. BI tools-тэй уялдаатай ажиллах боломж бүрдэнэ

Дараах хэрэгслүүд Star Schema-г шууд ашигладаг.

  • Power BI
  • Tableau
  • Looker
  • Superset

Fact болон Dimension table нь Data Warehouse architecture-ийн хамгийн чухал ойлголтуудын нэг юм. Fact table нь бизнесийн хэмжигдэхүүнүүдийг хадгалдаг бол Dimension table нь тухайн өгөгдлийг тайлбарлах контекст өгдөг.

Эдгээр хүснэгтүүдийг хамтад нь ашигласнаар байгууллагууд хурдан, ойлгомжтой, scalable аналитик систем бий болгодог бөгөөд BI dashboard, data analytics, machine learning системүүдийн суурь болдог.

Fact table, Dimension table, Star schema, Data warehouse design зэрэг ойлголтуудыг сайн ойлгосноор өгөгдлийн системүүдийг илүү үр ашигтай бүтээж чадна. Хэрвээ дата инженерчлэлийн гол ур чадваруудыг онол, практик хослуулан суралцахыг хүсвэл Data School-с зохион байгуулж буй 4-р сарын 15-нд эхлэх “Дата Инженер” танхимын сургалтанд бүртгүүлээрэй. Анги дүүргэлт ердөө 10 хүнтэй сургалт явагдана.

Холбоотой нийтлэлүүд

Байгууллагуудад борлуулалт, хэрэглэгчийн зан төлөв, веб сайтын хэрэглээ, IoT төхөөрөмжүүд, санхүүгийн систем гэх мэт олон эх сурвалжаас өгөгдөл тасралтгүй урсаж...
  • Data Engineering
  • 3 сар 16, 2026
Өгөгдлийн сангийн зөв сонголт нь өгөгдлийн шинжлэх ухаан болон програм хөгжүүлэлтэд маш чухал. Энэ нь гүйцэтгэл, өргөтгөх чадвар, өгөгдлийг боловсруулах...
  • Data Engineering
  • 12 сар 5, 2025
Өгөгдлийн сан (Database) гэдэг нь бүтцийн хувьд зохион байгуулалттай, харилцан хамаарал бүхий өгөгдлийг хадгалан, удирдах систем юм. SQL (Structured Query...
  • Data Engineering
  • 7 сар 30, 2025