مهندسی داده
840 subscribers
112 photos
8 videos
24 files
327 links
BigData.ir کانال رسمی وب سایت
مطالبی راجع به مهندسی داده و طراحی زیرساخت‌های پردازش دیتا و ابزارهای مدرن دیتا
ارتباط با ادمین: @smbanaei
گروه تخصصی مهندسی داده 👇
https://t.iss.one/bigdata_ir_discussions2
کانال یوتیوب 👇
https://www.youtube.com/@irbigdata
Download Telegram
چرا Iggy مهم است؟ بررسی یک پروژه Rust-محور در دنیای پردازش جریان

امروزه در بنیاد Apache مجموعه‌ای بزرگ از سامانه‌های پیام‌رسان و پردازش جریان داریم: از Kafka و Pulsar تا RocketMQ، ActiveMQ و حالا تازه‌ترین عضو این خانواده یعنی Apache Iggy.

بیایید ببینیم چرا پروژه‌های جدیدتر، به‌ویژه آن‌هایی که با Rust ساخته شده‌اند، اهمیت بیشتری پیدا کرده‌اند.

⚡️ موج جدید: سیستم‌هایی که با Rust بازنویسی می‌شوند

امروز بسیاری از سیستم‌های پردازش داده یا کاملاً با Rust نوشته می‌شوند یا بخش‌های کلیدی خود را برای بهبود کارایی با #Rust بازنویسی می‌کنند.

نمونه‌ها: Polars، DataFusion، Ballista و پروژه‌های نوین در حوزه AI. در همین مسیر، Apache Iggy یک عضو تازه و جاه‌طلب در اکوسیستم Apache است.


🚀 پروژه Apache Iggy؛ نسل جدید پیام‌رسان‌های سریع

اگر با Kafka، Flink یا RocketMQ کار کرده باشید، می‌دانید سیستم‌های پیام‌رسان چه نقش مهمی در جریان داده دارند. Iggy تازه‌ترین عضو این خانواده است؛ مدرن، سبک و ساخته‌شده با Rust.

🔄 چرا Iggy مهم شده؟

دنیا «جریانی» شده است:

💳 پرداخت آنلاین → جریان رویداد

🌡 اینترنت اشیاء یا IoT → جریان داده

🧠 هوش مصنوعی و AI → ورودی لحظه‌ای

⭐️ توصیه‌گرها → رفتار زنده کاربران

ابزارهای قدیمی‌تر (عمدتاً Java) قدرتمندند، اما همیشه برای تأخیر بسیار کم یا پرفورمنس شدیداً بالا مناسب نیستند؛ جایی که Rust و سپس Iggy وارد میدان می‌شوند.

🧩 پروژه Iggy دقیقا چیست؟

پیام‌رسانی فوق سریع، مینیمال و مدرن که می‌تواند میلیون‌ها پیام در ثانیه را با کمترین تأخیر مدیریت کند.

⭐️ مزیت‌های کلیدی Iggy

⚡️ سرعت بسیار بالا (io_uring + معماری هر هسته یک نخ)

⚡️ پایداری و قابلیت Replay

⚡️ چندزبانه (Rust، Go، Java، Python، Node.js، ...)

⚡️ امنیت داخلی (Auth، ACL، Encryption)

⚡️ آماده برای آینده (پروتکل MCP برای اتصال مستقیم به مدل‌های AI)


🏛 چرا وارد بنیاد Apache شد؟

⚡️ اعتماد و حاکمیت متن‌باز

⚡️ جامعه توسعه گسترده‌تر

⚡️ مسیر رشد پایدار برای امکانات سازمانی


🧭 جایگاه Iggy در کنار دیگر پیام‌رسان‌ها

کتابخانه Iggy یک پیام‌رسان نسل جدید و پلتفرم پردازش جریان است؛ یعنی دقیقاً در همان جایگاهی قرار می‌گیرد که ابزارهایی مانند Kafka و RabbitMQ سال‌ها بازیگران اصلی آن بوده‌اند.

اگر برای شما انتقال پیام با سرعت بسیار بالا در یک کلاستر توزیع‌شده اهمیت دارد و به دنبال سیستمی هستید که با طراحی مدرن ساخته شده و مفاهیمی مانند MCP و عامل‌های هوشمند (Intelligent Agents) را نیز در معماری خود لحاظ کرده باشد،


پروژه Iggy یک موتور تازه‌نفس و فوق‌العاده کارآمد برای چنین نیازهایی است.


🔄 می‌تواند جایگزین چه ابزارهایی باشد؟

🚀 کافکا→ برای سناریوهای سبک‌تر با نیاز به latency بسیار پایین

🐇 کتابخانه RabbitMQ → برای تحویل پیام سریع با معماری ساده‌تر

📩 پروژه قدیمی و کلاسیک ActiveMQ → جایگزین مدرن‌تر برای سناریوهای JMS‌ گونه

☁️ پروژه پیام‌‌رسان علی‌بابا : RocketMQ → در کاربردهای Cloud-native که ساختار ساده‌تری می‌خواهید



🏁 جمع‌بندی

ایگی Iggy تنها یک ابزار جدید نیست؛ نشانه‌ای از نسل تازه‌ای از سیستم‌های Real-time است. نسلی:

⚡️ سریع‌تر

🔐 ایمن‌تر

🤖 هماهنگ‌تر با AI

🔋 کم‌مصرف‌تر


اگر سیستم شما باید لحظه‌ای تصمیم بگیرد یا حجم عظیم داده را بدون وقفه منتقل کند، Iggy پروژه‌ای است که باید زیرنظر داشته باشید.


کانال مدرسه مهندسی داده سپهرام : @sepahram_school
👍41
چرا باید به Schema Registryهای متن‌باز فکر کنیم؟ نگاهی به Karapace

در Kafka، پیام‌ها به شکل بایت‌های سریال‌شده منتقل می‌شوند. تولیدکننده پیام را می‌فرستد و فرض می‌کند مصرف‌کننده می‌داند چگونه آن را دی‌سریالایز (بازخوانی) کند.
اما در پیاده‌سازی‌های واقعی:
✔️ چندین تیم روی یک کلاستر کار می‌کنند
✔️ سرویس‌ها مستقل منتشر و به‌روزرسانی می‌شوند
✔️ تغییرات اسکیما همیشه خطرناک‌اند
✔️ مصرف‌کننده‌ها ممکن است حتی بیرون از سازمان ساخته شده باشند

به همین دلیل، وجود یک Schema Registry مرکزی ضروری است تا:
🔰 مصرف‌کننده و تولیدکننده از هم جدا شوند (Decoupling)
🔰 نسخه‌بندی و تکامل اسکیما ایمن شود
🔰 سازگاری قبل از هر تغییر چک شود
🔰 جریان‌های داده قابل اعتماد و پایدار بمانند

چرا به دنبال جایگزین Confluent Schema Registry باشیم؟

اگرچه Confluent Schema Registry استاندارد رایج است، اما:
🔰 امکانات پیشرفته در نسخه‌های پولی
🔰 وابستگی شدید به Confluent Stack
🔰 استفاده از Kafka فقط به‌عنوان Backend
🔰 عدم وجود یک REST Proxy یکپارچه

به همین دلیل، بسیاری از تیم‌ها به‌دنبال گزینه‌های سبک‌تر، متن‌باز و بدون Vendor Lock-in هستند.

کتابخانه‌ Karapace : بهترین Drop-In Replacement سبک و کامل برای Kafka
کاراپیس Karapace یکی از محبوب‌ترین انتخاب‌هاست چون دقیقاً برای جایگزینی Confluent ساخته شده است،
بدون اینکه لازم باشد حتی یک خط کد را تغییر دهید.

🔥 چرا Karapace یک انتخاب حرفه‌ای است؟

✔️ یک Drop-in Replacement واقعی برای Schema Registry و Kafka REST Proxy

✔️ سازگاری کامل با APIها و کلاینت‌های Confluent

✔️ پشتیبانی از Avro، JSON Schema، Protobuf

✔️ معماری Async و بسیار سبک مبتنی بر aiohttp

✔️ مصرف حافظه پایین و استقرار ساده

✔️ امکان Leader/Replica برای HA و Load Balancing

✔️ قابلیت Observability کامل با Metrics و OpenTelemetry

✔️ استفاده از aiokafka (rdkafka) برای عملکرد بالا

✔️ و Schema Registry مبتنی بر FastAPI - سریع و مدرن


🔥 نتیجه: یک انتخاب ایده‌آل برای تیم‌هایی که می‌خواهند بدون دردسر از Confluent جدا شوند اما همان API و همان Behavior را داشته باشند.

گزینه دوم Apicurio Registry: با قابلیت‌های گسترده‌تر

اگر نیاز دارید علاوه بر پیام‌های Kafka، انواع API Spec و Artifact دیگر را هم مدیریت کنید، Apicurio انتخاب بهتری است:

✔️ پشتیبانی از Avro / Protobuf / JSON Schema و همچنین OpenAPI، AsyncAPI، GraphQL

✔️ قوانین قابل تنظیم برای اعتبار، سازگاری و تکامل اسکیما

✔️ پشتیبانی از ذخیره‌سازی روی Kafka یا دیتابیس‌هایی مثل PostgreSQL

✔️ حاوی یک استودیو برای طراحی API

🔰 نکته: Apicurio جایگزین یک‌به‌یک Confluent نیست و بیشتر یک API & Schema Registry چندمنظوره است.

جمع‌بندی

✔️ اگر هدف شما جایگزینی مستقیم Confluent Schema Registry + REST Proxy است → Karapace بهترین انتخاب شماست.

✔️ اگر می‌خواهید انواع مختلف Artifact و API Spec را در یک پلتفرم مدیریت کنید → Apicurio گزینه منعطف‌تری است.
👍7
وقتی حجم داده ورودی به ClickHouse بالا می‌رود، مشکل اصلی CPU نیست: Write Amplification است!
ترکیب Apache Flink به‌عنوان یک موتور پردازش جریانی Stateful و قابل اتکا و استفاده از درج زمان‌بندی‌شده (Batch Inserts) در ClickHouse می‌تواند به‌طرز چشمگیری عملکرد سیستم شما را متحول کند.

اگر با ClickHouse کار کرده باشید می‌دانید که هر INSERT یک Part جدید ایجاد می‌کند و این Partها پشت‌صحنه مرتب ادغام (Merge) می‌شوند.
بنابراین هرچه تعداد INSERT کمتر اما حجیم‌تر باشد، بار Merge-Tree کمتر شده و کارایی به شکل محسوسی افزایش می‌یابد.


در سناریوهای پرترافیک، نوشتن رکورد به‌ازای هر پیام، به‌معنای فشار شدید روی دیسک و CPU است. اینجاست که Flink در نقش یک موتور پردازش جریان + مدیریت State + تجمیع هوشمند وارد می‌شود

🔎 بیایید این پست لینکدین را با هم واکاوی کنیم

پست اصلی: https://www.linkedin.com/posts/vijay-vishnu-7ab184337_apacheflink-databaseoptimization-streamprocessing-activity-7398355140300349440-svd2

در این مثال، داده ورودی ۱ میلیون رویداد در ثانیه بوده و به‌جای اینکه هر رویداد یک INSERT باشد، نویسنده از Flink برای تجمیع یک‌دقیقه‌ای (Tumbling Window) استفاده کرده است. نتیجه؟
به‌جای ۶۰ میلیون INSERT در دقیقه، تنها ۶۰ هزار INSERT اتفاق می‌افتد — یعنی حدود ۹۹.۹٪ کاهش عملیات نوشتن!

🔥 چرا این معماری (Flink + ClickHouse) مؤثر است؟

۱) کاهش چشمگیر عملیات نوشتن
⚡️فلینک رویدادها را در پنجره‌های زمانی جمع و تبدیل به Batchهای بزرگ می‌کند.
⚡️این کار write amplification را کاهش داده و MergeTree را سبک می‌کند.

۲) صرفه‌جویی جدی در منابع پایگاه‌داده : وقتی تعداد INSERT کم شود

⚡️ فشار IO کم می‌شود
⚡️ کوئری‌های read سریع‌تر می‌شوند
⚡️ کلیک‌هوس ظرفیت بیشتری برای تحلیل دارد

۳) پایداری و اعتبار داده : Flink با checkpointing و exactly-once تضمین می‌کند

⚡️نه داده گم می‌شود
⚡️نه دوبار نوشته می‌شود
⚡️نه ترتیب بهم می‌ریزد

۴) زمان‌بندی و پنجره‌بندی هوشمند : پنجره‌های زمانی (مثلاً ۶۰ ثانیه‌ای):

⚡️داده را برای ذخیره‌سازی بهینه می‌کند
⚡️امکان محاسبه min/max/avg/count را فراهم می‌سازد
⚡️دیتابیس را سبک و گزارش‌ها را سریع می‌کند

۵) نگهداری داده خام در Object Storage : رویدادهای خام در S3 / MinIO ذخیره می‌شوند:

⚡️بدون فشار به ClickHouse
⚡️هر زمان لازم شد می‌توانیم Replay یا تحلیل تاریخی انجام دهیم

۶) مقیاس‌پذیری بالا با هزینه کمتر

وقتی نوشتن ۹۹٪ کاهش یابد:
⚡️تعداد نودهای ClickHouse کمتر می‌شود
⚡️هزینه‌ها کاهش می‌یابد
⚡️توان سیستم برای ترافیک بالاتر افزایش پیدا می‌کند

🧠 جمع‌بندی

اگر جریان ورود رخدادهای و داده‌های شما سنگین است و ClickHouse با «Partهای زیاد» مشکل دارد، بهترین کار این است که:

🔰خام را در object storage نگه دارید (یا لیک‌هوس)
🔰تجمیع‌شده را در ClickHouse بنویسید
🔰 با Flink پنجره‌بندی و Stateful Aggregation انجام دهید
👍5
پیشنهاد ویژه Black Friday – مدرسه مهندسی داده سپهرام

به مناسبت Black Friday، امکان استفاده از ۴۰٪ تخفیف برای تمامی دوره‌های مدرسه مهندسی داده سپهرام فراهم شده است.

تنها کافی است هنگام خرید دوره، کد BLK1404 را وارد کنید.


در این کمپین، تمام دوره‌ها شامل این تخفیف می‌شوند:

🔰مبانی مهندسی داده

🔰 آپاچی کافکا

🔰آپاچی اسپارک ( از این هفته شروع می‌شود)

🔰 آپاچی ایرفلو

🔰 پستگرس

🔰 کلیک‌هوس

فهرست تمامی دوره‌ها:
https://sepahram.ir/courses/

اگر قصد ارتقای مهارت‌های فنی، ورود به دنیای مهندسی داده یا رشد شغلی دارید، این فرصت را از دست ندهید.

اعتبار: محدود و ویژه Black Friday (تا دهم آذرماه)

🎟 کد تخفیف: BLK1404

برای اطلاعات بیشتر و ثبت‌نام: https://t.iss.one/sepahram_ir
👍21
آغاز رسمی دوره جامع آموزش Apache Spark – مدرسه مهندسی داده سپهرام

با افتخار اعلام می‌کنیم که دوره تخصصی Spark Deep Dive رسماً آغاز شد!

این دوره برای مهندسان داده، تحلیل‌گران، علاقه‌مندان دنیای پردازش توزیع‌شده و تمام کسانی طراحی شده که می‌خواهند در مسیر حرفه‌ای کار با داده‌های حجیم، یک گام بزرگ به جلو بردارند.

برای اینکه با حال و هوای دوره آشنا شوید، جلسه اول دوره به صورت کامل و رایگان در اختیار همه علاقه‌مندان قرار گرفته است.

کافی است روی لینک زیر کلیک کنید و محتوای جلسه را مشاهده کنید:

👉 جلسه اول دوره آموزشی اسپارک

📌 محتوای جلسه اول – «آشنایی با مفاهیم پایه و شروع عملی با اسپارک»

در این جلسه مقدماتی، مفاهیم کلیدی زیر را به‌صورت ساده، دقیق و کاربردی مرور می‌کنیم:

🔰 مروری بر Apache Spark و جایگاه آن در معماری‌های نوین داده

🔰 آشنایی با معماری و مفاهیم پایه اسپارک (به همراه ویدئوی آموزشی)

🔰 معرفی موتورهای بهینه‌سازی Catalyst و Tungsten

🔰 مروری بر امکانات کلیدی در Spark 3 و Spark 4

🔰 معرفی RDDها، ترنسفورمیشن‌ها و اکشن‌های رایج (به همراه ویدئو)

🔰 نصب و راه‌اندازی Spark 4 به کمک Jupyter Notebook و PySpark


🎓 این جلسه، نقطه شروع مسیر شما برای ورود به دنیای پردازش توزیع‌شده است.

در ادامه دوره، گام‌به‌گام وارد مباحث عملی، معماری عمیق، پردازش‌های پیچیده، بهینه‌سازی و انجام پروژه‌های واقعی خواهیم شد.

اگر در مسیر نصب، راه‌اندازی یا اجرای مثال‌ها نیاز به هرگونه کمک داشتید، تیم ما در کنار شماست.

با آرزوی یک سفر هیجان‌انگیز در مسیر یادگیری Apache Spark!

مدرسه مهندسی داده سپهرام
2