Databek: ETL Journey (part 2) — Job Aggregator
Ma’lumotlar muhandisi (Data Engineer) sifatida sizning asosiy vazifangiz — xom ma’lumotni “so’zlashga” majbur qilishdir. Databek…
Databek: ETL Journey (part 2) — Job Aggregator
Ma’lumotlar muhandisi (Data Engineer) sifatida sizning asosiy vazifangiz — xom ma’lumotni “so’zlashga” majbur qilishdir. Databek seriyasining navbatdagi qismida biz O’zbekistondagi real keys — Job Aggregator saytning ETL quvurini quramiz.

📁 Ma’lumotlar bilan tanishuv
Sizda ish bozori tahlili uchun mo’ljallangan bir nechta CSV fayllar bor. Ularda vakansiyalar, kompaniyalar, talab qilinadigan ko’nikmalar (skills) va manzillar jamlangan.
📥 Topshiriq uchun kerakli ma’lumotlar: jobgram_org_2025
Lekin muammo shundaki:
- Tarqoqlik: Ma’lumotlar bitta faylda emas. Masalan, ish nomi bitta faylda (
jobs.csv), u qayerdaligi esa boshqa faylda (job_locations.csv). Ularni bog'lamasdan turib umumiy rasmni ko'rib bo'lmaydi. - Maoshlar chalkashligi: Maosh ustunida ba’zan “10 000 000”, ba’zan esa “Kelishiladi” yoki bo’sh joy bo’lishi mumkin. Bu ma’lumotlar ustida matematik hisob-kitob (o’rtacha maoshni topish kabi) qilib bo’lmaydi.
- Ko’nikmalar (Skills): Talablar ustunida texnologiyalar bitta qatorda (“Python, SQL, Power BI”) yozilgan. Bizga esa har bir ko’nikma bo’yicha alohida tahlil kerak.
🛠 Topshiriq 1: “Relatsion ETL va Ma’lumotlar Sifati”
Bu topshiriqning maqsadi — tarqoq CSV fayllarni yagona, tozalangan va bog’langan ma’lumotlar omboriga (Data Warehouse) aylantirish.
Texnik talablar:
- Extract: Barcha CSV fayllarni (jobs, skills, locations, occupations) Python’da yuklang.
- Transform (Data Cleaning & Enrichment):
- Maoshni standartlash:
jobs.csvdagi maoshlar har xil valyutada bo'lishi mumkin. Ularni yagona valyutaga (masalan, so'mga) o'tkazing. Agar maosh ko'rsatilmagan bo'lsa, uni o'sha sohaning o'rtacha maoshi bilan to'ldiring (Imputation). - Skills Split:
requirement_skills.csvdagi ko'nikmalarni (masalan, "Python, SQL, Java") alohida qatorlarga ajrating (Normalizatsiya). - Data Validation: Sana formatlarini (
created_at) standartYYYY-MM-DDko'rinishiga keltiring. - Load: Ma’lumotlarni Azure SQL yoki PostgreSQL bazasida quyidagi Star Schema asosida yuklang:
fact_jobs(asosiy faktlar jadvali),dim_locations,dim_occupations,dim_skills(o'lchov jadvallari)
📊 Topshiriq 2: “Biznes Savollar” (SQL Tahlil)
Ma’lumotlar bazaga to’g’ri tushgandan so’ng, bola biznes-tahlilchi rolida quyidagi savollarga SQL orqali javob topishi kerak:
- Eng talabgir ko’nikmalar: O’zbekiston IT bozorida (yoki tanlangan sohada) eng ko’p so’ralayotgan top-5 ko’nikma (skills) qaysilar?
- Hududiy maoshlar farqi: Toshkent shahri bilan viloyatlar o’rtasidagi o’rtacha maosh farqi necha foiz? Qaysi viloyatda vakansiyalar soni o’sishi eng yuqori?
- “Oltin” kasblar: Qaysi
occupation(kasb) turi bo'yicha eng kam vakansiya bor, lekin maosh eng baland? (Kadrlar yetishmovchiligi tahlili). - Kompaniyalar faolligi: Qaysi
channels(kanallar) orqali eng sifatli vakansiyalar (yuqori maoshli va talablari aniq) e'lon qilinmoqda? - Qo’shimcha: Yana qo’shimcha tahlilar olib boring.
📚 Manbalar va Ma’lumotlar Shaffofligi (Disclaimer)
Ushbu amaliy topshiriqlar va o‘quv metodikasi quyidagi asoslarga tayangan holda shakllantirildi:
- Ma’lumotlar manbasi: Loyihada ishlatilgan barcha ma’lumotlar jobgram.org sayti orqali taqdim etilgan ochiq ma’lumotlar (Open Data) hisoblanadi.
- Maqsad: Ushbu materiallar hech qanday mualliflik da’vosisiz, shunchaki o’zbekistonlik yosh data muhandislariga real keyslar ustida bilim ulashish va amaliy tajriba orttirish maqsadida tayyorlandi.
👉 Loyiha materiallarini yuklab olish va muhokamalarda qatnashish uchun Telegram kanalimizga obuna bo’ling: @Databek
Databek #ETL #DataEngineering #OpenData #Uzbekistan #Week1 #LearningData
메타데이터
- post_id
- fe0b115a29cd
- slug
- databek-etl-journey-part-2-job-aggregator-fe0b115a29cd
- url
- https://medium.com/@mensenvau/databek-etl-journey-part-2-job-aggregator-fe0b115a29cd
- canonical_url
- https://medium.com/@mensenvau/databek-etl-journey-part-2-job-aggregator-fe0b115a29cd
- author_url
- https://medium.com/@mensenvau
- status
- ok
- fetched_at
- 2026-07-14 01:30:36