«Yulduz» va «qor parchasi» sxemalari: analitika uchun ma’lumot modeli
Asoslar4 daqInnovialabs tahririyati
Qisqacha
Ikkala sxemada ham raqamli hodisalar o‘lchovlar bilan o‘ralgan markaziy faktlar jadvalida saqlanadi; «yulduz» har bir o‘lchovni oddiy va tez so‘rovlar uchun bitta keng jadvalda saqlaydi, «qor parchasi» esa o‘lchovlarni normallashtirilgan kichik jadvallarga bo‘ladi, BI vositalari esa «yulduz» bilan eng yaxshi ishlaydi.
Qisqa javob
«Yulduz» (star schema) sxemasida bitta markaziy faktlar jadvali (nima sodir bo‘ldi va qanday raqamlarda) tekis o‘lchovlar jadvallari (kim, nima, qayerda, qachon) bilan bevosita bog‘langan. «Qor parchasi» (snowflake schema) — xuddi shu g‘oya, lekin o‘lchovlar bir nechta bog‘langan jadvallarga normallashtirilgan, masalan mahsulot → kategoriya → bo‘lim.
Analitika va BI uchun «yulduz» — odatiy tanlov: kamroq birlashtirish, oddiyroq so‘rovlar, biznes foydalanuvchilarga tushunarliroq. «Qor parchasi» — juda katta yoki umumiy o‘lchovlar uchun aniq maqsadli yechim, o‘z-o‘zidan maqsad emas.
Chakana savdo misolida asosiy qismlar
Do‘konlar tarmog‘ini tasavvur qiling. Savollar: qancha, nima, qayerda, qachon va kimga sotdik?
Faktlar jadvali
fact_sales hodisalar va o‘lchanadigan qiymatlarni (measures) — yig‘iladigan yoki o‘rtachalanadigan raqamlarni saqlaydi:
| Ustun | Ma’nosi |
|---|---|
| date_key | dim_date’ga havola |
| store_key | dim_store’ga havola |
| product_key | dim_product’ga havola |
| customer_key | dim_customer’ga havola |
| quantity | sotilgan birliklar |
| net_amount | chegirmalardan keyingi tushum |
O‘lchovlar jadvallari
O‘lchovlar filtrlash va guruhlash uchun tavsiflovchi atributlarni saqlaydi: dim_product (nomi, brend, kategoriya, bo‘lim), dim_store (shahar, hudud, format), dim_date (kun, hafta, oy, chorak, bayram belgisi), dim_customer (segment, sodiqlik darajasi).
Grain (donadorlik)
Grain — faktlar jadvalidagi bitta qator nimani anglatishi. Bu yerda: «bitta chekdagi bitta mahsulot pozitsiyasi». Grain’ni birinchi bo‘lib aniqlang va yozib qo‘ying. Grain’larni aralashtirish — masalan, ayrim qatorlar chek pozitsiyasi bo‘yicha, ayrimlari kun bo‘yicha — sezish qiyin bo‘lgan ikki marta hisoblashga olib keladi.
Surrogat kalitlar
O‘lchovlarda surrogat kalitlar ishlatiladi: manba tizim kodlari emas, omborda yaratilgan oddiy butun sonlar (product_key = 1042). Ular modelni manbadagi o‘zgarishlardan himoya qiladi, bir nechta manbani birlashtirish va tarixni saqlash imkonini beradi.
Sekin o‘zgaruvchan o‘lchovlar (SCD)
Atributlar o‘zgaradi: mahsulot boshqa kategoriyaga, do‘kon boshqa hududga o‘tadi. Asosiy variantlar:
- 1-tur — eski qiymatni ustidan yozish. Oddiy, lekin tarix qayta yoziladi: o‘tgan savdolar endi yangi kategoriyada ko‘rinadi.
- 2-tur — yangi surrogat kalit va amal qilish sanalari (
valid_from,valid_to,is_current) bilan yangi qator qo‘shish. Eski savdolar eski versiyaga bog‘langan holda qoladi. Tarix muhim bo‘lsa, eng ko‘p tanlanadigan variant. - 3-tur — «oldingi qiymat» ustunini saqlash. Faqat bir qadam orqaga taqqoslash uchun foydali.
«Yulduz» va «qor parchasi»
«Yulduz»da dim_product brend, kategoriya va bo‘limni oddiy ustunlar sifatida saqlaydi. «Qor parchasi»da dim_product dim_category’ga, u esa dim_department’ga havola qiladi.
| Mezon | «Yulduz» | «Qor parchasi» |
|---|---|---|
| So‘rovdagi JOIN’lar | Kamroq | Ko‘proq |
| So‘rovlar soddaligi | Yuqori, tahlilchilarga tushunarli | Pastroq, ko‘proq bog‘lanish yo‘llari |
| So‘rov tezligi | Odatda yuqoriroq | Qo‘shimcha JOIN’lar tufayli sekinroq bo‘lishi mumkin |
| Saqlash hajmi | O‘lchovlarda matn takrorlanadi | Kamroq takrorlanish |
| Umumiy ierarxiyalarni yuritish | Ko‘p qatorni yangilash | Bitta qatorni yangilash |
| BI uchun qulaylik | Tabiiy mos keladi | Ishlaydi, lekin ko‘pincha keyin «tekislanadi» |
«Qor parchasi»dan joy tejash odatda kichik: o‘lchovlar faktlar jadvallariga nisbatan juda kichik, ustunli omborlar esa takrorlanuvchi qiymatlarni yaxshi siqadi.
BI vositalari nimani afzal ko‘radi
Power BI, Tableau, Looker va shunga o‘xshash vositalar «yulduz» atrofida qurilgan: bitta faktlar jadvali, filtrlar o‘lchovlardan faktlarga oqadi. Power BI hujjatlari modellar uchun «yulduz» sxemasini to‘g‘ridan-to‘g‘ri tavsiya qiladi. «Qor parchasi» bilan ham vositalar ishlaydi, lekin bog‘lanish zanjirlari uzayadi, filtrlash kamroq bashorat qilinadigan bo‘ladi, tahlilchilar esa ko‘plab mayda jadvallarda adashadi. Ko‘pincha omborda «qor parchasi» saqlanadi, BI’ga esa «tekislangan» «yulduz» ko‘rinishi (view) beriladi.
Qanday tanlash kerak
- «Yulduz»dan boshlang. U savdo, moliya va marketing bo‘yicha ko‘pchilik hisobotlar uchun yetarli.
- O‘lchov juda katta bo‘lsa, umumiy kichik ierarxiyaga ega ko‘plab faktlar jadvallarida ishlatilsa yoki bir joyda tez-tez yangilansa, uni «qor parchasi»ga ajrating.
- Grain va SCD qoidalarini model yonida hujjatlashtiring.
- Har bir so‘rovda oy va choraklarni hisoblash o‘rniga to‘laqonli
dim_dateyarating.
Ko‘p uchraydigan xatolar
- «Qulaylik uchun» matnli atributlarni faktlar jadvaliga qo‘yish.
- Surrogat o‘rniga manba kalitlarini ishlatish — manba ID’ni qayta ishlatganda tarix buziladi.
- Hamma joyda 1-tur, natijada har safar kategoriya nomi o‘zgarganda o‘tgan yilgi hisobotlar ham o‘zgaradi.
- Tranzaksion bazalarni loyihalash odati bilan o‘lchovlarni normallashtirish.