Storytelling with Data
132 subscribers
9 photos
2 links
Download Telegram
Channel created
I really liked the book "Storytelling with data" by Cole Nussbaumer Knaflic.

It describes a good basis for working with diagrams and conveying a clear message to the user of the visualization. And my favorite sequential 'cleansing' of charts from bad to good.

I highly recommend it to anyone who is somehow faced with data presentation.

Cole and her team also have a website and blog where you can read a lot of interesting things and participate in datavis challenges. I would like to especially mention the charming drawings accompanying this project.

For example, such useful tips on using visualizations.
Assalomu alaykum Hammaga!
Endilikda bu kanalimizni yuritishga urg'u bergan holatda O'zbek va english tillarida kontentlar berib borishga harakat qilaman.
Nega o'zbek tilida?
sababi O'zbek tilida Data engineer/analyt haqida umuman olganda kontent deyarli yoq deb o'ylayman bor bo'lsa ham xabarim yo'q shu uchun asosan o'zbek tilida yuritishga harakat qilaman.
👍4
Biz birgalikda data engineer ga kerak bo'ladigan tool larni o'rganishga harakat qilamiz
👍4
SQL yokida Python dan emas Airflow dan boshlaymiz!
Apache Airflow data jarayonlarini boshqarish, kuzatish va kengaytirish uchun tool sifatida qarasak bo'ladi.
Apache Airflowning asosiy tarkibiy qismlari:

1.Web server (Veb server):
Bu Airflowning foydalanuvchi interfeysi (UI) bo‘lib, veb-brauzer orqali jarayonlarni boshqarish va kuzatish imkonini beradi.

2.Scheduler (Rejalashtiruvchi):
Vazifalarning qachon bajarilishini aniqlaydi va ularning to‘g‘ri tartibda bajarilishini ta'minlaydi.

3.Meta database (Meta ma'lumotlar bazasi):
Bu baza barcha vazifalar va ularning holati haqida ma'lumot saqlaydi.

4.Trigger (Trigger):
Tashqi hodisalarga bog‘liq bo‘lgan vazifalarni boshqaradi va boshqa jarayonlarni bloklamasdan ishlashni ta'minlaydi.

5.Executor (Ijrochi):
Vazifalarni qanday bajarilishini va qaysi tizimda ishlashini aniqlaydi.

6.Queue (Navbat):
Bajarilishi kerak bo‘lgan vazifalar ro‘yxati. Vazifalar tartibda bajarilishini boshqaradi.

7.Worker (Ishchi):
Bu vazifalarni amalda bajaruvchi jarayon.

Bu komponentlar bir-birini to‘ldirib, Airflowning to‘liq ishlashini ta'minlaydi.
👍3
Airflow quyidagilar uchun mos emas, imkoni bor lekin juda murakkab bo'ladi va juda ehtiyot bo'lish kerak bo'ladi:

Katta hajmdagi ma'lumotlarni to‘g‘ridan-to‘g‘ri qayta ishlash.
Real vaqtli oqimlarni boshqarish.
Juda yuqori chastotali (soniyalar ichida) vazifalar.
Juda sodda ish jarayonlari.

chunki yuqoridagilar uchun Apache tomonidan Spark, Hive, Nifi kabi tool lar ishlab chiqarilgan ularni ham sekin asta o'rganamiz!
Airflow Architectures

Single Node Architectures vs Multi-node Architectures

Single Node Architectures -> bu arxitekturada Airflow ning barcha komponentlari bitta kompyuterda yoki bitta serverda ishlaydi.Bunda oddiy usulda qollaniladigan arxitekturadir.


Multi-node Architectures -> bu arxitektura Airflow ni bir nechta kompyuter yokida serverlarda ishlatilinadi.
👍1
Executor -> bu task bajarmaydi!

nomiga qaramasdan, u tasklarni togridan togri ishlatish uchun ishlamaydi.

U tasklarni qaysi tizimda qanday bajarilishini aniqlaydi.

Turlari 3 xil.
1.Local Executor:
2.sequential executors
3.remote executors(celery, kubernetes executor)
Ma'lumotlar orkestratsiyasi - bu turli tizimlar va jarayonlar bo'ylab ma'lumotlarning harakatlanishini, o'zgarishini va integratsiyasini muvofiqlashtirish va avtomatlashtirish jarayoni bo'lib, samarali va ishonchli ma'lumotlar ish oqimini ta'minlaydi.
Streaming: Airflow real vaqt rejimini qo‘llab-quvvatlamaydi. Uni batch oriented pipeline’lar uchun ishlating.
Data Processing: Ma'lumotlarni qayta ishlashda ehtiyot bo‘ling; resurslar yetarli ekanligini tekshiring yoki tashqi vositalardan (Masalan SPARK )foydalaning.
max_active_runs:
Faqat bitta DAG Run ishlaydi.
Yangu DAG Rn faqat oldingisi tugagandan keyin boshlanadi.

max_active_runs_per_dag:
Agar barcha Daglar uchun cheklash kiritish kerak bolsa
Bugun Spark haqida gaplashamiz biroz:

Spark'ning ikki xil bajarilish rejimi (execution mode) bor:

Client Mode – ishga tushiruvchi mijoz (client) jarayoni o‘zining lokal mashinasida ishlaydi.
Cluster Mode – ishga tushiruvchi jarayon Spark klasterining o‘zida bajariladi.

Lekin uchta asosiy ish modeli (execution model) bor:

Local Mode – mahalliy kompyuterda ishlash uchun.
Client Mode – YARN klasterida, lekin mijozning terminal yoki Notebook orqali boshqarishi.
Cluster Mode – YARN yoki boshqa klaster menejerda to‘liq avtonom ishga tushirish.

Bu tushunchalar Spark arxitekturasi va bajarilish jarayonini tushunish uchun muhim. Agar chuqurroq tushuntirish kerak bo‘lsa, bemalol so‘rang via tg! 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
Cluster Managers turlari:
1. Local[n]
2.YARN
3.Kubernetes
4.Mesos
5.Standalone

Execution Modes:
1. Client
2. Cluster


Execution tools:
1.IDE, Notebook
2. Submit
Spark DataFrame o‘zgarmas (immutable) malumotlar tuzilmasi.
Immutable -> ozgarmas degani
biz ozgarish qilganda eskisidan foydalanib yangi dataframe yaratamiz!
Biz driver ga qanaqa ozgartirish qilmoqchi ekanligimizni yokida dataframe (df )dan nima olmoqchi ekanligimizni aytamiz bular transformations deb ataladi.
Va ushbu transformatsiyalar oddiy SQL operatsiyalari kabi bo‘lishi mumkin. yokida Pyspark orqali ikki xil yoli mavjud.
example:
select(), filter(), va groupBy().
Xop Spark ozi aslida qanaqa tartibda ishlaydi.

Biz malumotlarni store qilganda 10 ta cluster ga yuklab qoymoqdamiz lekin aslida dataframe miz ni ozi 100 ta bolaklarga bolinib store boladi.
va bularni har biri kichik dataframe shaklida qabul qilsak boladi.

Endi biz transformatsiya qilganimizda ham har bir df ni alohida transformatsiya qilish imkonimiz bor.
Bularning barchasi bitta SparkSession obyektida ketadi.
Aslida biz SparkSession ni bosqichma bosqich yaratish uchun builder patterndan foydalanamiz.
keyin esa hammasini bir biriga boglamasdan oraliq ozgaruvchilarga olib bosqichlarga bolib transformatsiya qilishimiz mumkin alohida dataframe larga!
❤1
SPARK malumotlarini qayta ishlash asosan operatsiyalarin DAG (Directed Acyclic Graph) yaratish haqida.

Spark dasturlarida asosan dag yaratamiz.
Transformations and Actions

Transformations bitta dataframe ni boshqasiga ozgartirish uchun ishlatiladi va asl dataframe ozgarmaydi.
example: where() transformatsiyasi bunda u kirish df da ishlaydi va chiqish df yaratadi.
birinchi df ozgarishsiz qoladi.
shuning uchun spark da df ozgarishsiz qoladi.


endi Transformations ozi ham ikkiga bolinadi:
1.Narrow dependency transformation(Tor boglikdagi transformatsiya)
2.Wide dependency transformation(keng boglikdagi transformatsiya)


1.Narrow dependency transformation ->Agarda biz transformatsiyani alohida bolak yani partition ustida bajarilsa va natijaga tasir qilmasa bu Narrow dependency transformation hisoblanadi.
example: where() transformatsiyasi tor boglikdagi transformatsiya hisoblanadi.


2.Wide dependency transformation -> Agar transformatsiya boshqa bolaklardan malumotlarni talab qilsa, bu keng boglikdagi transformatsiya hisoblanadi.
example: groupBy() transformatsiyasi.

endi deylik hozir group nega bogliq mustaqil deb oyladingiz men ham birinchi marta shunaqa oylaganman 😁😁

keling misol koramiz:

Ikki df ni bolaklarga boldik va biz groupBy() transformatsiyasini qolladik va ichidagi yozuvlar sonini aniqladik.Spark nima qiladi har bir alohida bolakga groupBy() qiladi va yangi df yaratishi mumkin.

Ammo natijalar birlashganda nima boladi umumiylik yoqoladi va togri umumiy natija chiqmaydi.

Demak, groupBy() bolaklarning mustaqilligini buzadi.

shuning uchun ham groupBy() keng bogliqlikdagi transformatsiya hisoblanadi.
xop qanaqa qilamiz unda desak:


REPARTITIONING orqali tuzatish mumkin.

Yani barcha bolaklarni birlashtirib, malum guruhlarning barcha yozuvlarini bir xil bolakka joylashtiramiz.

Bu Jarayon esa Shuffle va sort operatsiyalari deyiladi.

keyin esa biz count() orqali sanab qoyamiz.boldi!
Please open Telegram to view this post
VIEW IN TELEGRAM