Өгөгдөлд суурилсан шийдвэр гаргах (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_id | product_id | customer_id | date_id | quantity | revenue |
|---|---|---|---|---|---|
| 1001 | 201 | 301 | 20240101 | 2 | 50 |
| 1002 | 202 | 302 | 20240101 | 1 | 30 |
Энд:
- quantity
- revenue
гэдэг нь fact буюу хэмжигдэхүүнүүд юм.
Fact table ихэвчлэн маш олон мөртэй (millions / billions rows) байдаг.
Dimension Table гэж юу вэ?
Dimension table нь fact table-д байгаа өгөгдлийг тайлбарлах мэдээлэл (descriptive attributes) агуулдаг.
Өөрөөр хэлбэл dimension table нь:
- хэн?
- хаана?
- ямар бүтээгдэхүүн?
- ямар хугацаанд?
гэсэн асуултуудад хариулдаг.
Жишээ: Product Dimension
| product_id | product_name | category | brand |
|---|---|---|---|
| 201 | Laptop | Electronics | Dell |
| 202 | Phone | Electronics | Apple |
Жишээ: Customer Dimension
| customer_id | customer_name | city | segment |
|---|---|---|---|
| 301 | Bat | Ulaanbaatar | Retail |
| 302 | Saraa | Darkhan | Retail |
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 хүнтэй сургалт явагдана.