Storytelling with Data
132 subscribers
9 photos
2 links
Download Telegram
from airflow.providers.cncf.kubernetes.operators.kubernetes_pod import KubernetesPodOperator
train = KubernetesPodOperator(
task_id='train_model',
name='train-model-{{ ds_nodash }}',
namespace='airflow',
image='myrepo/ml-train:1.0.0',
cmds=['python', 'train.py'],
arguments=['--epochs', '20'],
resources={'request_memory': '2Gi', 'request_cpu': '1000m'},
get_logs=True,
is_delete_operator_pod=True
)
❤2
Loading – bu malumotlarni source dan target (odatda data warehouse yoki operational database) ga yuklash jarayoni.
1.Full Load
Har safar pipeline ishlaganda butun boshli jadvalni tozalab, barcha malumotlarni toliq qaytadan yuklaymiz.
Target database dagi malumotni ochiradi va qayta yuklaydi har safar(TRUNCATE yoki DELETE)
Yangi malumotlarning hammasini qayta yuklaydi

TRUNCATE TABLE customers;
INSERT INTO customers
SELECT * FROM staging.customers;

2.Incremental Load

Faqat yangi qoshilgan yoki ozgargan rowslar yuklanadi.
Oxirgi yuklangan timestamp (yoki ID) ni saqlab qoladi.Odatda timestamp bn ishlaydi
Faqat yangi (created_at) yoki ozgargan (updated_at) malumotlarni yuklaydi


-- Oxirgi yuklangan sana saqlanadi
SELECT * FROM source_table
WHERE updated_at > '2025-04-27 23:59:59';


3.Delta Load (Change Data Capture - CDC)

Faqat haqiqatan ozgargan, yangi qoshilgan, ochirilgan yozuvlarni aniqlab yuklash.
har bir table da insert update delete larni kuzatib turadi.

OLTP (operational) database dan real-time replikatsiya qilinganda
No-SQL yoki Message queue bilan integratsiyada

Source Database -> Change Logs -> Kafka -> Sink Database
misol structure shunaqa formatda boladi.

4.Streaming Load

data lar real-time yoki kichik intervalda (micro-batch) doimiy yuklanib turadi.



from pyspark.sql import SparkSession

spark = SparkSession.builder.appName("streaming_app").getOrCreate()
df = spark.readStream.format("kafka").option("kafka.bootstrap.servers", "localhost:9092").option("subscribe", "topic_name").load()
🔥3🤯2❤1
PostgreSQL (Source) -> TRUNCATE (old table) -> Load all rows → MS SQL (Target)



from airflow import DAG
from airflow.providers.postgres.operators.postgres import PostgresOperator
from airflow.providers.microsoft.mssql.operators.mssql import MsSqlOperator
from datetime import datetime

with DAG(dag_id="full_load_customers",
start_date=datetime(2024, 1, 1),
schedule_interval="@daily",
catchup=False) as dag:

truncate_target_table = MsSqlOperator(
task_id='truncate_target_table',
mssql_conn_id='mssql_target',
sql="TRUNCATE TABLE customers;"
)

load_full_data = PostgresOperator(
task_id='load_full_data',
postgres_conn_id='postgres_source',
sql="""
INSERT INTO mssql_target.dbo.customers
SELECT * FROM postgres_source.public.customers;
"""
)

truncate_target_table >> load_full_data
🔥1
Forwarded from murodalidev /> (Murodali)
Pythonic nima degani?

Kop joylarda bu so'zni uchratamiz lekin kop e'tiborimizni qaratmaymiz shu haqida qisqacha gapirib bermoqchiman.

"Pythonic" — bu Python tilining ruhiga mos, chiroyli, toza va samarali tarzda yozilgan kod degani. Ya’ni, Python tilining falsafasiga mos keladigan uslubda kod yozish. O'qilishi oson, tabiiy, qisqa, lekin kuchli kod.

Life is short, use Python.

ps: Kodlaringiz doim Pythonic bo'lsin

@murodalidev ✅
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
Forwarded from Thoughts and Knowledge
NoSQL so'zi qanday kelib chiqanini bilasizmi?

NoSQL birinchi Marta twitterdagi hashtag sifatida 2010 yilda foydalanilgan #NoSQL yani u paytda SQL databaza sifatida dominantlik qilib kelgan va SQLga yo'q deymiz degan manoda yozilgan . Ammo u keyinchali o'zgartirilib yani Not Only SQL deb kengaytirilgan va hozirda shu manoda qo'llanilib kelinadi.
❤5
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤2👏2
Python da context managerni with kalit sozi bilan ishlatilishidan tanib olsa boladi.
U resurslarni ikkita metod yordamida boshqaradi: __enter__() — resurslarni ishga tayyorlash uchun, __exit__() esa ularni boshatish yoki yopish uchun ishlatiladi.

Context manager xatolik yuz berganda ham resurslar xavfsiz boshqarilishini taminlaydi va odatda fayllar, thread lar yoki malumotlar bazasi ulanishlarini boshqarishda qollaniladi
👍7🔥1
Even though the term big is used in big data, it’s not just about the size of
the data. It’s also about all the data, big or small, within your company and
all the data outside your company that would be helpful to you. The data
can be in any format and can be collected with any degree of regularity.
So the best way to define big data is to think of it as all data,
no matter its size (volume), speed (velocity), or type (variety). In addition to those criteria,
there are three more factors you can use to describe data: veracity,
variability, and value. Together, they’re commonly known as the “six Vs” of
big data
🔥6❤4🏆2
Data Maturity
❤4🔥3👍2⚡1
Modern data warehouse
🔥6👍3⚡1
DuckDB 2.0

Async I/O: S3 dan o’qish 2–3 barobar tezlashdi
Oldin har bir thread navbatma-navbat ishlardi: avval ma’lumotni yuklab olardi, keyin decode qilardi. Natijada CPU tarmoqni kutib bo’sh turardi.

Endi alohida pool row group’larni oldindan tortib qo’yadi, worker’lar esa faqat decode bilan band. 2,2 GB Parquet ustidagi query: 18,8 s → 7,7 s. Default holatda yoqilgan, kodga tegish shart emas (read_ahead_depth). Lekin 1 MB lik minglab mayda fayllaringiz bo’lsa, bu yordam bermaydi, asos baribir to’g’ri qurilgan bo’lishi kerak.

Rekursiv CTE: chuqur ierarxiyalar endi uchib ishlaydi
Oldin rekursiyaning har bir qadamida jadval boshidan oxirigacha qayta o’qilardi. Endi u bir marta o’qiladi, keyin faqat kerakli joylardan lookup qilinadi.

20 000 ta commit’lik tarixni aylanib chiqish oldin 1,8–16 soniya olardi, endi 0,1 soniya. Git tarixi, lineage, thread’lar va BOM uchun ayni muddao. Oddiy, sayoz org-strukturada esa farqni deyarli sezmaysiz.

JSON o’rniga VARIANT
Strukturasi o’zgarmaydigan JSON field’lar avtomatik ravishda alohida kolonkalarga ajratiladi (shredding), qolgani esa binary ko’rinishda saqlanadi.

Natija: JSON string’ga qaraganda 2,7 barobar kam joy, filterlar esa ~6 barobar tez, deyarli oddiy typed kolonkalardek.

Bitta nyuans bor: list larni cast qilish hozircha sekin, bazida son, bazida string bo’lib keladigan field esa kolonkaga ajratilmaydi.
🔥4❤3