مهندسی داده
877 subscribers
113 photos
8 videos
25 files
339 links
BigData.ir کانال رسمی وب سایت
مطالبی راجع به مهندسی داده و طراحی زیرساخت‌های پردازش دیتا و ابزارهای مدرن دیتا
ارتباط با ادمین: @smbanaei
گروه تخصصی مهندسی داده 👇
https://t.iss.one/bigdata_ir_discussions2
کانال یوتیوب 👇
https://www.youtube.com/@irbigdata
Download Telegram
شروعی حرفه‌ای برای ورود به دنیای مهندسی داده – رایگان و بین‌المللی🎓

در دنیای امروز، یادگیری مهارت‌های عملی و نزدیک به پروژه‌های واقعی، مهم‌ترین مزیت رقابتی برای ورود به بازار کار حوزه داده است.

اگر شما هم به دنبال فرصتی برای یادگیری ساخت‌یافته، کاربردی، و تحت نظر یک تیم متخصص بین‌المللی هستید، این بوت‌کمپ رایگان مهندسی داده یک فرصت بی‌نظیر است.

👨‍🏫 برگزارکننده: Zach Wilson

مؤسس DataExpert.io و از شناخته‌شده‌ترین چهره‌های حوزه داده با بیش از ۱ میلیون دنبال‌کننده در شبکه‌های اجتماعی.

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


🏫 درباره بوت‌کمپ:

بوت‌کمپ ۶ هفته‌ای "Community Edition" با هدف توانمندسازی علاقه‌مندان به مهندسی داده، به صورت رایگان و با تمرکز بر مهارت‌های کاربردی برگزار می‌شود.

این برنامه آموزشی، ترکیبی از ویدیوهای آموزشی، تمرین‌های هفتگی با ارزیابی خودکار، پروژه‌های واقعی، و در نهایت صدور مدرک پایان دوره است.


🧠 سرفصل‌های آموزشی:

📚 مدل‌سازی داده‌های بعدی و واقعی – طراحی ساختارهای تحلیلی پیشرفته

📚 پردازش داده‌های کلان با سرعت بالا - Apache Spark و PySpark

📚 ساخت پایپ‌لاین‌های بلادرنگ و مدیریت جریان داده - Apache Flink و Kafka

📚 الگوهای تحلیلی و طراحی شاخص‌های کلیدی عملکرد (KPI)

📚 کیفیت داده و مستندسازی حرفه‌ای مانند Airbnb

📚 مصورسازی داده با Tableau و ارائه اثرگذار یافته‌ها

📚نگهداری و بهبود پایپ‌لاین‌های داده‌ای در محیط واقعی


🎯 چرا این بوت‌کمپ ارزشمند است؟

🔹 نگاه عملیاتی و واقعی به مسائل مهندسی داده

🔹 طراحی شده توسط تیمی با تجربه بین‌المللی و پروژه‌های کلان

🔹 یادگیری مبتنی بر سناریوهای واقعی شغلی

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

🔹 امکان تعامل با جامعه جهانی مهندسان داده در Discord

🔹 دریافت مدرک پایان دوره به‌صورت رسمی


📥 مراحل ثبت‌نام:


ثبت‌نام رایگان در سایت: learn.dataexpert.io

دریافت هندبوک و تمرین‌ها: https://github.com/DataExpert-io/data-engineer-handbook

عضویت در کامیونیتی و گروه پشتیبانی در دیسکورد: لینک عضویت

ارسال تمرین‌های هفتگی – برای حفظ نظم و یادگیری تدریجی

📌 تا امروز بیش از ۵۰ هزار نفر از سراسر دنیا ثبت‌نام کرده‌اند

🎯 زک ویلسون پیش‌بینی کرده تنها حدود ۵۰۰ نفر به پایان مسیر و دریافت گواهی می‌رسند

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

جزو ۱٪ افراد مصمم باش!

#بوتکمپ_داده #مهندسی_داده #DataEngineering #ApacheSpark #Flink #Kafka #SQL #Python #DataQuality #Tableau #آموزش_کاربردی #مدرک_بین‌المللی #ZackWilson #DataExpert #دوره_رایگان #DataCareer
1
شمارش بازدیدها و اکشن‌های کاربر با فناوری‌های مدرن داده

در پست قبلی درباره روش‌های کلاسیک شمارش بازدید محصولات یا تماشای ویدئو صحبت کردم.

https://t.iss.one/bigdata_ir/445

به‌طور خلاصه گفتیم که در بار ترافیکی بالا، بهتر است بازدیدها را در حافظه نگهداری و جمع‌بندی کرده، سپس در بازه‌های زمانی مشخص وارد دیتابیس کنیم. همچنین به رویکرد پیشرفته‌تری با Kafka + Flink برای ایجاد بافر و بروزرسانی دوره‌ای دیتابیس اشاره شد.


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

🎯 هدف ما فقط شمارش نیست!

آنچه امروز اهمیت دارد، ذخیره‌سازی دقیق تمام اکشن‌های کاربر است.

چرا؟

برای شخصی‌سازی تجربه کاربری بر اساس رفتار هر فرد

برای تحلیل عمیق روی محصولات یا ویدئوها و بهبود تجربه کاربران

پس راهکار ایده‌آل باید هم شمارش و هم ذخیره‌سازی کامل داده‌ها را پوشش دهد.


🛠 سه راهکار مدرن برای شمارش و ذخیره اکشن‌ها

1️⃣ استفاده از Cassandra / ScyllaDB و قابلیت Distributed Counter

🎯برای هر کاربر و هر محصول، یک جدول بازدید ایجاد می‌کنیم

🎯هر اکشن را در هر دو جدول ذخیره می‌کنیم (مدل داده این دیتابیس‌ها بر اساس Query طراحی می‌شود)

🎯شمارش اکشن‌ها با Distributed Counter انجام می‌شود

🎯امکان تعریف شمارنده برای بازه‌های زمانی مختلف (ساعتی، روزانه و...) وجود دارد

مزیت اصلی: مقیاس‌پذیری بالا و سرعت فوق‌العاده


2️⃣ ذخیره خام داده‌ها در قالب Apache Iceberg با AutoMQ

🎯جایگزین Kafka سنتی با AutoMQ

🎯 پیام رسان AutoMQ که دقیقا منطبق بر استاندارد کافکا است، پیام‌ها را مستقیماً در Iceberg ذخیره می‌کند

🎯شمارش با Flink + Redis انجام می‌شود

🎯امکان تحلیل بعدی رفتار کاربران با ابزارهایی مثل ClickHouse یا Spark

مزیت اصلی: فشار کمتر روی دیتابیس اصلی و نگهداری داده‌های خام برای تحلیل‌های آینده

3️⃣ استفاده از دیتابیس جریانی RisingWave – سریع، مدرن و چندکاره 🚀

دیتابیس RisingWave یک دیتابیس جریانی (Streaming Database) است که با استاندارد PostgreSQL توسعه یافته و از SQL به‌عنوان زبان اصلی پردازش داده‌های جریانی استفاده می‌کند.

📌 ویژگی‌ها و مزایا:

🎯شمارش و پردازش جریانی با SQL ساده → ایجاد Materialized Viewها برای شمارش بازدیدها و اکشن‌ها در لحظه

🎯ذخیره اکشن‌ها در S3 و Iceberg → امکان نگهداری داده‌های خام برای تحلیل‌های آینده

🎯سرعت بالا به لطف Rust → هسته سیستم با زبان Rust نوشته شده و از مزایای کارایی و مصرف کم منابع بهره می‌برد

🎯پشتیبانی از Sinkهای متنوع → خروجی مستقیم به دیتابیس‌ها، سیستم‌های پیام‌رسان، S3، Kafka و...

🎯پردازش رویدادهای پیچیده → اجرای Queryهای تحلیلی پیشرفته بر روی جریان داده بدون نیاز به ابزار جداگانه

نتیجه؟

با RisingWave می‌توان علاوه بر شمارش بازدید و اکشن‌ها، بسیاری از پردازش‌های هم‌زمان و تحلیل‌های اولیه را نیز انجام داد، بدون نیاز به زیرساخت پیچیده و چندلایه.

📌 جمع‌بندی

این سه راهکار نسبت به روش‌های سنتی و حتی رویکرد Kafka + Flink، مدرن‌تر هستند و از فناوری‌های جدید حوزه داده بهره می‌برند.

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

#DataEngineering #StreamingData #RealTimeAnalytics #Kafka #Flink #Iceberg #ClickHouse #RisingWave #ScyllaDB #BigData #UserAnalytics #TechInnovation #RustLang #SQL
👍5
وقتی ابزارها از نیاز ما بزرگ‌ترند: درس‌هایی از Kafka و Flinkو هنر انتخاب درست

در دنیایی که هر ثانیه هزاران رویداد در سرویس‌ها، اپلیکیشن‌ها و سیستم‌های ما جریان دارد، طبیعی است که به سراغ ابزارهای قدرتمند برویم. ابزارهایی مثل Kafka ، Flink و اسپارک که نام‌شان با «مقیاس عظیم»، «پردازش بلادرنگ» و «زیرساخت حرفه‌ای» گره خورده است.

اما حقیقتی که کمتر درباره‌اش حرف می‌زنیم این است:

بیشتر ما اصلاً چنین مقیاسی نداریم.

سال‌هاست تیم‌های کوچک و متوسط، با داده‌های کم و نیازهای ساده، سراغ ابزارهایی می‌روند که برای غول‌هایی مثل اوبر، لینکدین یا نتفلیکس طراحی شده‌اند. نتیجه چیست؟

پیچیدگی بیشتر. هزینه بیشتر. زمان بیشتر. و در نهایت، زیرساختی بزرگ‌تر از نیاز واقعی.

دو مقاله‌ای که اخیرا با عنوان «Kafka’s 80% Problem» و «Flink’s 95% Problem» منتشر شده‌اند به کمک آمار و ارقام، ما را به توقفی کوتاه و تفکری جدی در این خصوص دعوت می‌کنند.

بیشتر خوشه‌های #Kafka زیر ۱ MB/s داده دارند و بیشتر کاربردهای استریم اصلاً نیازی به #Flink یا اسپارک ندارند. برای دو سوم پروژه‌ها، یک API ساده یا یک دیتابیس تحلیلی سبک کاملاً کافی است.

👌 پیام نویسندگان این دو مقاله روشن است: قبل از انتخاب ابزار، نیاز واقعی را بسنج.

گاهی به‌جای یک بیگ‌دیتای کامل، تنها چیزی که لازم داریم یک خط پردازش داده ساده است.

چرا باید حواسمان به این انتخاب‌ها باشد؟

🔹 زیرا بیشتر تیم‌ها درگیر «نیاز واقعی» نیستند، بلکه درگیر «تصور نیاز» شده‌اند.

🔹 بیشتر خوشه‌های Kafka کمتر از ۱ مگابایت در ثانیه داده دارند.

🔹 بیشتر کاربردهای استریم اصلاً نیازمند پیچیدگی
Flink یا اسپارک نیستند.

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

بسیاری از تیم‌ها، بدون بررسی دقیق، زیرساخت‌هایی می‌سازند که برای غول‌هایی مثل نتفلیکس یا اوبر طراحی شده، نه برای سرویس‌های متوسط.

نتیجه؟

⚠️زیرساخت سنگین برای بار سبک

⚠️هزینه مالی بالا

⚠️پیچیدگی عملیاتی غیرضروری

⚠️نیاز به تخصص خاص و دشوار

⚠️سرعت پایین‌تر توسعه

⚠️ و در نهایت، «مهندسی بیش‌ازحد»


درحالی‌که بسیاری از نیازها را می‌توان با ابزارهایی بسیار ساده‌تر حل کرد: یک API، یک دیتابیس تحلیلی سبک، یا حتی یک معماری batch.

دنیای ابزارهای داده و استریمینگ خانه‌ای بزرگ با امکانات فراوان است، اما هر ابزار قدرتمندی مناسب هر کاری نیست.

🔰 مقاله «Kafka’s 80% Problem» به ما می‌گوید که بسیاری از سازمان‌ها با داده کم، زیرساخت بزرگ می‌سازند.

🔰 مقاله «Flink’s 95% Problem» هشدار می‌دهد که اغلب پروژه‌ها نیازی به پیچیدگی فنی فلینک ندارند.

💡 پیام مشترک این دو مقاله روشن و ارزشمند است:

به‌جای انتخاب ابزارهای بزرگ، نیاز کوچک خود را دقیق بفهمیم.

گاهی بهترین معماری، ساده‌ترین معماری است، نه چون امکانات کمتری دارد، بلکه چون بیشترین هم‌خوانی را با واقعیت دارد.آیا واقعاً به سیستم‌های سنگین و «enterprise-grade» نیاز داریم، یا فقط درگیر مد روز مهندسی شده‌ایم؟ در معماری داده، هوشمندی در انتخاب ابزار همیشه مهم‌تر از بزرگی ابزار است.
پس شاید بهتر باشد از خودمان بپرسیم:

آیا واقعاً به سیستم‌های سنگین و «enterprise-grade» نیاز داریم، یا فقط درگیر مد روز مهندسی شده‌ایم؟

در معماری داده، هوشمندی در انتخاب ابزار همیشه مهم‌تر از بزرگی ابزار است.

گاهی سادگی، بهترین راه‌حل مهندسی است.
👍3