Interactive tasks attached to this lesson — complete them in a real Kubernetes environment and check the result.
database
SQL: reyting raqami (ROW_NUMBER OVER)
Murakkabbolt+25 XP
CPU bo'yicha TOP-reyting: har servisga o'z o'rni (1, 2, 3...) yozilsin — window funksiya bilan, subquery'larsiz. Vazifa query.sql — ROW NUMBER() OVER (ORDER BY cpu DESC, name) bilan orin|nom qaytarsin (o'rin tartibida) Muvaffaqiyat mezoni (jonli) Har qator noyob o'rin oladi (tenglikda nom hal qiladi)
database
SQL: teng qiymatlarga teng o'rin (RANK)
Murakkabbolt+25 XP
Musobaqa-uslub reyting: TENG CPU — TENG o'rin, keyingi o'rin esa "sakraydi" (1,2,2,4...). Vazifa query.sql — RANK() OVER (ORDER BY cpu DESC) bilan orin|nom qaytarsin (orin, so'ng nom tartibida) Muvaffaqiyat mezoni (jonli) Ikki teng qiymat bir xil o'rin oladi, keyingisi sakraydi
database
SQL: zich reyting (DENSE_RANK)
Murakkabbolt+25 XP
Narx-darajalar ro'yxati: teng qiymatlar bir daraja, KEYINGI daraja sakramasdan davom etadi (1,2,2,3...). Vazifa query.sql — DENSE RANK() OVER (ORDER BY cpu DESC) bilan daraja|nom (daraja, nom tartibida) Muvaffaqiyat mezoni (jonli) RANK'dan farqi: 4 emas, 3 keladi
database
SQL: qator yonida guruh jami (SUM OVER PARTITION)
Murakkabbolt+25 XP
Har servis o'z CPU'si YONIDA muhitining JAMI CPU'sini ko'rsatsin — guruhlamasdan (qatorlar yo'qolmasin). Vazifa query.sql — nom|cpu|SUM(cpu) OVER (PARTITION BY env) ni nom tartibida qaytarsin Muvaffaqiyat mezoni (jonli) prod qatorlarida prod jami, dev qatorlarida dev jami
database
SQL: yig'ilib boruvchi jami (running total)
Murakkabbolt+25 XP
Deploy tarixi bo'ylab KUMULYATIV hisob: har buildgacha jami nechta deploy bo'lgan (o'sish egri chizig'i). Baza deploys(build INTEGER, dur INTEGER) — build tartib raqami, dur davomiyligi Vazifa query.sql — build|SUM(dur) OVER (ORDER BY build) — build tartibida kumulyativ davomiylik Muvaffaqiyat mezoni (jonli) Har qatorda shu qatorgacha (o'zi bilan) yig'indi
database
SQL: oldingi qator bilan farq (LAG)
Murakkabbolt+25 XP
Har deploy davomiyligi OLDINGISIDAN qancha farq qilishini ko'rsatish kerak (regressiya sezish). Vazifa query.sql — build|dur - LAG(dur) OVER (ORDER BY build) (birinchi qatorda bo'sh/NULL) Muvaffaqiyat mezoni (jonli) 10,20,5 → farqlar |;10;-15
database
SQL: umumiy o'rtacha yonida og'ish
Murakkabbolt+25 XP
Har servis o'z CPU'si bilan birga UMUMIY O'RTACHAdan qancha OG'ISHINI ko'rsatsin (cpu - avg). Vazifa query.sql — nom|ROUND(cpu - AVG(cpu) OVER (), 1) ni nom tartibida qaytarsin Muvaffaqiyat mezoni (jonli) O'rtachadan pastlar manfiy, yuqorilar musbat
database
SQL: har guruhning chempioni (top-1 per group)
Murakkabbolt+25 XP
HAR MUHITNING eng katta CPU'li servisi kerak — mashhur "top-1 per group" masalasi: ROW NUMBER + PARTITION + tashqi filtr. Vazifa query.sql — CTE'da ROW NUMBER() OVER (PARTITION BY env ORDER BY cpu DESC, name) hisoblab, rn = 1 larni env|nom|cpu ko'rinishida (env tartibida) qaytarsin Muvaffaqiyat mezoni (jonli) Har muhitdan aynan bitta g'olib
database
SQL: guruh hajmi har qator yonida (COUNT OVER)
Murakkabbolt+25 XP
Har servis o'z muhitida NECHTA "qo'shnisi" borligini (guruh hajmini) ko'rsatsin — ro'yxat yaxlitligini yo'qotmasdan. Vazifa query.sql — nom|COUNT( ) OVER (PARTITION BY env) ni nom tartibida qaytarsin Muvaffaqiyat mezoni (jonli) prod qatorlarida 3, dev qatorlarida 2 (seed misolida)
database
SQL: umumiy ichidagi ulush foizi (share of total)
Murakkabbolt+25 XP
Xarajat hisobar: har servis umumiy CPU'ning necha FOIZINI iste'mol qiladi (bir xonali kasr). Vazifa query.sql — nom|ROUND(100.0 cpu / SUM(cpu) OVER (), 1) ni nom tartibida qaytarsin Muvaffaqiyat mezoni (jonli) Ulushlar yig'indisi 100%
database
SQL: eng sekin endpointlar (top-3 hisobot)
Osonbolt+15 XP
Performance-navbatchi uchun ENG SEKIN 3 endpoint kerak — davomiylik kamayish tartibida. Baza requests(path TEXT, ms INTEGER) Vazifa query.sql — path|ms top-3 (ms DESC, teng bo'lsa path) Muvaffaqiyat mezoni (jonli) Aynan 3 qator, eng sekini birinchi
database
SQL: servis bo'yicha xato ulushi hisoboti
Murakkabbolt+25 XP
Har servis loglarida ERROR ULUSHI foizda kerak: jami va error sonidan FILTER bilan bitta so'rovda. Baza logs(svc TEXT, level TEXT) Vazifa query.sql — svc|jami|error|foiz (foiz = ROUND(100.0 err/jami,1)), svc tartibida Muvaffaqiyat mezoni (jonli) Errorsiz servis 0.0 bilan ko'rinadi
database
SQL: kunlik deploy soni (vaqt kesimi)
Osonbolt+15 XP
Reliz-jarayon salomatligi: HAR KUNI nechta deploy bo'lgan — sana bo'yicha guruhlangan seriya. Baza deploys(day TEXT, status TEXT) — ISO sana Vazifa query.sql — day|soni sana tartibida Muvaffaqiyat mezoni (jonli) Kunlar to'g'ri sanaladi va tartiblanadi
database
SQL: dublikat konfiguratsiya kalitlarini topish
Murakkabbolt+25 XP
Config-bazada bir (kalit, muhit) juftligi BIR NECHA marta yozilgan bo'lishi mumkin (xato import) — dublikatlar soni bilan chiqsin. Baza configs(key TEXT, env TEXT, value TEXT) Vazifa query.sql — key|env|soni faqat 1 dan ortiq uchraganlar uchun (key, env tartibida) Muvaffaqiyat mezoni (jonli) Yakka yozuvlar chiqmaydi
database
SQL: har servisning OXIRGI deploy holati
Murakkabbolt+25 XP
Joriy manzara: har servisning ENG OXIRGI (eng katta build) deployi QANDAY holatda tugagan — status bilan birga! Baza deploys(svc TEXT, build INTEGER, status TEXT) Vazifa query.sql — window top-1-per-group bilan svc|build|status (svc tartibida) Muvaffaqiyat mezoni (jonli) Har servisdan bitta, aynan oxirgi buildning statusi
database
SQL: retention — 30 kundan eski backuplar
Murakkabbolt+25 XP
Saqlash siyosati: '2026-07-26' holatiga 30 KUNDAN ESKI backuplar o'chirish nomzodi — sana arifmetikasi bilan. Baza backups(name TEXT, created TEXT) Vazifa query.sql — julianday('2026-07-26') - julianday(created) 30 bo'lganlarni (nom tartibida) qaytarsin Muvaffaqiyat mezoni (jonli) Yangi backuplar ro'yxatga tushmaydi
database
SQL: node sig'imining band foizi (join+agregat)
Murakkabbolt+25 XP
Har node'da so'ralgan CPU jami uning SIG'IMIning necha foizini tashkil qiladi — scheduling hisoboti. Baza nodes(node TEXT, cpu total INTEGER) va pods(node TEXT, cpu req INTEGER) Vazifa query.sql — node|ROUND(100.0 SUM(cpu req)/cpu total,1) LEFT JOIN bilan (podsiz node 0.0), node tartibida Muvaffaqiyat mezoni (jonli) Podsiz node ham 0.0 bilan chiqadi
database
SQL: xarajat darajalari taqsimoti (CASE+GROUP)
Murakkabbolt+25 XP
Byudjet ko'rinishi: servislar high (cpu =500) va low darajalarga bo'linib, HAR DARAJADA nechtasi va jami CPU ko'rsatilsin. Baza services(name TEXT, cpu INTEGER) Vazifa query.sql — CASE bilan daraja hisoblab, daraja bo'yicha tier|soni|jami (tier tartibida) qaytarsin Muvaffaqiyat mezoni (jonli) Ikki daraja ham to'g'ri agregatlar bilan
database
SQL: bir qatorli salomatlik dashboardi
Murakkabbolt+25 XP
Tizim xulosasi BITTA qatorda: servislar soni, muhitlar soni, jami CPU, eng katta CPU — to'rt agregat birga. Baza services(name TEXT, env TEXT, cpu INTEGER) Vazifa query.sql — COUNT( )|COUNT(DISTINCT env)|SUM(cpu)|MAX(cpu) Muvaffaqiyat mezoni (jonli) To'rt ko'rsatkich bitta o'tishda
database
SQL: yetim disklar ro'yxati va jami hajmi
Murakkabbolt+25 XP
Xarajat auditi: hech qaysi serverga ULANMAGAN disklar ro'yxati va OXIRIDA ularning jami hajmi — bitta natijada. Baza volumes(name TEXT, size gb INTEGER, attached to TEXT) — NULL = ulanmagan Vazifa query.sql — ichki qatlamda ikki tarmoq UNION ALL (ro'yxat srt=0, jami-qator srt=1 tartib-ustuni bilan), tashqi SELECT ORDER BY srt, name bilan nom|hajm qaytarsin (jami qatori: jami| ) Muvaffaqiyat mezoni (jonli) Ro'yxat alifboda, jami qatori eng oxirida