# Real Vaqt Ma'lumotlarini Qayta Ishlash Arxitekturasi
Real Vaqt Ma'lumotlarini Qayta Ishlash Nima va Nima Uchun Muhim?
Real vaqt ma'lumotlarini qayta ishlash — ma'lumotlar yaratilgan zahoti yoki bir necha millisekund ichida ularni qayta ishlash, tahlil qilish va zarur choralar ko'rish jarayonidir. An'anaviy batch (ommaviy) qayta ishlashdan farqli o'laroq, real vaqt tizimlari uzluksiz ma'lumotlar oqimida ishlaydi.
Kleppmann (2017) bu o'zgarishni shunday izohlaydi: zamonaviy tizimlar ma'lumotlarni nafaqat saqlash, balki uni doimo harakatdagi "daryo" sifatida boshqarish majburiyatini olgan. Qaror qabul qilish tezligi ma'lumotning o'zi kabi muhimdir — firibgarlikni aniqlash tranzaksiya tugaguniga qadar amalga oshirilishi kerak.
Asosiy qo'llanish sohalari:
- Moliyaviy xizmatlar: Tezkor firibgarlikni aniqlash
- E-tijorat: Shaxsiylashtirilgan tavsiya tizimlari
- Telekommunikatsiya: Tarmoq anomaliyalarini aniqlash
- Ishlab chiqarish: Bashoratli texnik xizmat ko'rsatish
Apache Kafka Nima va U Qanday Ishlaydi?
Apache Kafka — LinkedIn'da yaratilgan va 2011 yilda ochiq manba sifatida chiqarilgan taqsimlangan voqealar oqimi platformasi. Kreps va boshqalar (2011) Kafka'ning asosiy xususiyatini shunday ta'riflaydi: an'anaviy xabar navbatlaridan farqli ravishda, Kafka taqsimlangan commit log sifatida ishlaydi — xabarlar o'qilgandan keyin o'chirilmaydi, sozlangan muddat davomida diskda saqlanadi.
Asosiy arxitektura komponentlari:
Broker: Kafka klasteridagi har bir server broker hisoblanadi. Brokerlar xabarlarni qabul qiladi, saqlaydi va iste'molchilarga yetkazadi.
Topic: Xabarlar kategoriyalangan mantiqiy birlik. Har bir topic gorizontal miqyoslilik uchun bir nechta partition'larga bo'linadi.
Partition: Har bir partition tartibli va o'zgarmas log hisoblanadi. Partition'lar turli brokerlarga tarqatiladi — bu ham yuk balansi, ham xatolarga chidamlilikni ta'minlaydi.
Consumer Group: Bir xil topic'ni parallel o'qiyotgan iste'molchilar guruhi. Har bir partition guruh ichida faqat bitta iste'molchi tomonidan o'qiladi.
KRaft rejimi: Kafka 3.x bilan KRaft (Kafka Raft) rejimi ZooKeeper bog'liqligini yo'q qildi.
Kafka yuqori unumdorligiga ketma-ket disk I/O, sendfile tizim chaqiruvi orqali nol-nusxa ma'lumot uzatish va ommaviy xabar siqish orqali erishiladi.
Stream Processing va Batch Processing O'rtasidagi Farq Nima?
Batch processing ma'lumotlarni vaqt oralig'ida to'playdi va cheklangan to'plam sifatida davriy ravishda qayta ishlaydi. Asosiy kamchilik — kechikish: natijalar soatlar keyin paydo bo'ladi.
Stream processing ma'lumotlarni cheksiz voqealar ketma-ketligi sifatida ko'rib chiqadi va har bir voqeani kelishi bilan qayta ishlaydi. Kechikish millisekundalargacha tushadi. Akidau va boshqalar (2015) uch asosiy muammoni aniqlaydi: tartibsiz voqealar, voqea vaqti va qayta ishlash vaqti farqi va exactly-once semantics kafolati.
Carbone va boshqalar (2015) Apache Flink'ni yagona dvigatel sifatida taqdim etadi: batch cheksiz bo'lmagan oqim sifatida modellanadi, shuning uchun bitta API ikkala ish yukini ham boshqaradi.
| Xususiyat | Batch | Stream |
|---|---|---|
| Kechikish | Daqiqalar-soatlar | Millisekunda-sekundlar |
| Ma'lumot modeli | Cheklangan | Cheksiz |
| Xatolikdan tiklash | Ishni qayta ishga tushirish | Checkpoint + replay |
| Qo'llanish | Hisobot, ETL | Ogohlantirish, monitoring |
Lambda va Kappa Arxitekturalari Nima?
Lambda Arxitekturasi Marz va Warren (2015) tomonidan rasmiylashtirilgan bo'lib, batch aniqligi va stream kechikishi o'rtasidagi keskinlikni ikkisini parallel ishlatish orqali hal qiladi:
- Batch Layer: Barcha xom ma'lumotlarni o'zgarmas saqlaydi va davriy batch ko'rinishlarini hisoblaydi.
- Speed Layer: Faqat so'nggi ma'lumotlarni qayta ishlaydi, past kechikishli inkremental ko'rinishlar hosil qiladi.
- Serving Layer: Batch va speed ko'rinishlarini birlashtiradi.
Lambda'ning asosiy zaif tomoni — kod takrorlanishi: bir xil biznes mantiq ikkita alohida tizimda amalga oshirilishi kerak.
Kappa Arxitekturasi Jay Kreps tomonidan 2014 yilda taklif qilingan — batch qatlamini butunlay yo'q qiladi. Asosiy g'oya: hamma narsa oqimdir. Bitta kod bazasi ham real vaqt, ham tarixiy qayta ishlashni boshqaradi. Kleppmann (2017) Kappa'ning amalga oshirilishi Kafka'ning saqlash sig'imiga ko'p bog'liqligini ta'kidlaydi.
Operatsion Razvedkada Real Vaqt Qayta Ishlash Qanday Qo'llaniladi?
Operatsion razvedka (OI) joriy biznes jarayonlarini kuzatish, tushunish va yaxshilash uchun real vaqt tahlilidan foydalanadi.
Ishlab chiqarish darajasidagi OI arxitekturasi:
Qabul qilish qatlami: Manba tizimlar Kafka Producer API'lari orqali voqealarni yozadi. Confluent Schema Registry va Apache Avro bilan sxema boshqaruvi ishlab chiqaruvchi-iste'molchi muvofiqligini ta'minlaydi.
Stream qayta ishlash qatlami: Flink yoki Kafka Streams ishlar biznes mantig'ini amalga oshiradi: filtrlash, oynali agregatsiyalar, oqimlarni birlashtirish va anomaliyalarni aniqlash.
Xizmat qatlami: Qayta ishlangan natijalar past kechikishli omborlarga yoziladi — vaqt qatori so'rovlari uchun Apache Druid yoki InfluxDB, kalit-qiymat qidiruvlari uchun Redis.
Vizualizatsiya qatlami: Real vaqt boshqaruv panellari WebSocket yoki Server-Sent Events (SSE) orqali yangilanadi.
Akidau va boshqalar (2015) tasvirlagan watermark mexanizmi muhim: u tizimga ba'zi voqealar kech kelganda ham oynali hisob-kitoblarni yakunlashga imkon beradi.
Manbalar
- Kreps, J., Narkhede, N., & Rao, J. (2011). *Kafka: a Distributed Messaging System for Log Processing*. NetDB Workshop at VLDB.
- Carbone, P., et al. (2015). *Apache Flink: Stream and Batch Processing in a Single Engine*. IEEE Data Engineering Bulletin, 38(4), 28–38.
- Marz, N., & Warren, J. (2015). *Big Data: Principles and Best Practices of Scalable Real-Time Data Systems*. Manning Publications.
- Kleppmann, M. (2017). *Designing Data-Intensive Applications*. O'Reilly Media.
- Akidau, T., et al. (2015). *The Dataflow Model*. Proceedings of the VLDB Endowment, 8(12), 1792–1803.
Ko'p So'raladigan Savollar
Real vaqt qayta ishlash uchun minimal infratuzilma talabi nima? Kichik yuklamalar uchun bitta tugunli Kafka va Kafka Streams yetarli. Sekundiga 100,000 dan ortiq xabar qayta ishlash kerak bo'lsa, kamida 3 ta brokerli Kafka klasteri va alohida stream qayta ishlash tugunlari tavsiya etiladi.
Kappa va Lambda arxitekturasi o'rtasida qanday tanlov qilish kerak? Mavjud batch infratuzilmasi bo'lmasa va bitta kod bazasi kerak bo'lsa Kappa'ni tanlang. Mavjud Hadoop-asosli ma'lumotlar ombori bilan integratsiya talab qilinsa Lambda'ni tanlang.
Exactly-once semantics amalda nima degani? Har bir voqea ishlov berilishini va uning ta'siri downstream tizimlarga aynan bir marta yozilishini kafolatlaydi, hatto qayta ishlash tugunida nosozlik yuz bersa ham.
Watermarklar kech kelgan voqealarni qanday boshqaradi? Watermark vaqt tasdig'idir: "T vaqtgacha bo'lgan barcha voqealar keldi." Tizim oynali hisob-kitoblarni boshlash uchun watermarklardan foydalanadi. Kech kelgan voqealar ruxsat etilgan kechikish oynasi orqali qo'shilishi yoki alohida qayta ishlash uchun side output'ga yo'naltirilishi mumkin.