AXV

Kimball, Star va Snowflake

OLTP va OLAP, Kimball 4 qadami, Star Schema, Snowflake Schema

10-sinfBI & ML5-hafta · 13-dars

Bugun nimalarni o'rganamiz?

OLTP va OLAP

Operatsion va tahliliy model

Kimball va Star Schema

Fakt markazda, o'lchamlar atrofda

Snowflake Schema

Normallashgan o'lchamlar

Takrorlash

CASE WHEN da ELSE yozilmasa va hech bir shart mos kelmasa natija nima bo'ladi?

ELSE bo'lmasa mos kelmagan qatorlar uchun NULL qaytadi.
01

OLTP va OLAP

Operatsion va tahliliy model

OLTP dan OLAP ga

Manba: OLTPjadvallar Tozalashva yuklash Analitik model BI hisobot Hisobotlar OLTP ga emas, analitik modelga tayanadi

OLTP va OLAP so'rovi


-- OLTP: bitta yozuvni yangilash
UPDATE yillik_kpi SET oquvchilar_soni = 486000
WHERE hudud_id = 1 AND yil = 2024;

-- OLAP: ko'p qatorni jamlash
SELECT yil, SUM(oquvchilar_soni) AS jami
FROM yillik_kpi
GROUP BY yil;
  
OLTP — «bitta qator, tez yozish»; OLAP — «ko'p qator, tez o'qish va jamlash».

Mini-test

Qaysi biri OLAP so'rovi?

OLAP — ko'p qatorni jamlash va tahlil.
02

Kimball va Star Schema

Fakt markazda, o'lchamlar atrofda

Kimball ning 4 qadami

1: Biznesjarayon 2: Grain 3: Dimension 4: Fact Avval grain ni aniqlang, keyin jadvallarni loyihalang

Star Schema jadvallari


CREATE TABLE dim_hudud (
    hudud_key INTEGER PRIMARY KEY,
    nomi TEXT, markaz TEXT
);
CREATE TABLE dim_sana (
    sana_key INTEGER PRIMARY KEY,
    yil INTEGER
);
CREATE TABLE fact_kpi (
    hudud_key INTEGER REFERENCES dim_hudud(hudud_key),
    sana_key  INTEGER REFERENCES dim_sana(sana_key),
    oquvchilar_soni INTEGER,
    oqituvchilar_soni INTEGER,
    maktablar_soni INTEGER
);
  
Grain: hudud x yil. 5 hudud va 3 yil bo'lsa, fact_kpi da 15 qator bo'ladi.

Mini-test

Fakt jadvalning «grain» i nimani bildiradi?

Masalan, «bitta qator = bitta hudud, bitta yil».
03

Snowflake Schema

Normallashgan o'lchamlar

Star va Snowflake

fact_kpi dim_hudud dim_markaz(snowflake) Qo'shimchaJOIN Snowflake da dimension zanjirga aylanadi

Snowflake: ikki JOIN


-- Star: 1 ta JOIN
SELECT h.nomi, SUM(f.oquvchilar_soni)
FROM fact_kpi f JOIN dim_hudud h ON h.hudud_key = f.hudud_key
GROUP BY h.nomi;

-- Snowflake: 2 ta JOIN
SELECT m.markaz_nomi, SUM(f.oquvchilar_soni)
FROM fact_kpi f
JOIN dim_hudud h ON h.hudud_key = f.hudud_key
JOIN dim_markaz m ON m.markaz_id = h.markaz_id
GROUP BY m.markaz_nomi;
  
Star ni birinchi tanlang: BI uchun sodda va tez. Snowflake faqat dimension juda katta va takrorli bo'lsa kerak.

Mini-test

Snowflake Schema ning Star dan asosiy farqi?

Dimension bir necha jadvalga bo'linadi.

Star va Snowflake

Star

Dimension jadvallar yassi, JOIN kam, so'rov sodda, BI uchun qulay
VS

Snowflake

Dimension normallashtirilgan, joy tejaladi, JOIN ko'p

BI uchun odatda Star tanlanadi.

Atamalar. Bosing

Fact

bosing

Raqamli o'lchovlar jadvali: o'quvchilar soni

Dimension

bosing

Tavsiflovchi jadval: hudud, yil

Grain

bosing

Fakt qatori aniqligi: hudud x yil

Surrogate key

bosing

Sun'iy butun kalit: hudud_key

Star Schema qurish tartibi

1. Grain

Bitta qator nimani bildirishini yozing.

2. Dimension

dim_hudud, dim_sana jadvallarini yarating.

3. Fact

fact_kpi ni FK lar va o'lchovlar bilan yarating.

OLTP va OLAP

XususiyatOLTPOLAP
Maqsadkundalik amallartahlil va hisobot
Modelnormallashganstar / snowflake
AmalINSERT, UPDATESELECT, GROUP BY
Qator hajmikam qatorko'p qator
Misolyillik_kpi yozuviyillik jami hisobot

Pastga bosing: tanlash qoidasi

Star yoki Snowflake?

  1. Hisobot tezligi va soddaligi muhim bo'lsa — Star.
  2. Dimension juda katta va takrorli bo'lsa — Snowflake ni ko'rib chiqing.
  3. Shubha bo'lsa, Star dan boshlang.

Fact jadvalga o'tamiz


CREATE TABLE fact_kpi (
);
  

Fact jadvalga o'tamiz


CREATE TABLE fact_kpi (
    hudud_key INTEGER,
    sana_key INTEGER,
    oquvchilar_soni INTEGER
);
  

maktab.db raqamlarda

0
hudud
0
yil (2022–2024)
0
fact_kpi dagi qator

5 hudud x 3 yil = 15 qator: grain «hudud x yil».

Amaliy topshiriq 20 daqiqa

OsonOLTP yoki OLAP?: Har bir amalni toifalang: (a) yangi o'quvchi qo'shish, (b) hududlar bo'yicha yillik jami, (c) maktab sig'imini yangilash, (d) 3 yillik o'sish trendi.
OsonGrain ni yozing: maktab.db asosidagi fakt jadval uchun grain jumlasini yozing va nechta qator bo'lishini ayting.
O'rtaStar Schema yaratish: dim_hudud, dim_sana va fact_kpi jadvallarini yarating, yillik_kpi dan to'ldiring.
QiyinYillik jami: Star Schema dan foydalanib, har yil uchun jami o'quvchilar sonini toping.
BonusSnowflake varianti: dim_hudud dan dim_markaz ni ajrating va markazlar bo'yicha 2024-yil jami o'quvchilarni toping.

Dars xulosasi

OLTP va OLAP

Operatsion va tahliliy model farqi.

Kimball

4 qadam: jarayon, grain, dimension, fact.

Star va Snowflake

Star sodda, Snowflake normallashgan.

Uyga vazifa: Star Schema ni maktab.db da qurish.

Keyingi dars: Fakt va o'lcham jadvallari

Grain, additive o'lchovlar, surrogate kalit

5-hafta · 14-dars