داستان تولد یک Graph Engine متفاوت: آشنایی با PuppyGraph🐾
تصور کنید دادههای شما در دیتابیسهای کلاسیک رابطهای مثل #PostgreSQL یا در دیتالِیکهایی مثل #Snowflake یا #Iceberg ذخیره شدهاند.
حجم دادهها بالاست، اتصالها پیچیدهاند، و شما بهعنوان مهندس داده میخواهید تحلیلهای ارتباطی اجرا کنید:
مثل کشف مسیرهای غیرمستقیم بین کاربران، تشخیص حلقههای تراکنشی، یا تحلیل وابستگی در جریان داده.
در اکثر ابزارهای سنتی، برای رسیدن به این نوع بینشها باید داده را استخراج کنید، آن را به فرمت گراف تبدیل کرده و در یک گرافدیتابیس جداگانه بارگذاری کنید. این یعنی:
عملیات #ETL سنگین و زمانبر ⏳
نیاز به زیرساخت گراف مستقل ⚙️
مشکلات همگامسازی داده بین دو سیستم 🔄
💡 اینجا PuppyGraph وارد میشود
پاپیگراف یک Graph Query Engine مدرن و سریع است که با یک رویکرد ساده و انقلابی کار میکند:
«بهجای انتقال داده به یک گرافدیتابیس، چرا گراف را همانجا که داده هست اجرا نکنیم؟»
🔍 چه چیزی PuppyGraph را متفاوت میکند؟
✅ بدون ETL: مستقیماً روی منابع دادهای مانند PostgreSQL، MySQL، Snowflake، Delta Lake یا Iceberg کار میکند.
✅ بدون کپی داده: داده در محل خود باقی میماند، PuppyGraph فقط آن را گرافی تفسیر میکند.
✅ اجرای سریع کوئریهای چندهاپی: حتی 10-hop traversal در کمتر از چند ثانیه، روی میلیاردها لبه.
✅ سازگار با زبانهای گراف استاندارد: از Gremlin و Cypher برای کوئری استفاده کنید، درست مثل Neo4j.
✅ معماری مقیاسپذیر و توزیعشده: طراحیشده برای محیطهای تحلیلی مدرن، با تفکیک compute و storage.
🎯 چه کاربردهایی دارد؟
موتور تحلیل گراف PuppyGraph بهویژه برای تحلیلهایی که ماهیت گرافی دارند عالی است، از جمله:
✅ کشف تقلب در تراکنشها یا شبکههای مالی
✅ تحلیل رفتار کاربران و مسیرهای ارتباطی آنها
✅ درک ساختارهای وابستگی در خطوط داده یا سیستمها
✅ تحلیل شبکههای سازمانی، صنعتی یا IoT
✅ ساخت گراف مفهومی از دادههای پراکنده بدون زیرساخت جدید
🧪 تجربه کار با PuppyGraph
راهاندازی آن ساده است: با Docker یا روی Databricks و AWS در کمتر از ۱۰ دقیقه آماده کار میشود.
تنها کاری که باید بکنید تعریف اسکیمای گرافی با چند خط JSON است—و بعد میتوانید همان دادهای را که همیشه با SQL کوئری میکردید، اینبار از منظر گراف ببینید و تحلیل کنید.
🐶 چرا اسمش PuppyGraph است؟
چون مثل یک تولهسگ هوشمند، سریع، چابک و کمتوقع است. خودش را بهراحتی با محیط شما وفق میدهد، سروصدای زیادی ندارد و کاری که باید انجام دهد را بهخوبی انجام میدهد.
📣 اگر تجربهای در گرافتحلیل داشتهاید یا دنبال راهی برای اجرای گراف روی دادههای رابطهای بدون مهاجرت هستید، PuppyGraph قطعاً یکی از گزینههایی است که باید آن را جدی بگیرید.
💼 و اما : وضعیت لایسنس و نسخهها
نسخه رایگان و متنباز PuppyGraph با نام Developer Edition در دسترس است، اما این نسخه تنها از یک نود پشتیبانی میکند و برای محیطهای کوچک و تستی مناسب است.
اگر بخواهید در محیطهای تولیدی حرفهای از آن استفاده کنید—با امکاناتی مثل مقیاسپذیری افقی، مانیتورینگ، چند کاربر و قابلیتهای امنیتی پیشرفته—باید از نسخه Enterprise استفاده کنید که دارای مجوز تجاری و هزینهبر است اما هزینه آن از نگهداری یک دیتابیس گرافی جداگانه و پایپلاینهای ETL لازم برای ورود مداوم داده در آن، بسیار کمتر است.
#GraphAnalytics #DataEngineering #GraphDatabase #PuppyGraph
تصور کنید دادههای شما در دیتابیسهای کلاسیک رابطهای مثل #PostgreSQL یا در دیتالِیکهایی مثل #Snowflake یا #Iceberg ذخیره شدهاند.
حجم دادهها بالاست، اتصالها پیچیدهاند، و شما بهعنوان مهندس داده میخواهید تحلیلهای ارتباطی اجرا کنید:
مثل کشف مسیرهای غیرمستقیم بین کاربران، تشخیص حلقههای تراکنشی، یا تحلیل وابستگی در جریان داده.
در اکثر ابزارهای سنتی، برای رسیدن به این نوع بینشها باید داده را استخراج کنید، آن را به فرمت گراف تبدیل کرده و در یک گرافدیتابیس جداگانه بارگذاری کنید. این یعنی:
عملیات #ETL سنگین و زمانبر ⏳
نیاز به زیرساخت گراف مستقل ⚙️
مشکلات همگامسازی داده بین دو سیستم 🔄
💡 اینجا PuppyGraph وارد میشود
پاپیگراف یک Graph Query Engine مدرن و سریع است که با یک رویکرد ساده و انقلابی کار میکند:
«بهجای انتقال داده به یک گرافدیتابیس، چرا گراف را همانجا که داده هست اجرا نکنیم؟»
🔍 چه چیزی PuppyGraph را متفاوت میکند؟
✅ بدون ETL: مستقیماً روی منابع دادهای مانند PostgreSQL، MySQL، Snowflake، Delta Lake یا Iceberg کار میکند.
✅ بدون کپی داده: داده در محل خود باقی میماند، PuppyGraph فقط آن را گرافی تفسیر میکند.
✅ اجرای سریع کوئریهای چندهاپی: حتی 10-hop traversal در کمتر از چند ثانیه، روی میلیاردها لبه.
✅ سازگار با زبانهای گراف استاندارد: از Gremlin و Cypher برای کوئری استفاده کنید، درست مثل Neo4j.
✅ معماری مقیاسپذیر و توزیعشده: طراحیشده برای محیطهای تحلیلی مدرن، با تفکیک compute و storage.
🎯 چه کاربردهایی دارد؟
موتور تحلیل گراف PuppyGraph بهویژه برای تحلیلهایی که ماهیت گرافی دارند عالی است، از جمله:
✅ کشف تقلب در تراکنشها یا شبکههای مالی
✅ تحلیل رفتار کاربران و مسیرهای ارتباطی آنها
✅ درک ساختارهای وابستگی در خطوط داده یا سیستمها
✅ تحلیل شبکههای سازمانی، صنعتی یا IoT
✅ ساخت گراف مفهومی از دادههای پراکنده بدون زیرساخت جدید
🧪 تجربه کار با PuppyGraph
راهاندازی آن ساده است: با Docker یا روی Databricks و AWS در کمتر از ۱۰ دقیقه آماده کار میشود.
تنها کاری که باید بکنید تعریف اسکیمای گرافی با چند خط JSON است—و بعد میتوانید همان دادهای را که همیشه با SQL کوئری میکردید، اینبار از منظر گراف ببینید و تحلیل کنید.
🐶 چرا اسمش PuppyGraph است؟
چون مثل یک تولهسگ هوشمند، سریع، چابک و کمتوقع است. خودش را بهراحتی با محیط شما وفق میدهد، سروصدای زیادی ندارد و کاری که باید انجام دهد را بهخوبی انجام میدهد.
📣 اگر تجربهای در گرافتحلیل داشتهاید یا دنبال راهی برای اجرای گراف روی دادههای رابطهای بدون مهاجرت هستید، PuppyGraph قطعاً یکی از گزینههایی است که باید آن را جدی بگیرید.
💼 و اما : وضعیت لایسنس و نسخهها
نسخه رایگان و متنباز PuppyGraph با نام Developer Edition در دسترس است، اما این نسخه تنها از یک نود پشتیبانی میکند و برای محیطهای کوچک و تستی مناسب است.
اگر بخواهید در محیطهای تولیدی حرفهای از آن استفاده کنید—با امکاناتی مثل مقیاسپذیری افقی، مانیتورینگ، چند کاربر و قابلیتهای امنیتی پیشرفته—باید از نسخه Enterprise استفاده کنید که دارای مجوز تجاری و هزینهبر است اما هزینه آن از نگهداری یک دیتابیس گرافی جداگانه و پایپلاینهای ETL لازم برای ورود مداوم داده در آن، بسیار کمتر است.
#GraphAnalytics #DataEngineering #GraphDatabase #PuppyGraph
❤3
راهنمای حرفهای ساخت پایپلاینهای ETL/ELT با Apache Airflow
📘 نگاهی خلاصه به ایبوک ۴۴ صفحهای Astronomer
در سالهای اخیر، Apache Airflow به استانداردی در حوزهی مدیریت وظایف زمانبندیشده و ارکستراسیون دادهها تبدیل شده است. نسخهی ۳ این ابزار، با ویژگیهای حرفهایتری همچون:
✅ پشتیبانی از Multi-DAG Deployment
✅ اجرای مبتنی بر event از طریق Triggerer
✅ قابلیت DAG Versioning
✅ مصرف مستقیم از Kafka
✅ امکان XCom backendهای سفارشی
✅ Dynamic Task Mapping و Data-driven Scheduling
آن را به انتخابی قدرتمند برای محیطهای پیچیده دادهای و تولیدی تبدیل کرده است.
🔍 اخیراً شرکت Astronomer که خدمات Airflow در فضای ابری را ارائه میدهد، یک راهنمای جامع ۴۴ صفحهای با عنوان Best Practices for ETL and ELT Pipelines with Apache Airflow منتشر کرده است که شامل نکات کاربردی و بهروز برای ساخت پایپلاینهای حرفهای است.
🗂 خلاصه فهرست مطالب ایبوک:
📌 مفاهیم پایهای
تعریف ETL و ELT، بررسی تفاوتها و سناریوهای ترکیبی (ETLT)
📌 تصمیمات مهم معماری
انتخاب بین XCom یا storage خارجی، اجرای محاسبات درون Airflow یا بیرون، انتخاب اپراتورها، بررسی کیفیت داده
📌 بهترین شیوههای نوشتن DAG
ساختار اتمی، idempotent و ماژولار — جلوگیری از top-level code — تنظیم Retry — پیادهسازی CI/CD و تست
📌 مقیاسپذیری و محیط اجرا
تنظیمات مقیاس در سطح DAG، تسک و محیط — توصیههای زیرساختی برای استقرار تولیدی
📌 ویژگیهای حرفهای Airflow
• امکان Dynamic Task Mapping
• تولید DAGها بهصورت برنامهنویسیشده
• امکان Task Group ماژولار
• زمانبندی مبتنی بر Dataset
• مدیریت فضای ذخیره سازی - Airflow Object Storage
• استفاده از Kafka و قابلیت DAG Versioning
📌 اتصالات و Providerهای مهم
مروری بر AWS, GCP, Azure, Snowflake, dbt, Spark, Ray, PostgreSQL و Cosmos برای dbt
📌 چکلیست نهایی + معرفی Astronomer
چکلیستی کامل برای ارزیابی پایپلاینها و مرور امکانات پلتفرم Astronomer
📥 دانلود فایل PDF در پست بعدی 👇
#ApacheAirflow #Kafka #ETL #ELT #DataEngineering #OpenSource #Python #مهندسی_داده #پایپلاین_داده #Airflow3
📘 نگاهی خلاصه به ایبوک ۴۴ صفحهای Astronomer
در سالهای اخیر، Apache Airflow به استانداردی در حوزهی مدیریت وظایف زمانبندیشده و ارکستراسیون دادهها تبدیل شده است. نسخهی ۳ این ابزار، با ویژگیهای حرفهایتری همچون:
✅ پشتیبانی از Multi-DAG Deployment
✅ اجرای مبتنی بر event از طریق Triggerer
✅ قابلیت DAG Versioning
✅ مصرف مستقیم از Kafka
✅ امکان XCom backendهای سفارشی
✅ Dynamic Task Mapping و Data-driven Scheduling
آن را به انتخابی قدرتمند برای محیطهای پیچیده دادهای و تولیدی تبدیل کرده است.
یکی از رایجترین کاربردهای Airflow، ساخت پایپلاینهای ETL/ELT است. اما در دنیای امروز با حجم بالای داده، معماریهای پیچیده و نیاز به مقیاسپذیری بالا، پیادهسازی این پایپلاینها بهگونهای که قابلاعتماد، مانیتورپذیر و توسعهپذیر باشند، چالشبرانگیز شده است.
🔍 اخیراً شرکت Astronomer که خدمات Airflow در فضای ابری را ارائه میدهد، یک راهنمای جامع ۴۴ صفحهای با عنوان Best Practices for ETL and ELT Pipelines with Apache Airflow منتشر کرده است که شامل نکات کاربردی و بهروز برای ساخت پایپلاینهای حرفهای است.
🗂 خلاصه فهرست مطالب ایبوک:
📌 مفاهیم پایهای
تعریف ETL و ELT، بررسی تفاوتها و سناریوهای ترکیبی (ETLT)
📌 تصمیمات مهم معماری
انتخاب بین XCom یا storage خارجی، اجرای محاسبات درون Airflow یا بیرون، انتخاب اپراتورها، بررسی کیفیت داده
📌 بهترین شیوههای نوشتن DAG
ساختار اتمی، idempotent و ماژولار — جلوگیری از top-level code — تنظیم Retry — پیادهسازی CI/CD و تست
📌 مقیاسپذیری و محیط اجرا
تنظیمات مقیاس در سطح DAG، تسک و محیط — توصیههای زیرساختی برای استقرار تولیدی
📌 ویژگیهای حرفهای Airflow
• امکان Dynamic Task Mapping
• تولید DAGها بهصورت برنامهنویسیشده
• امکان Task Group ماژولار
• زمانبندی مبتنی بر Dataset
• مدیریت فضای ذخیره سازی - Airflow Object Storage
• استفاده از Kafka و قابلیت DAG Versioning
📌 اتصالات و Providerهای مهم
مروری بر AWS, GCP, Azure, Snowflake, dbt, Spark, Ray, PostgreSQL و Cosmos برای dbt
📌 چکلیست نهایی + معرفی Astronomer
چکلیستی کامل برای ارزیابی پایپلاینها و مرور امکانات پلتفرم Astronomer
📥 دانلود فایل PDF در پست بعدی 👇
#ApacheAirflow #Kafka #ETL #ELT #DataEngineering #OpenSource #Python #مهندسی_داده #پایپلاین_داده #Airflow3
❤1
راهنمای حرفهای ساخت پایپلاینهای ETL/ELT با Apache Airflow
📘 نگاهی خلاصه به ایبوک ۴۴ صفحهای Astronomer
در سالهای اخیر، Apache Airflow به استانداردی در حوزهی مدیریت وظایف زمانبندیشده و ارکستراسیون دادهها تبدیل شده است. نسخهی ۳ این ابزار، با ویژگیهای حرفهایتری همچون:
✅ پشتیبانی از Multi-DAG Deployment
✅ اجرای مبتنی بر event از طریق Triggerer
✅ قابلیت DAG Versioning
✅ مصرف مستقیم از Kafka
✅ امکان XCom backendهای سفارشی
✅ امکان Dynamic Task Mapping و Data-driven Scheduling
آن را به انتخابی قدرتمند برای محیطهای پیچیده دادهای و تولیدی تبدیل کرده است.
🔍 اخیراً شرکت Astronomer که خدمات Airflow در فضای ابری را ارائه میدهد، یک راهنمای جامع ۴۴ صفحهای با عنوان Best Practices for ETL and ELT Pipelines with Apache Airflow منتشر کرده است که شامل نکات کاربردی و بهروز برای ساخت پایپلاینهای حرفهای است.
🗂 خلاصه فهرست مطالب ایبوک:
📌 مفاهیم پایهای
تعریف ETL و ELT، بررسی تفاوتها و سناریوهای ترکیبی (ETLT)
📌 تصمیمات مهم معماری
انتخاب بین XCom یا storage خارجی، اجرای محاسبات درون Airflow یا بیرون، انتخاب اپراتورها، بررسی کیفیت داده
📌 بهترین شیوههای نوشتن DAG
ساختار اتمی، idempotent و ماژولار — جلوگیری از top-level code — تنظیم Retry — پیادهسازی CI/CD و تست
📌 مقیاسپذیری و محیط اجرا
تنظیمات مقیاس در سطح DAG، تسک و محیط — توصیههای زیرساختی برای استقرار تولیدی
📌 ویژگیهای حرفهای Airflow
• امکان Dynamic Task Mapping
• تولید DAGها بهصورت برنامهنویسیشده
• امکان Task Group ماژولار
• زمانبندی مبتنی بر Dataset
• مدیریت فضای ذخیره سازی - Airflow Object Storage
• استفاده از Kafka و قابلیت DAG Versioning
📌 اتصالات و Providerهای مهم
مروری بر AWS, GCP, Azure, Snowflake, dbt, Spark, Ray, PostgreSQL و Cosmos برای dbt
📌 چکلیست نهایی + معرفی Astronomer
چکلیستی کامل برای ارزیابی پایپلاینها و مرور امکانات پلتفرم Astronomer
📥 دانلود فایل PDF در پست بعدی 👇
#ApacheAirflow #Kafka #ETL #ELT #DataEngineering #OpenSource #Python #مهندسی_داده #پایپلاین_داده #Airflow3
📘 نگاهی خلاصه به ایبوک ۴۴ صفحهای Astronomer
در سالهای اخیر، Apache Airflow به استانداردی در حوزهی مدیریت وظایف زمانبندیشده و ارکستراسیون دادهها تبدیل شده است. نسخهی ۳ این ابزار، با ویژگیهای حرفهایتری همچون:
✅ پشتیبانی از Multi-DAG Deployment
✅ اجرای مبتنی بر event از طریق Triggerer
✅ قابلیت DAG Versioning
✅ مصرف مستقیم از Kafka
✅ امکان XCom backendهای سفارشی
✅ امکان Dynamic Task Mapping و Data-driven Scheduling
آن را به انتخابی قدرتمند برای محیطهای پیچیده دادهای و تولیدی تبدیل کرده است.
یکی از رایجترین کاربردهای Airflow، ساخت پایپلاینهای ETL/ELT است. اما در دنیای امروز با حجم بالای داده، معماریهای پیچیده و نیاز به مقیاسپذیری بالا، پیادهسازی این پایپلاینها بهگونهای که قابلاعتماد، مانیتورپذیر و توسعهپذیر باشند، چالشبرانگیز شده است.
🔍 اخیراً شرکت Astronomer که خدمات Airflow در فضای ابری را ارائه میدهد، یک راهنمای جامع ۴۴ صفحهای با عنوان Best Practices for ETL and ELT Pipelines with Apache Airflow منتشر کرده است که شامل نکات کاربردی و بهروز برای ساخت پایپلاینهای حرفهای است.
🗂 خلاصه فهرست مطالب ایبوک:
📌 مفاهیم پایهای
تعریف ETL و ELT، بررسی تفاوتها و سناریوهای ترکیبی (ETLT)
📌 تصمیمات مهم معماری
انتخاب بین XCom یا storage خارجی، اجرای محاسبات درون Airflow یا بیرون، انتخاب اپراتورها، بررسی کیفیت داده
📌 بهترین شیوههای نوشتن DAG
ساختار اتمی، idempotent و ماژولار — جلوگیری از top-level code — تنظیم Retry — پیادهسازی CI/CD و تست
📌 مقیاسپذیری و محیط اجرا
تنظیمات مقیاس در سطح DAG، تسک و محیط — توصیههای زیرساختی برای استقرار تولیدی
📌 ویژگیهای حرفهای Airflow
• امکان Dynamic Task Mapping
• تولید DAGها بهصورت برنامهنویسیشده
• امکان Task Group ماژولار
• زمانبندی مبتنی بر Dataset
• مدیریت فضای ذخیره سازی - Airflow Object Storage
• استفاده از Kafka و قابلیت DAG Versioning
📌 اتصالات و Providerهای مهم
مروری بر AWS, GCP, Azure, Snowflake, dbt, Spark, Ray, PostgreSQL و Cosmos برای dbt
📌 چکلیست نهایی + معرفی Astronomer
چکلیستی کامل برای ارزیابی پایپلاینها و مرور امکانات پلتفرم Astronomer
📥 دانلود فایل PDF در پست بعدی 👇
#ApacheAirflow #Kafka #ETL #ELT #DataEngineering #OpenSource #Python #مهندسی_داده #پایپلاین_داده #Airflow3
👍2❤1
اگر رهبر یک تیم دیتا هستید (یا قصد دارید باشید)، این ریپازیتوری را از دست ندهید:
🔗 Data Team Handbook
https://github.com/sdg-1/data-team-handbook/
راهنمایی جامع برای مدیریت مؤثر تیمهای داده، با دهها منبع دستچینشده برای چالشهای واقعی:
✅ گذار از IC به مدیر
✅ رشد مهارت اعضای تیم
✅ مدیریت پروژههای دیتا
✅ بهینهسازی زیرساخت، هزینه و ابزارها
✅ تمپلیتها و چکلیستهای قابل استفاده
📚 منابع شامل:
بهترین کتابها در مدیریت فنی و مهندسی داده
مقالات دقیق درباره DataOps، Data Culture و Team Structure
ویدیوهای آموزشی از لیدهای فنی در Amazon، Google و Stripe
چرا این منبع برای شما ضروریست؟
🛠 دستهبندی بر اساس چالشهای واقعی
انتقال از مهندس اختصاصی (IC) به نقش مدیریت
مقیاسبندی زیرساخت (ETL/ELT، CDC، Data Warehouse)
طراحی پایداری و مانیتورینگ خطوط داده
بهینهسازی هزینه و انتخابِ سرویسهای ابری
📈 افزایش بهرهوری تیم
الگوهای پروژه و تمپلیتهای CI/CD برای دیتاپایپلاین
چکلیست ۳۰-۶۰-۹۰ روز اول برای آنبوردینگ سریع
چگونه دستورات SQL حرفه ای بنویسیم و بهترین رویههای کوئرینویسی
🤝 رشد و نگهداشت استعداد
الگوهای مصاحبه و ارزیابی مهارتهای داده
استراتژیهای حفظ نیروی کلیدی در مقابل ترک پروژه
🎓 منابع آموزشی برتر
کتابهای کلیدی (An Elegant Puzzle, Data Teams Model)
مقالات عمیق در معماری داده، فرهنگ مهندسی و مدیریت فنی
ویدیوهای عملی از مهندسین ارشد گوگل، آمازون و Netflix
🧩 همه چیز دستهبندیشده بر اساس چالشهای رایج، نه صرفاً نوع محتوا.
🌍 متنباز و مشارکتپذیر – میتوانید منابع خود را هم اضافه کنید!
hashtag#DataEngineering hashtag#DataTeams hashtag#DataLeadership hashtag#ETL hashtag#DataInfra hashtag#TeamManagement hashtag#SeattleDataGuy hashtag#دیتا hashtag#مهندسی_داده hashtag#مدیریت_تیم
🔗 Data Team Handbook
https://github.com/sdg-1/data-team-handbook/
راهنمایی جامع برای مدیریت مؤثر تیمهای داده، با دهها منبع دستچینشده برای چالشهای واقعی:
✅ گذار از IC به مدیر
✅ رشد مهارت اعضای تیم
✅ مدیریت پروژههای دیتا
✅ بهینهسازی زیرساخت، هزینه و ابزارها
✅ تمپلیتها و چکلیستهای قابل استفاده
📚 منابع شامل:
بهترین کتابها در مدیریت فنی و مهندسی داده
مقالات دقیق درباره DataOps، Data Culture و Team Structure
ویدیوهای آموزشی از لیدهای فنی در Amazon، Google و Stripe
چرا این منبع برای شما ضروریست؟
🛠 دستهبندی بر اساس چالشهای واقعی
انتقال از مهندس اختصاصی (IC) به نقش مدیریت
مقیاسبندی زیرساخت (ETL/ELT، CDC، Data Warehouse)
طراحی پایداری و مانیتورینگ خطوط داده
بهینهسازی هزینه و انتخابِ سرویسهای ابری
📈 افزایش بهرهوری تیم
الگوهای پروژه و تمپلیتهای CI/CD برای دیتاپایپلاین
چکلیست ۳۰-۶۰-۹۰ روز اول برای آنبوردینگ سریع
چگونه دستورات SQL حرفه ای بنویسیم و بهترین رویههای کوئرینویسی
🤝 رشد و نگهداشت استعداد
الگوهای مصاحبه و ارزیابی مهارتهای داده
استراتژیهای حفظ نیروی کلیدی در مقابل ترک پروژه
🎓 منابع آموزشی برتر
کتابهای کلیدی (An Elegant Puzzle, Data Teams Model)
مقالات عمیق در معماری داده، فرهنگ مهندسی و مدیریت فنی
ویدیوهای عملی از مهندسین ارشد گوگل، آمازون و Netflix
🧩 همه چیز دستهبندیشده بر اساس چالشهای رایج، نه صرفاً نوع محتوا.
🌍 متنباز و مشارکتپذیر – میتوانید منابع خود را هم اضافه کنید!
hashtag#DataEngineering hashtag#DataTeams hashtag#DataLeadership hashtag#ETL hashtag#DataInfra hashtag#TeamManagement hashtag#SeattleDataGuy hashtag#دیتا hashtag#مهندسی_داده hashtag#مدیریت_تیم
GitHub
GitHub - sdg-1/data-team-handbook
Contribute to sdg-1/data-team-handbook development by creating an account on GitHub.
👍2
شروعی حرفهای برای ورود به دنیای مهندسی داده – رایگان و بینالمللی🎓
در دنیای امروز، یادگیری مهارتهای عملی و نزدیک به پروژههای واقعی، مهمترین مزیت رقابتی برای ورود به بازار کار حوزه داده است.
اگر شما هم به دنبال فرصتی برای یادگیری ساختیافته، کاربردی، و تحت نظر یک تیم متخصص بینالمللی هستید، این بوتکمپ رایگان مهندسی داده یک فرصت بینظیر است.
👨🏫 برگزارکننده: 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
در دنیای امروز، یادگیری مهارتهای عملی و نزدیک به پروژههای واقعی، مهمترین مزیت رقابتی برای ورود به بازار کار حوزه داده است.
اگر شما هم به دنبال فرصتی برای یادگیری ساختیافته، کاربردی، و تحت نظر یک تیم متخصص بینالمللی هستید، این بوتکمپ رایگان مهندسی داده یک فرصت بینظیر است.
👨🏫 برگزارکننده: 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
GitHub
GitHub - DataExpert-io/data-engineer-handbook: This is a repo with links to everything you'd ever want to learn about data engineering
This is a repo with links to everything you'd ever want to learn about data engineering - DataExpert-io/data-engineer-handbook
❤1
عاشقان دیتا لیکهوس، این ریپو گنج واقعی مهندسی داده است! 💻
اگر در حوزه دیتا لیکهوس فعالیت میکنید یا تازه به این دنیای پرهیجان و آیندهدار مهندسی داده علاقهمند شدید، مخزن کد awesome-lakehouse-guide یه منبع بینظیره که نباید از دستش بدید! 🌟
اینجا یه مجموعه کامل و بهروز برای تسلط بر فرمتهای جدولی باز (Apache Hudi، Apache Iceberg، Delta Lake) و معماری لیکهوس پیدا میکنید:
🔍 مقالات تحقیقاتی: از BtrBlocks و Apache Arrow تا AWS Glue و Apache Flink، با تحلیلهای عمیق درباره بهینهسازی ذخیرهسازی، عملکرد کوئریها و قابلیتهای ACID.
📝 بلاگهای کاربردی: آموزشهای عملی برای حل چالشهایی مثل metadata bloat، بهینهسازی با Z-ordering و مدیریت دادههای نزدیک به real-time.
💻 کد و نوتبوک: مثالهای آماده برای ایجاد جدولهای Hudi و Iceberg روی Amazon S3، اجرای کلاستریگ و پیادهسازی CDC (Change Data Capture).
📣 پستهای لینکدین: نکات سریع و بهروز درباره موضوعاتی مثل پردازش برداری و Apache Arrow.
🗂 فعالیت اخیر: بهروزرسانیهای دو هفته پیش (تا ۱۵ تیر ۱۴۰۴) شامل README و پستهای لینکدین، نشوندهنده نگهداری فعال این ریپوئه. یه تصویر معماری (lkh_res.png) هم برای درک بهتر لیکهوس موجوده!
این ریپو یه نقشه راه کامل برای حرفهای شدن در لیکهوسه، چه بخواید تئوری یاد بگیرید، چه دست به کد بشید! 🚀
🔗 مشاهده ریپو : https://github.com/dipankarmazumdar/awesome-lakehouse-guide
#DataEngineering #Lakehouse #BigData #OpenSource #DataLakehouse
اگر در حوزه دیتا لیکهوس فعالیت میکنید یا تازه به این دنیای پرهیجان و آیندهدار مهندسی داده علاقهمند شدید، مخزن کد awesome-lakehouse-guide یه منبع بینظیره که نباید از دستش بدید! 🌟
اینجا یه مجموعه کامل و بهروز برای تسلط بر فرمتهای جدولی باز (Apache Hudi، Apache Iceberg، Delta Lake) و معماری لیکهوس پیدا میکنید:
🔍 مقالات تحقیقاتی: از BtrBlocks و Apache Arrow تا AWS Glue و Apache Flink، با تحلیلهای عمیق درباره بهینهسازی ذخیرهسازی، عملکرد کوئریها و قابلیتهای ACID.
📝 بلاگهای کاربردی: آموزشهای عملی برای حل چالشهایی مثل metadata bloat، بهینهسازی با Z-ordering و مدیریت دادههای نزدیک به real-time.
💻 کد و نوتبوک: مثالهای آماده برای ایجاد جدولهای Hudi و Iceberg روی Amazon S3، اجرای کلاستریگ و پیادهسازی CDC (Change Data Capture).
📣 پستهای لینکدین: نکات سریع و بهروز درباره موضوعاتی مثل پردازش برداری و Apache Arrow.
🗂 فعالیت اخیر: بهروزرسانیهای دو هفته پیش (تا ۱۵ تیر ۱۴۰۴) شامل README و پستهای لینکدین، نشوندهنده نگهداری فعال این ریپوئه. یه تصویر معماری (lkh_res.png) هم برای درک بهتر لیکهوس موجوده!
این ریپو یه نقشه راه کامل برای حرفهای شدن در لیکهوسه، چه بخواید تئوری یاد بگیرید، چه دست به کد بشید! 🚀
🔗 مشاهده ریپو : https://github.com/dipankarmazumdar/awesome-lakehouse-guide
#DataEngineering #Lakehouse #BigData #OpenSource #DataLakehouse
GitHub
GitHub - dipankarmazumdar/awesome-lakehouse-guide: Repo for everything open table formats (Iceberg, Hudi, Delta Lake) and the overall…
Repo for everything open table formats (Iceberg, Hudi, Delta Lake) and the overall Lakehouse architecture - dipankarmazumdar/awesome-lakehouse-guide
❤2👍2
نقشه راه Data 3.0 در عصر Lakehouse
خلاصهای از گزارش Bessemer Venture Partners که معماری لیکهوس را در دوران مدرن، بسیار آیندهدار دانسته است. بیایید آنرا با هم مرور کنیم.
📌 https://www.bvp.com/atlas/roadmap-data-3-0-in-the-lakehouse-era
🔍 چرا Data 3.0 اهمیت دارد؟
مدیریت دادهها طی سه نسل دستخوش تحولات عظیمی شده است:
📦 نسخه اول - Data 1.0 (۱۹۷۰–۲۰۰۰):
✅ تمرکز بر پایگاههای داده رابطهای (Oracle، MySQL)
✅ استفاده از انبارهای دادهای
❌ محدودیت در مقیاسپذیری
❌ ناتوان در پردازش دادههای غیرساختاریافته
🌊 نسخه دوم - Data 2.0 (از ۲۰۱۰ به بعد):
✅ ظهور Hadoop و Spark برای پردازش دادههای متنوع و حجیم
✅ انعطافپذیری بیشتر
❌ باتلاق دادهای (Data Swamp) بهدلیل ضعف در کیفیت و حاکمیت
🚀 نسخه سوم - Data 3.0 (از ۲۰۲۰ به بعد):
✅ یکپارچگی
✅ پردازش لحظهای
✅ استفاده از هوش مصنوعی
📌 ابزارهای کلیدی: Lakehouse، Delta Lake، Iceberg، Hudi، خطوط لوله AI-driven
💡 معماری Lakehouse چیست و چرا انقلابی است؟
ویژگیهای کلیدی:
📌 پشتیبانی از دادههای ساختاریافته و غیرساختاریافته
📌 فرمتهای باز با قابلیتهای ACID، Time Travel، پردازش لحظهای
📌 کاهش افزونگی داده و وابستگی به Vendorها
این معماری پایهای برای توسعه ابزارهای تحلیلی و برنامههای AI در مقیاس بزرگ است.
🔮 چهار روند کلیدی در Data 3.0 به روایت BVP
1️⃣ خطوط لوله هوشمند و لحظهای
🛠 ابزارهای جدید: Prefect، Windmill، dltHub
⚙️ فناوریهای جریانی: Apache Flink، Kafka
⚡️ پلتفرمهای بلادرنگ مانند Chalk برای تصمیمگیری سریع
2️⃣ متادیتا بهعنوان منبع حقیقت
🛠 ابزارهایی مانند Datastrato، Acryl Data
💡 بهینهسازهایی مثل Flarion.io و Greybeam
3️⃣ تحول در موتورهای محاسباتی:
🛠 موتورهای سبک و سریع: DuckDB، ClickHouse، Daft
🌕 بسترهای Iceberg-native مثل Mooncake و Bauplan و RisingWave
4️⃣ ادغام مهندسی داده و نرمافزار:
🧩 ابزارهایی مانند dbt و Gable
🔄 یکپارچهسازی با CI/CD، نسخهسازی، تست خودکار
💸 فرصتهای سرمایهگذاری و نوآوری
BVP باور دارد که Data 3.0 فرصت بیسابقهای برای بنیانگذاران ایجاد کرده تا:
🔧 ابزارهای منبعباز و ابری جدید بسازند
🚀 موتورهای بهینهشده برای AI ارائه دهند
📊 راهحلهای هوشمند برای متادیتا خلق کنند
📌 جمعبندی : معماری Lakehouse نماد تحول در مدیریت دادههاست:
✔️ عملکرد بالا
✔️ تحلیل لحظهای
✔️ پشتیبانی از AI
✔️ مقیاسپذیری بالا
آینده از آن تیمهایی است که به جای مدیریت زیرساختهای پیچیده، بر خلق ارزش از دادهها تمرکز میکنند.
🏷 #Data3 #Lakehouse #AI #Metadata #StreamingData #DuckDB #Iceberg #DeltaLake #BVP #DataEngineering #ModernDataStack #RealTimeAnalytics #OpenSource #DataInfra #Startup #DataPlatform #VentureCapital #FutureOfData
خلاصهای از گزارش Bessemer Venture Partners که معماری لیکهوس را در دوران مدرن، بسیار آیندهدار دانسته است. بیایید آنرا با هم مرور کنیم.
📌 https://www.bvp.com/atlas/roadmap-data-3-0-in-the-lakehouse-era
شرکت سرمایهگذاری Bessemer Venture Partners (BVP) که سابقهای بیش از یک قرن در حمایت از شرکتهای نوآور در حوزههای ابری، فینتک، 🤖 هوش مصنوعی و 🛡 امنیت سایبری دارد، اخیراً گزارشی با عنوان «نقشه راه: Data 3.0 در عصر #Lakehouse» منتشر کرده است. این گزارش با تکیه بر تجربه BVP در سرمایهگذاری بر برندهایی مانند Shopify، LinkedIn، Pinterest و Databricks، چشماندازی دقیق از نسل سوم زیرساختهای داده ارائه میدهد.
🔍 چرا Data 3.0 اهمیت دارد؟
مدیریت دادهها طی سه نسل دستخوش تحولات عظیمی شده است:
📦 نسخه اول - Data 1.0 (۱۹۷۰–۲۰۰۰):
✅ تمرکز بر پایگاههای داده رابطهای (Oracle، MySQL)
✅ استفاده از انبارهای دادهای
❌ محدودیت در مقیاسپذیری
❌ ناتوان در پردازش دادههای غیرساختاریافته
🌊 نسخه دوم - Data 2.0 (از ۲۰۱۰ به بعد):
✅ ظهور Hadoop و Spark برای پردازش دادههای متنوع و حجیم
✅ انعطافپذیری بیشتر
❌ باتلاق دادهای (Data Swamp) بهدلیل ضعف در کیفیت و حاکمیت
🚀 نسخه سوم - Data 3.0 (از ۲۰۲۰ به بعد):
✅ یکپارچگی
✅ پردازش لحظهای
✅ استفاده از هوش مصنوعی
📌 ابزارهای کلیدی: Lakehouse، Delta Lake، Iceberg، Hudi، خطوط لوله AI-driven
💡 معماری Lakehouse چیست و چرا انقلابی است؟
لیکهوس ترکیبی از قدرت Data Warehouse و انعطاف Data Lake است.
ویژگیهای کلیدی:
📌 پشتیبانی از دادههای ساختاریافته و غیرساختاریافته
📌 فرمتهای باز با قابلیتهای ACID، Time Travel، پردازش لحظهای
📌 کاهش افزونگی داده و وابستگی به Vendorها
این معماری پایهای برای توسعه ابزارهای تحلیلی و برنامههای AI در مقیاس بزرگ است.
🔮 چهار روند کلیدی در Data 3.0 به روایت BVP
1️⃣ خطوط لوله هوشمند و لحظهای
🛠 ابزارهای جدید: Prefect، Windmill، dltHub
⚙️ فناوریهای جریانی: Apache Flink، Kafka
⚡️ پلتفرمهای بلادرنگ مانند Chalk برای تصمیمگیری سریع
2️⃣ متادیتا بهعنوان منبع حقیقت
🛠 ابزارهایی مانند Datastrato، Acryl Data
💡 بهینهسازهایی مثل Flarion.io و Greybeam
3️⃣ تحول در موتورهای محاسباتی:
🛠 موتورهای سبک و سریع: DuckDB، ClickHouse، Daft
🌕 بسترهای Iceberg-native مثل Mooncake و Bauplan و RisingWave
4️⃣ ادغام مهندسی داده و نرمافزار:
🧩 ابزارهایی مانند dbt و Gable
🔄 یکپارچهسازی با CI/CD، نسخهسازی، تست خودکار
💸 فرصتهای سرمایهگذاری و نوآوری
BVP باور دارد که Data 3.0 فرصت بیسابقهای برای بنیانگذاران ایجاد کرده تا:
🔧 ابزارهای منبعباز و ابری جدید بسازند
🚀 موتورهای بهینهشده برای AI ارائه دهند
📊 راهحلهای هوشمند برای متادیتا خلق کنند
📌 جمعبندی : معماری Lakehouse نماد تحول در مدیریت دادههاست:
✔️ عملکرد بالا
✔️ تحلیل لحظهای
✔️ پشتیبانی از AI
✔️ مقیاسپذیری بالا
آینده از آن تیمهایی است که به جای مدیریت زیرساختهای پیچیده، بر خلق ارزش از دادهها تمرکز میکنند.
🏷 #Data3 #Lakehouse #AI #Metadata #StreamingData #DuckDB #Iceberg #DeltaLake #BVP #DataEngineering #ModernDataStack #RealTimeAnalytics #OpenSource #DataInfra #Startup #DataPlatform #VentureCapital #FutureOfData
👍2
چطور تسلا با ClickHouse یک پلتفرم مشاهدهپذیری در مقیاس نجومی ساخت؟
مشاهدهپذیری در مقیاس کوادریلیون (هزار بیلیارد) با ClickHouse و پروژهای به نام Comet
داستان تغییر زیرساخت observability تسلا از کجا شروع شد ؟
👨💻 مهندس ارشد تسلا Alon Tal، میگوید:
«ما به سیستمی نیاز داشتیم که بتونه دهها میلیون ردیف در ثانیه را ingest کنه، سالها داده رو نگه داره، و همچنان real-time پاسخ بده.»
چرا Prometheus کافی نبود؟
🔸 مقیاسپذیری افقی محدود
🔸 وابستگی به یک سرور واحد (ریسک از دست دادن کل متریکها)
🔸 مشکلات نگهداری بلندمدت و زبان کوئری محدود
✅ راهحل: ساخت یک سیستم جدید به نام Comet
💡 با استفاده از ClickHouse به عنوان هستهی اصلی، تسلا یک پلتفرم metrics محور ساخت که:
📥 دادهها را از طریق OTLP و Kafka ingest میکند
⚙️ با ETLهای سفارشی دادهها را به شکل ساختیافته وارد ClickHouse میکند
🔄 و مهمتر از همه:
کوئریهای PromQL را به SQL معادل در ClickHouse ترجمه میکند بدون اینکه مهندسان متوجه تفاوت شوند!
🧠 یعنی داشبوردهای موجود (Grafana، Alertmanager، و...) بدون تغییر کار میکنند!
💥 مقیاس واقعی؟
یک میلیارد ردیف در ثانیه! به مدت ۱۱ روز پیاپی!
نتیجه؟
🔹 بدون یک خطا
🔹 مصرف ثابت RAM و CPU
🔹 بیش از ۱ کوادریلیون رکورد با موفقیت ingest شده!
📊 سیستم هنوز هم در حال scale شدن برای تیمهای داخلی تسلاست!
✨ چرا ClickHouse؟
🔹 سرعت بیرقیب در پاسخ به کوئریهای پیچیده
🔹 UDFهای اجرایی برای کوئریهای غیر trivial
🔹 پشتیبانی از PromQL و TraceQL
🔹 نگهداری بلندمدت دادهها با حجم بالا
🔹 و مهمتر از همه: قابلیت اطمینان بالا در مقیاس تسلا!
🔭 آیندهی Comet؟
🔧 پشتیبانی از distributed tracing
🌍 احتمال open-source شدن
🎯 گسترش به دیگر واحدهای عملیاتی در تسلا
📎 جمعبندی
تسلا با پروژهی Comet ثابت کرد که observability در مقیاس سیارهای ممکن است—اگر ابزار مناسب انتخاب شود!
✅ حالا واقعا پرومتئوس حذف شد؟
تسلا Prometheus رو بهطور مستقیم حذف نکرد، ولی:
🌟دیگه از خود Prometheus برای ذخیرهسازی و کوئری استفاده نمیکنه.
🌟 بهجاش، پلتفرمی به نام Comet ساخت که خودش میتونه PromQL (زبان کوئری Prometheus) رو اجرا کنه و پشت صحنه با کلیکهوس ارتباط بگیره و خروجی بده بدون اینکه واقعاً Prometheus وجود داشته باشه!
🔗 منبع اصلی:
https://clickhouse.com/blog/how-tesla-built-quadrillion-scale-observability-platform-on-clickhouse
#ClickHouse #Observability #Tesla #PromQL #DataEngineering #Scalability #TimeSeries #Kafka #DevOps #OpenTelemetry #Infrastructure
مشاهدهپذیری در مقیاس کوادریلیون (هزار بیلیارد) با ClickHouse و پروژهای به نام Comet
داستان تغییر زیرساخت observability تسلا از کجا شروع شد ؟
🔧 چند میلیون خودرو متصل، هزاران زیرسیستم توزیعشده، و گیگافکتوریهایی که شبانهروز داده میفرستند. تسلا در چنین مقیاسی نمیتوانست روی Prometheus حساب باز کند...
👨💻 مهندس ارشد تسلا Alon Tal، میگوید:
«ما به سیستمی نیاز داشتیم که بتونه دهها میلیون ردیف در ثانیه را ingest کنه، سالها داده رو نگه داره، و همچنان real-time پاسخ بده.»
چرا Prometheus کافی نبود؟
🔸 مقیاسپذیری افقی محدود
🔸 وابستگی به یک سرور واحد (ریسک از دست دادن کل متریکها)
🔸 مشکلات نگهداری بلندمدت و زبان کوئری محدود
✅ راهحل: ساخت یک سیستم جدید به نام Comet
💡 با استفاده از ClickHouse به عنوان هستهی اصلی، تسلا یک پلتفرم metrics محور ساخت که:
📥 دادهها را از طریق OTLP و Kafka ingest میکند
⚙️ با ETLهای سفارشی دادهها را به شکل ساختیافته وارد ClickHouse میکند
🔄 و مهمتر از همه:
کوئریهای PromQL را به SQL معادل در ClickHouse ترجمه میکند بدون اینکه مهندسان متوجه تفاوت شوند!
🧠 یعنی داشبوردهای موجود (Grafana، Alertmanager، و...) بدون تغییر کار میکنند!
💥 مقیاس واقعی؟
یک میلیارد ردیف در ثانیه! به مدت ۱۱ روز پیاپی!
نتیجه؟
🔹 بدون یک خطا
🔹 مصرف ثابت RAM و CPU
🔹 بیش از ۱ کوادریلیون رکورد با موفقیت ingest شده!
📊 سیستم هنوز هم در حال scale شدن برای تیمهای داخلی تسلاست!
✨ چرا ClickHouse؟
🔹 سرعت بیرقیب در پاسخ به کوئریهای پیچیده
🔹 UDFهای اجرایی برای کوئریهای غیر trivial
🔹 پشتیبانی از PromQL و TraceQL
🔹 نگهداری بلندمدت دادهها با حجم بالا
🔹 و مهمتر از همه: قابلیت اطمینان بالا در مقیاس تسلا!
🔭 آیندهی Comet؟
🔧 پشتیبانی از distributed tracing
🌍 احتمال open-source شدن
🎯 گسترش به دیگر واحدهای عملیاتی در تسلا
📎 جمعبندی
تسلا با پروژهی Comet ثابت کرد که observability در مقیاس سیارهای ممکن است—اگر ابزار مناسب انتخاب شود!
✅ حالا واقعا پرومتئوس حذف شد؟
تسلا Prometheus رو بهطور مستقیم حذف نکرد، ولی:
🌟دیگه از خود Prometheus برای ذخیرهسازی و کوئری استفاده نمیکنه.
🌟 بهجاش، پلتفرمی به نام Comet ساخت که خودش میتونه PromQL (زبان کوئری Prometheus) رو اجرا کنه و پشت صحنه با کلیکهوس ارتباط بگیره و خروجی بده بدون اینکه واقعاً Prometheus وجود داشته باشه!
🔗 منبع اصلی:
https://clickhouse.com/blog/how-tesla-built-quadrillion-scale-observability-platform-on-clickhouse
#ClickHouse #Observability #Tesla #PromQL #DataEngineering #Scalability #TimeSeries #Kafka #DevOps #OpenTelemetry #Infrastructure
ClickHouse
How Tesla built a quadrillion-scale observability platform on ClickHouse
“Data in ClickHouse is better than data anywhere else. No other system lets you slice and dice your data, ask interesting questions, and get answers in an acceptable amount of time. There’s nothing out there that competes with ClickHouse.” Alon Tal, Senio
👍4❤1
الگوی Outbox و داستان یک راهکار هوشمندانه در پستگرس
https://dev.to/msdousti/postgresql-outbox-pattern-revamped-part-1-3lai/
🎯 الگوی Outbox چیست؟
در یک فروشگاه آنلاین، ثبت سفارش باید چند کار را انجام دهد:
✅ذخیره در پایگاه داده
✅ارسال ایمیل تأیید
✅بهروزرسانی موجودی
✅اطلاع به واحد ارسال
این اکشنها به بروکرهایی مثل Kafka ارسال میشوند تا هر واحد کار خود را انجام دهد.
❓ اگر ارسال پیام به بروکر با خطا مواجه شود؟
Outbox وارد میشود! سفارش در پایگاه داده ذخیره شده و یک پیام در جدول Outbox ثبت میشود. یک سرویس جداگانه پیامها را خوانده و به بروکر میفرستد. در صورت خطا، پیام در جدول باقی میماند تا دوباره برای پردازش ارسال شود اما ...
🔍 چالش: حجم بالای دادهها
با افزایش پیامها در Outbox:
⚠️کوئریهای خواندن پیامهای منتشرنشده کند میشوند.
⚠️ایندکسها به دلیل آپدیتهای مکرر غیربهینه میشوند.
⚠️مصرف منابع سیستم افزایش مییابد.
💡 راهحل: پارتیشنبندی هوشمند
صادق دوستی پیشنهاد میکند جدول Outbox را به دو پارتیشن تقسیم کنیم:
outbox_unpublished: پیامهای منتشرنشده (published_at IS NULL)
outbox_published: پیامهای منتشرشده (published_at NOT NULL)
با این کار، پیامهای جدید به outbox_unpublished میروند و پس از انتشار، بهصورت خودکار به outbox_published منتقل میشوند. بنابراین کوئریها فقط روی پارتیشن سبکتر اجرا میشوند.
🎉 مزایا:
✅سرعت بالا: کوئریها روی پارتیشن کوچکتر اجرا میشوند.
✅مدیریت آسان: حذف پیامهای قدیمی با TRUNCATE سریع است.
✅بهینهسازی منابع: ایندکسها کوچک و کارآمد میمانند.
🏁 جمعبندی
الگوی Outbox برای هماهنگی سیستمهای توزیعشده عالی است، اما پیادهسازی نادرست آن مشکلساز میشود. پارتیشنبندی هوشمند صادق دوستی این الگو را بهینهتر و سریعتر میکند.
🔗 برای جزئیات بیشتر، حتا مقاله صادق در Dev.to را بخوانید!
#outbox #postgres #performance #database #dataengineering
#مهندسی_داده
اخیراً مقالهای از صادق دوستی در Dev.to خواندم که نشان داد با تجربه و تسلط، میتوان برای چالشهای بزرگ، راهحلهایی هوشمندانه و ساده پیدا کرد. یعنی در دنیای فنی، گاهی غرق پیچیدگیها میشویم و راهحلهای ساده اما عمیق را نادیده میگیریم. این پست ادای دینی است به صادق عزیز Sadeq Dousti و مقالات ارزشمندش، و مروری بر مشکل پیادهسازی الگوی Outbox با PostgreSQL در حجم بالای داده و راهحلی خلاقانه برای آن.
https://dev.to/msdousti/postgresql-outbox-pattern-revamped-part-1-3lai/
🎯 الگوی Outbox چیست؟
در یک فروشگاه آنلاین، ثبت سفارش باید چند کار را انجام دهد:
✅ذخیره در پایگاه داده
✅ارسال ایمیل تأیید
✅بهروزرسانی موجودی
✅اطلاع به واحد ارسال
این اکشنها به بروکرهایی مثل Kafka ارسال میشوند تا هر واحد کار خود را انجام دهد.
❓ اگر ارسال پیام به بروکر با خطا مواجه شود؟
Outbox وارد میشود! سفارش در پایگاه داده ذخیره شده و یک پیام در جدول Outbox ثبت میشود. یک سرویس جداگانه پیامها را خوانده و به بروکر میفرستد. در صورت خطا، پیام در جدول باقی میماند تا دوباره برای پردازش ارسال شود اما ...
🔍 چالش: حجم بالای دادهها
با افزایش پیامها در Outbox:
⚠️کوئریهای خواندن پیامهای منتشرنشده کند میشوند.
⚠️ایندکسها به دلیل آپدیتهای مکرر غیربهینه میشوند.
⚠️مصرف منابع سیستم افزایش مییابد.
💡 راهحل: پارتیشنبندی هوشمند
صادق دوستی پیشنهاد میکند جدول Outbox را به دو پارتیشن تقسیم کنیم:
outbox_unpublished: پیامهای منتشرنشده (published_at IS NULL)
outbox_published: پیامهای منتشرشده (published_at NOT NULL)
با این کار، پیامهای جدید به outbox_unpublished میروند و پس از انتشار، بهصورت خودکار به outbox_published منتقل میشوند. بنابراین کوئریها فقط روی پارتیشن سبکتر اجرا میشوند.
🎉 مزایا:
✅سرعت بالا: کوئریها روی پارتیشن کوچکتر اجرا میشوند.
✅مدیریت آسان: حذف پیامهای قدیمی با TRUNCATE سریع است.
✅بهینهسازی منابع: ایندکسها کوچک و کارآمد میمانند.
🏁 جمعبندی
الگوی Outbox برای هماهنگی سیستمهای توزیعشده عالی است، اما پیادهسازی نادرست آن مشکلساز میشود. پارتیشنبندی هوشمند صادق دوستی این الگو را بهینهتر و سریعتر میکند.
🔗 برای جزئیات بیشتر، حتا مقاله صادق در Dev.to را بخوانید!
#outbox #postgres #performance #database #dataengineering
#مهندسی_داده
👍1
معرفی رسمی ClickStack – استک Observability اپنسورس بر پایه ClickHouse
سالها بود که با وجود قدرت بالای ClickHouse در ذخیره و کوئریگیری سریع دادهها، جای یک راهحل Observability واقعی در این اکوسیستم حس میشد.
گرافانا و پلاگینها کموبیش کمک میکردند، اما ساختن یک استک کامل برای ردیابی لاگها، معیارها، تریسها و بازپخش جلسات کاربران، بیشتر شبیه پازلچینی دستی بود. نه کاربرپسند بود، نه قابلاتکا برای محیطهای تولیدی.
اما حالا اوضاع فرق کرده.
با خرید HyperDX در ابتدای سال 2025، کلیکهوس قدم بزرگی در این حوزه برداشت و اخیرا از ClickStack رونمایی کرد:
یک استک کامل، اپنسورس و بسیار سریع برای Observability – ساختهشده بر قلب تپندهی ClickHouse. ❤️🔥
آدرس : https://clickhouse.com/use-cases/observability
📦 مجموعه ابزار ClickStack چیست؟
🔹 یک پلتفرم سبک و قدرتمند برای مانیتورینگ و دیباگ
🔹 سازگار با OpenTelemetry
🔹 شامل رابط کاربری HyperDX، کلکتور سفارشی، و ClickHouse
🔹 آماده برای محیطهای تولیدی، با نصب آسان و تجربهای روان برای تیمها
💡 چرا این اتفاق مهمه؟
تا پیش از این، حتی تیمهایی مثل نتفلیکس که سالها از کلیکهوس برای تحلیل دادههای Observability استفاده میکردند، مجبور بودند ابزارهای اختصاصی خودشون رو بسازند. حالا با ClickStack، همون قدرت و کارایی در اختیار همه هست آن هم به سادگی و سهولت .
✨ ویژگیهای جذاب ClickStack:
✅ جستجوی بسیار سریع در لاگها و تریسها
✅ تجزیهوتحلیل دادههای عظیم بدون نیاز به SQL
✅ مشاهده زندهی لاگها و بازپخش جلسات
✅ پشتیبانی کامل از JSON و schemaهای پویا
✅ همبستگی خودکار بین لاگ، متریک، تریس و سشن
✅ طراحیشده برای کار با دادههای با کاردینالیتی بالا
✅ هشداردهی، تحلیل روند و شناسایی ناهنجاری
🧱 معماری ClickStack
🎯 ClickHouse: قلب پردازش تحلیلی
🎯 OpenTelemetry Collector: جمعآورندهی دادهها با ساختار بهینه
🎯HyperDX UI: رابط کاربری مدرن برای مشاهده و کاوش دادهها
میتونید این اجزا رو مستقل یا بهصورت یکپارچه استفاده کنید. نسخه مبتنی بر مرورگر HyperDX UI هم در دسترسه که میتونه به استقرارهای موجود کلیکهوس متصل بشه – بدون نیاز به زیرساخت اضافه.
📚 طراحی ClickStack بر اساس چند اصل ساده شکل گرفته:
📌نصب سریع و بدون پیچیدگی
📌پشتیبانی از SQL و Lucene-style search برای راحتی توسعهدهندهها
📌دید کامل از سیستم از سشن کاربر تا کوئری دیتابیس
📌سازگاری کامل با اکوسیستم OpenTelemetry
📌و مهمتر از همه: اپنسورس، قابلتوسعه و شفاف
اگر از ClickHouse استفاده میکنید، میتوانید به راحتی به ClickStack مهاجرت کنید و یا حداقل آنرا امتحان کنید.
#ClickStack #ClickHouse #Observability #OpenTelemetry #DevOps #SRE #OpenSource #HyperDX #MonitoringTools #DataEngineering
سالها بود که با وجود قدرت بالای ClickHouse در ذخیره و کوئریگیری سریع دادهها، جای یک راهحل Observability واقعی در این اکوسیستم حس میشد.
گرافانا و پلاگینها کموبیش کمک میکردند، اما ساختن یک استک کامل برای ردیابی لاگها، معیارها، تریسها و بازپخش جلسات کاربران، بیشتر شبیه پازلچینی دستی بود. نه کاربرپسند بود، نه قابلاتکا برای محیطهای تولیدی.
اما حالا اوضاع فرق کرده.
با خرید HyperDX در ابتدای سال 2025، کلیکهوس قدم بزرگی در این حوزه برداشت و اخیرا از ClickStack رونمایی کرد:
یک استک کامل، اپنسورس و بسیار سریع برای Observability – ساختهشده بر قلب تپندهی ClickHouse. ❤️🔥
آدرس : https://clickhouse.com/use-cases/observability
📦 مجموعه ابزار ClickStack چیست؟
🔹 یک پلتفرم سبک و قدرتمند برای مانیتورینگ و دیباگ
🔹 سازگار با OpenTelemetry
🔹 شامل رابط کاربری HyperDX، کلکتور سفارشی، و ClickHouse
🔹 آماده برای محیطهای تولیدی، با نصب آسان و تجربهای روان برای تیمها
💡 چرا این اتفاق مهمه؟
تا پیش از این، حتی تیمهایی مثل نتفلیکس که سالها از کلیکهوس برای تحلیل دادههای Observability استفاده میکردند، مجبور بودند ابزارهای اختصاصی خودشون رو بسازند. حالا با ClickStack، همون قدرت و کارایی در اختیار همه هست آن هم به سادگی و سهولت .
✨ ویژگیهای جذاب ClickStack:
✅ جستجوی بسیار سریع در لاگها و تریسها
✅ تجزیهوتحلیل دادههای عظیم بدون نیاز به SQL
✅ مشاهده زندهی لاگها و بازپخش جلسات
✅ پشتیبانی کامل از JSON و schemaهای پویا
✅ همبستگی خودکار بین لاگ، متریک، تریس و سشن
✅ طراحیشده برای کار با دادههای با کاردینالیتی بالا
✅ هشداردهی، تحلیل روند و شناسایی ناهنجاری
🧱 معماری ClickStack
🎯 ClickHouse: قلب پردازش تحلیلی
🎯 OpenTelemetry Collector: جمعآورندهی دادهها با ساختار بهینه
🎯HyperDX UI: رابط کاربری مدرن برای مشاهده و کاوش دادهها
میتونید این اجزا رو مستقل یا بهصورت یکپارچه استفاده کنید. نسخه مبتنی بر مرورگر HyperDX UI هم در دسترسه که میتونه به استقرارهای موجود کلیکهوس متصل بشه – بدون نیاز به زیرساخت اضافه.
📚 طراحی ClickStack بر اساس چند اصل ساده شکل گرفته:
📌نصب سریع و بدون پیچیدگی
📌پشتیبانی از SQL و Lucene-style search برای راحتی توسعهدهندهها
📌دید کامل از سیستم از سشن کاربر تا کوئری دیتابیس
📌سازگاری کامل با اکوسیستم OpenTelemetry
📌و مهمتر از همه: اپنسورس، قابلتوسعه و شفاف
🎯 برای همهی تیمهایی که دنبال یک راهحل سریع، منعطف و قابلاتکا برای Observability هستند، حالا یک گزینه جامع و بسیار سریع و در عین حال سبک و مقیاس پذیر داریم.
اگر از ClickHouse استفاده میکنید، میتوانید به راحتی به ClickStack مهاجرت کنید و یا حداقل آنرا امتحان کنید.
#ClickStack #ClickHouse #Observability #OpenTelemetry #DevOps #SRE #OpenSource #HyperDX #MonitoringTools #DataEngineering
👍4
پردازش ۱.۲ میلیون پیام در ثانیه با Kafka و Go — معماری سبک اما حرفهای 🎯
وقتی نرخ ورود داده به میلیونها پیام در ثانیه میرسد، عامل تعیینکننده در یک معماری بهینه و سریع و موثر، نه ارتقای پرهزینهی سختافزار است و نه تکیه بر زیرساختهای سنگین ابری، بلکه یک طراحی دقیق، ساده و هوشمندانه است که میتواند تفاوت واقعی را رقم بزند.
📖 اخیراً با مقالهای مواجه شدم که دقیقاً همین رویکرد را نشان میداد: تیمی که با استفاده از مفاهیم سبکوزن مانند goroutine در Go و چند تصمیم مهندسیشده، توانسته بودند تنها با یک سختافزار معمولی، بیش از ۱ میلیون پیام در ثانیه را بهصورت پایدار پردازش کنند.
در این پست، به مرور نکات کلیدی این معماری ساده اما تأثیرگذار میپردازیم — روایتی کاربردی از دنیای مهندسی داده و سیستمهای توزیعشده.
📄 مقاله اصلی:
Kafka at 1M Messages/Second with Go – Our Exact Pipeline Setup 👉 https://freedium.cfd/https://medium.com/@harishsingh8529/kafka-at-1m-messages-second-with-go-our-exact-pipeline-setup-aa2c5473b139
📦 چالشها:
⚠️هجوم سنگین دادهها از دستگاههای IoT و کاربران
⚠️نیاز به پردازش بلادرنگ و ارسال همزمان به چند سرویس
⚠️تضمین پایداری، مانیتورینگ دقیق و ریکاوری خودکار در خطا
🛠 مکانیزمهایی که این معماری را ممکن کردند:
✅ کامیت دستی offsetها:
تأیید دریافت فقط زمانی انجام میشود که پیام کاملاً و با موفقیت پردازش شده باشد — جلوگیری از گمشدن یا پردازش تکراری دادهها.
✅ مکانیزم Worker Pool کنترلشده با goroutine:
بهجای ایجاد goroutine برای هر پیام، یک استخر ثابت از goroutineها (به ازای هر پارتیشن کافکا) با طول کانال مشخص و محدود، تعریف شده است که پیامها را موازی اما کنترلشده پردازش میکنند.
✅ یک Worker Pool به ازای هر پارتیشن Kafka:
مثلاً با ۱۰ پارتیشن و ۵ goroutine برای هر پارتیشن، در مجموع ۵۰ goroutine داریم — بدون همپوشانی، بدون رقابت اضافه.
✅ الگوی Dispatcher برای جداسازی دریافت از پردازش:
- بخش اول: فقط دریافت پیام و ارسال به کانال داخلی (یک کانسیومر به ازای هر پارتیشن)
- بخش دوم: پردازش پیام از صف به کمک Worker Pool
✅ دسته بندی پیام ها یا Batching در ارسال خروجی:
پیامهای پردازششده بهصورت گروهی ارسال میشوند، مثلاً به دیتابیس یا تاپیکهای دیگر Kafka. این کار فشار ارتباطی را کاهش داده و throughput را بالا برده است.
✅مکانیزم Backpressure هوشمند:
با محدود کردن ظرفیت صفها، اگر سیستم تحت فشار شدید قرار گیرد، مصرف از Kafka موقتاً کند یا متوقف میشود تا منابع آزاد شوند. این مکانیزم، از overload جلوگیری کرده و سیستم را در حالت پایدار نگه میدارد.
✅مانیتورینگ دقیق با Prometheus و Grafana:
شاخصهایی مثل تأخیر پردازش، consumer lag و مصرف CPU بهصورت لحظهای مانیتور میشوند — برای تنظیم سریع و واکنش فوری.
📊 نتایج:
- نرخ پردازش: ۱.۲M msg/sec
- تأخیر کل مسیر: <۳ms
- مصرف CPU: ۹۰٪ (پایدار و قابل پیشبینی)
💡 نکات مهم برای مهندسان داده و سیستمهای توزیعشده:
🔹طراحی درست مهمتر از افزایش منابع
🔹 طراحی commit دقیق، batching و backpressure = ستونهای یک سیستم مقاوم
🔹تفکیک دریافت/پردازش + تقسیم کار بین پارتیشنها = مقیاسپذیری مؤثر
🔹مانیتورینگ لحظهای = پاسخ سریع به فشارها و خطاها
#Kafka #GoLang #DataEngineering #HighThroughput #Concurrency #RealTime #ScalableArchitecture #مهندسی_داده #سیستم_توزیع_یافته #معماری_مقیاسپذیر
وقتی نرخ ورود داده به میلیونها پیام در ثانیه میرسد، عامل تعیینکننده در یک معماری بهینه و سریع و موثر، نه ارتقای پرهزینهی سختافزار است و نه تکیه بر زیرساختهای سنگین ابری، بلکه یک طراحی دقیق، ساده و هوشمندانه است که میتواند تفاوت واقعی را رقم بزند.
📖 اخیراً با مقالهای مواجه شدم که دقیقاً همین رویکرد را نشان میداد: تیمی که با استفاده از مفاهیم سبکوزن مانند goroutine در Go و چند تصمیم مهندسیشده، توانسته بودند تنها با یک سختافزار معمولی، بیش از ۱ میلیون پیام در ثانیه را بهصورت پایدار پردازش کنند.
در این پست، به مرور نکات کلیدی این معماری ساده اما تأثیرگذار میپردازیم — روایتی کاربردی از دنیای مهندسی داده و سیستمهای توزیعشده.
📄 مقاله اصلی:
Kafka at 1M Messages/Second with Go – Our Exact Pipeline Setup 👉 https://freedium.cfd/https://medium.com/@harishsingh8529/kafka-at-1m-messages-second-with-go-our-exact-pipeline-setup-aa2c5473b139
📦 چالشها:
⚠️هجوم سنگین دادهها از دستگاههای IoT و کاربران
⚠️نیاز به پردازش بلادرنگ و ارسال همزمان به چند سرویس
⚠️تضمین پایداری، مانیتورینگ دقیق و ریکاوری خودکار در خطا
🛠 مکانیزمهایی که این معماری را ممکن کردند:
✅ کامیت دستی offsetها:
تأیید دریافت فقط زمانی انجام میشود که پیام کاملاً و با موفقیت پردازش شده باشد — جلوگیری از گمشدن یا پردازش تکراری دادهها.
✅ مکانیزم Worker Pool کنترلشده با goroutine:
بهجای ایجاد goroutine برای هر پیام، یک استخر ثابت از goroutineها (به ازای هر پارتیشن کافکا) با طول کانال مشخص و محدود، تعریف شده است که پیامها را موازی اما کنترلشده پردازش میکنند.
✅ یک Worker Pool به ازای هر پارتیشن Kafka:
مثلاً با ۱۰ پارتیشن و ۵ goroutine برای هر پارتیشن، در مجموع ۵۰ goroutine داریم — بدون همپوشانی، بدون رقابت اضافه.
✅ الگوی Dispatcher برای جداسازی دریافت از پردازش:
- بخش اول: فقط دریافت پیام و ارسال به کانال داخلی (یک کانسیومر به ازای هر پارتیشن)
- بخش دوم: پردازش پیام از صف به کمک Worker Pool
✅ دسته بندی پیام ها یا Batching در ارسال خروجی:
پیامهای پردازششده بهصورت گروهی ارسال میشوند، مثلاً به دیتابیس یا تاپیکهای دیگر Kafka. این کار فشار ارتباطی را کاهش داده و throughput را بالا برده است.
✅مکانیزم Backpressure هوشمند:
با محدود کردن ظرفیت صفها، اگر سیستم تحت فشار شدید قرار گیرد، مصرف از Kafka موقتاً کند یا متوقف میشود تا منابع آزاد شوند. این مکانیزم، از overload جلوگیری کرده و سیستم را در حالت پایدار نگه میدارد.
✅مانیتورینگ دقیق با Prometheus و Grafana:
شاخصهایی مثل تأخیر پردازش، consumer lag و مصرف CPU بهصورت لحظهای مانیتور میشوند — برای تنظیم سریع و واکنش فوری.
📊 نتایج:
- نرخ پردازش: ۱.۲M msg/sec
- تأخیر کل مسیر: <۳ms
- مصرف CPU: ۹۰٪ (پایدار و قابل پیشبینی)
💡 نکات مهم برای مهندسان داده و سیستمهای توزیعشده:
🔹طراحی درست مهمتر از افزایش منابع
🔹 طراحی commit دقیق، batching و backpressure = ستونهای یک سیستم مقاوم
🔹تفکیک دریافت/پردازش + تقسیم کار بین پارتیشنها = مقیاسپذیری مؤثر
🔹مانیتورینگ لحظهای = پاسخ سریع به فشارها و خطاها
#Kafka #GoLang #DataEngineering #HighThroughput #Concurrency #RealTime #ScalableArchitecture #مهندسی_داده #سیستم_توزیع_یافته #معماری_مقیاسپذیر
شمارش بازدیدها و اکشنهای کاربر با فناوریهای مدرن داده
در پست قبلی درباره روشهای کلاسیک شمارش بازدید محصولات یا تماشای ویدئو صحبت کردم.
https://t.iss.one/bigdata_ir/445
اما امروز میخواهیم به سراغ راهکارهای مدرنتر برویم. پیشرفتهای اخیر در استکهای داده، امکانات جدیدی برای ما فراهم کرده که فقط محدود به شمارش ساده نیستند.
🎯 هدف ما فقط شمارش نیست!
آنچه امروز اهمیت دارد، ذخیرهسازی دقیق تمام اکشنهای کاربر است.
چرا؟
✅برای شخصیسازی تجربه کاربری بر اساس رفتار هر فرد
✅برای تحلیل عمیق روی محصولات یا ویدئوها و بهبود تجربه کاربران
پس راهکار ایدهآل باید هم شمارش و هم ذخیرهسازی کامل دادهها را پوشش دهد.
🛠 سه راهکار مدرن برای شمارش و ذخیره اکشنها
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
در پست قبلی درباره روشهای کلاسیک شمارش بازدید محصولات یا تماشای ویدئو صحبت کردم.
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
معرفی Kedro 1.0 — فریمورکی حرفهای برای ساخت پروژههای دادهای و هوش مصنوعی 🚀
🔍 چالش اصلی:
در پروژههای دادهای واقعی، دادهها از منابع مختلف میآیند و مراحل متعددی باید طی شود. بدون چارچوبی منظم، کدها بینظم و غیرقابل نگهداری میشوند و همکاری تیمی دشوار میشود.
Kedro این مشکلات را اینطور حل میکند:
📂 تقسیم پروژه به بخشهای مستقل و قابل مدیریت
🔄 تعریف دقیق و قابل تکرار جریانهای کاری (Pipeline)
📚 مدیریت دادهها در یک سیستم منسجم به نام DataCatalog
🤝 استانداردسازی برای همکاری آسانتر تیمی
📊 ابزارهای بصری برای مشاهده و مدیریت اجرای پروژه
⚙️ امکان توسعه و سازگاری با ابزارهای مختلف
💡 ویژگیهای کلیدی Kedro 1.0:
نسخه ۱.۰ با بهبودهای فراوانی به شما قدرت میدهد تا پروژههای پیچیده را با اعتماد اجرا کنید و سریعتر توسعه دهید:
🔄 DataCatalog بازطراحی شده: مدیریت دادهها به شکلی سادهتر و قویتر
🧩 بهبود فضای نام (Namespace): گروهبندی و استفاده انعطافپذیرتر دادهها
🚀 بهبود رانرها: اجرای بهتر و پایدارتر جریانهای کاری
📚 مستندات نوین: راهنمایی آسان و بهروز برای شروع سریع
👁🗨 نمایش وضعیت خط لوله در Kedro Viz: نظارت بصری بر اجرای پروژه
🤖 آماده برای هوش مصنوعی نسل جدید: پشتیبانی از جریانهای کاری پیشرفته و AI مولد
👥 چه کسانی باید از Kedro استفاده کنند؟
- دانشمندان داده و مهندسان یادگیری ماشین که دنبال کدی قابل بازتولید و سازمانیافته هستند
- مهندسان داده که خطوط لوله دادهای پیچیده میسازند و مدیریت میکنند
- تیمها و سازمانهایی که میخواهند همکاری و هماهنگی پروژههای دادهایشان را بهبود دهند
- کسانی که وارد حوزه هوش مصنوعی مولد و پروژههای نوین دادهای میشوند
🌟 چرا Kedro 1.0 را انتخاب کنیم؟
با Kedro، پروژههای دادهای خود را به سطحی کاملاً حرفهای میبرید:
کدی منظم، قابل تست و مقیاسپذیر دارید که به رشد و تغییر پروژه کمک میکند و کار تیمی را سادهتر میکند.
📥 همین امروز شروع کنید!
Kedro ساده نصب میشود و جامعه بزرگی پشت آن است.
برای اطلاعات بیشتر و دریافت مستندات به kedro.org مراجعه کنید.
خلاصه در یک نگاه:
📂 ساختاردهی ماژولار پروژهها
🔄 تعریف و مدیریت جریانهای کاری
📚 DataCatalog پیشرفته
🤝 تسهیل همکاری تیمی
📊 ابزارهای نظارتی و بصری
⚙️ توسعهپذیری و سازگاری با ابزارهای نوین
🤖 آماده برای چالشهای آینده AI
#Kedro #DataScience #MachineLearning #DataEngineering #AI #OpenSource #Python #DataPipeline #MLOps #GenerativeAI
چهارسال پیش هم این پروژه را در سایت مهندسی داده معرفی کردیم :
https://lnkd.in/dbn5pBFH
در دنیای پیچیده داده و یادگیری ماشین، مدیریت پروژههای دادهای با کدهای پراکنده و مراحل متعدد چالش بزرگی است. Kedro با ارائه ساختاری منظم، به شما کمک میکند تا پروژههای خود را قابل توسعه، قابل تکرار و قابل اعتماد بسازید.
🔍 چالش اصلی:
در پروژههای دادهای واقعی، دادهها از منابع مختلف میآیند و مراحل متعددی باید طی شود. بدون چارچوبی منظم، کدها بینظم و غیرقابل نگهداری میشوند و همکاری تیمی دشوار میشود.
Kedro این مشکلات را اینطور حل میکند:
📂 تقسیم پروژه به بخشهای مستقل و قابل مدیریت
🔄 تعریف دقیق و قابل تکرار جریانهای کاری (Pipeline)
📚 مدیریت دادهها در یک سیستم منسجم به نام DataCatalog
🤝 استانداردسازی برای همکاری آسانتر تیمی
📊 ابزارهای بصری برای مشاهده و مدیریت اجرای پروژه
⚙️ امکان توسعه و سازگاری با ابزارهای مختلف
💡 ویژگیهای کلیدی Kedro 1.0:
نسخه ۱.۰ با بهبودهای فراوانی به شما قدرت میدهد تا پروژههای پیچیده را با اعتماد اجرا کنید و سریعتر توسعه دهید:
🔄 DataCatalog بازطراحی شده: مدیریت دادهها به شکلی سادهتر و قویتر
🧩 بهبود فضای نام (Namespace): گروهبندی و استفاده انعطافپذیرتر دادهها
🚀 بهبود رانرها: اجرای بهتر و پایدارتر جریانهای کاری
📚 مستندات نوین: راهنمایی آسان و بهروز برای شروع سریع
👁🗨 نمایش وضعیت خط لوله در Kedro Viz: نظارت بصری بر اجرای پروژه
🤖 آماده برای هوش مصنوعی نسل جدید: پشتیبانی از جریانهای کاری پیشرفته و AI مولد
👥 چه کسانی باید از Kedro استفاده کنند؟
- دانشمندان داده و مهندسان یادگیری ماشین که دنبال کدی قابل بازتولید و سازمانیافته هستند
- مهندسان داده که خطوط لوله دادهای پیچیده میسازند و مدیریت میکنند
- تیمها و سازمانهایی که میخواهند همکاری و هماهنگی پروژههای دادهایشان را بهبود دهند
- کسانی که وارد حوزه هوش مصنوعی مولد و پروژههای نوین دادهای میشوند
🌟 چرا Kedro 1.0 را انتخاب کنیم؟
با Kedro، پروژههای دادهای خود را به سطحی کاملاً حرفهای میبرید:
کدی منظم، قابل تست و مقیاسپذیر دارید که به رشد و تغییر پروژه کمک میکند و کار تیمی را سادهتر میکند.
📥 همین امروز شروع کنید!
Kedro ساده نصب میشود و جامعه بزرگی پشت آن است.
برای اطلاعات بیشتر و دریافت مستندات به kedro.org مراجعه کنید.
خلاصه در یک نگاه:
📂 ساختاردهی ماژولار پروژهها
🔄 تعریف و مدیریت جریانهای کاری
📚 DataCatalog پیشرفته
🤝 تسهیل همکاری تیمی
📊 ابزارهای نظارتی و بصری
⚙️ توسعهپذیری و سازگاری با ابزارهای نوین
🤖 آماده برای چالشهای آینده AI
#Kedro #DataScience #MachineLearning #DataEngineering #AI #OpenSource #Python #DataPipeline #MLOps #GenerativeAI
چهارسال پیش هم این پروژه را در سایت مهندسی داده معرفی کردیم :
https://lnkd.in/dbn5pBFH
❤2
جلسه اول دوره ClickHouse در مدرسه مهندسی داده سپهرام برگزار شد و فیلم بخش نصب و راهاندازی و شروع به کار با ClickHouse اکنون در یوتیوب و صفحه درس دوره منتشر شده است.
دوستانی که تاکنون فرصت نصب و کار کردن با ClickHouse را نداشتهاند اما علاقه دارند با این دیتابیس پرقدرت و سریع تحلیلی آشنا شوند، میتوانند در یک جلسه کوتاه نیمساعته به صورت عملی کار با آن را تجربه کنند.
در این ویدئو خواهید دید:
ـ نصب ClickHouse روی ویندوز با استفاده از WSL
ـ راهاندازی سرور و اتصال اولیه
ـ کار با محیط clickhouse-client
ـ ایجاد دیتابیس و جداول اولیه برای شروع کار
📺 مشاهده ویدئوی جلسه اول:
👉 https://www.youtube.com/watch?v=gGpSbMpfAiM
برای دیدن بخش دوم و ادامه ویدئوهای آموزشی به آدرس زیر مراجعه کنید:
👉 https://sepahram.ir/courses/clickhouse-201/
#ClickHouse #DataEngineering #BigData #Analytics #OLAP #HandsOn
کانال تلگرام سپهرام : @sepahram_school
دوستانی که تاکنون فرصت نصب و کار کردن با ClickHouse را نداشتهاند اما علاقه دارند با این دیتابیس پرقدرت و سریع تحلیلی آشنا شوند، میتوانند در یک جلسه کوتاه نیمساعته به صورت عملی کار با آن را تجربه کنند.
در این ویدئو خواهید دید:
ـ نصب ClickHouse روی ویندوز با استفاده از WSL
ـ راهاندازی سرور و اتصال اولیه
ـ کار با محیط clickhouse-client
ـ ایجاد دیتابیس و جداول اولیه برای شروع کار
📺 مشاهده ویدئوی جلسه اول:
👉 https://www.youtube.com/watch?v=gGpSbMpfAiM
برای دیدن بخش دوم و ادامه ویدئوهای آموزشی به آدرس زیر مراجعه کنید:
👉 https://sepahram.ir/courses/clickhouse-201/
#ClickHouse #DataEngineering #BigData #Analytics #OLAP #HandsOn
کانال تلگرام سپهرام : @sepahram_school
🔥1🙏1
تجربه استفاده از StarRocks در تیم دیتای اسنپ
پست رضا دهقانی در لینکدین
تجربه کار با StarRocks
💡 چرا StarRocks؟
استارراکس خودش رو یه دیتاوروس نسل جدید معرفی میکنه که میتونه دادهها رو هم بلادرنگ (Real-time) و هم Batch پردازش کنه. بدون نیاز به انتقال داده، میشه مستقیم روی Data Lake کوئری زد و با ابزارهای معمول مثل MySQL Client یا BI Tools وصل شد.
✨ تجربه شخصی من:
✅ اتصال به Iceberg خیلی خوب پشتیبانی میشه و کوئریها روان اجرا میشن. کش دیتای قوی باعث میشه سرعت برخی کوئریها حتی روی دیتالیک بالا باشه. این بخش تو هر نسخه جدید بهبود پیدا میکنه.
✅ جوینهای پیچیده رو در زمان معقول اجرا میکنه بدون نیاز به تغییر ساختار دادهها. این قابلیت تو مدلسازی داده خیلی کمک کننده بود.
✅ قابلیت Materialized View به صورت Async: میشه روی دیتالیک یا هر منبع داده دیگه زمانبندی مشخص داد. پشتیبانی از Incremental Refresh هم داره، یعنی لازم نیست کل ویو دوباره پردازش بشه.
✅ سازگاری با Kafka و Spark: امکان خوندن و نوشتن دیتا به صورت Batch، که تو پردازشهای ما خیلی کمک کرد.
⚠️ چالشها و نکات منفی:
«بهش میگم ابزار زیبا با طراحی زشت 😅»
❌ دیپلوی کلاستر خوب مستند نشده و بعضی مواقع نیاز به تغییرات دستی داره.
❌ کانفیگهای زیاد: از یه زاویه خوبه ولی میتونه گیجکننده باشه. مقادیر پیشفرض بعضاً بهینه نیستن.
❌ امنیت هنوز جای کار داره. بعضی تنظیمات پیشفرض باز هستن، ولی سازگاری با LDAP و متدهای احراز هویت خوبه و با کمی تنظیمات قابل اصلاحه.
منبع :
https://www.linkedin.com/posts/reza-dehghani-572b3b154_dataengineering-starrocks-lakehouse-activity-7375817395812257793-B-J-
پست رضا دهقانی در لینکدین
تجربه کار با StarRocks
تو پروژههای کاری دنبال یه راهحل بودیم که بتونیم دادههامون رو همزمان سریع و از منابع مختلف تحلیل کنیم. بعد از بررسی ابزارهای مختلف، StarRocks رو انتخاب کردم و تجربه واقعاً متفاوت و جالبی بود.
💡 چرا StarRocks؟
استارراکس خودش رو یه دیتاوروس نسل جدید معرفی میکنه که میتونه دادهها رو هم بلادرنگ (Real-time) و هم Batch پردازش کنه. بدون نیاز به انتقال داده، میشه مستقیم روی Data Lake کوئری زد و با ابزارهای معمول مثل MySQL Client یا BI Tools وصل شد.
✨ تجربه شخصی من:
✅ اتصال به Iceberg خیلی خوب پشتیبانی میشه و کوئریها روان اجرا میشن. کش دیتای قوی باعث میشه سرعت برخی کوئریها حتی روی دیتالیک بالا باشه. این بخش تو هر نسخه جدید بهبود پیدا میکنه.
✅ جوینهای پیچیده رو در زمان معقول اجرا میکنه بدون نیاز به تغییر ساختار دادهها. این قابلیت تو مدلسازی داده خیلی کمک کننده بود.
✅ قابلیت Materialized View به صورت Async: میشه روی دیتالیک یا هر منبع داده دیگه زمانبندی مشخص داد. پشتیبانی از Incremental Refresh هم داره، یعنی لازم نیست کل ویو دوباره پردازش بشه.
✅ سازگاری با Kafka و Spark: امکان خوندن و نوشتن دیتا به صورت Batch، که تو پردازشهای ما خیلی کمک کرد.
⚠️ چالشها و نکات منفی:
«بهش میگم ابزار زیبا با طراحی زشت 😅»
❌ دیپلوی کلاستر خوب مستند نشده و بعضی مواقع نیاز به تغییرات دستی داره.
❌ کانفیگهای زیاد: از یه زاویه خوبه ولی میتونه گیجکننده باشه. مقادیر پیشفرض بعضاً بهینه نیستن.
❌ امنیت هنوز جای کار داره. بعضی تنظیمات پیشفرض باز هستن، ولی سازگاری با LDAP و متدهای احراز هویت خوبه و با کمی تنظیمات قابل اصلاحه.
منبع :
https://www.linkedin.com/posts/reza-dehghani-572b3b154_dataengineering-starrocks-lakehouse-activity-7375817395812257793-B-J-
Linkedin
#dataengineering #starrocks #lakehouse #warehouse #استارراکس | Reza Dehghani
تو جریان پروژه های کاری دنبال راهحلی بودیم که بتونیم دادههامون رو همزمان سریع و از منابع مختلف تحلیل کنیم. بعد از مقایسه ابزارهای مختلف، در نهایت StarRocks رو انتخاب کردم و تجربه متفاوت و جالبی بود.
استارراکس خودش رو یه دیتاورهوس نسل جدید معرفی میکنه…
استارراکس خودش رو یه دیتاورهوس نسل جدید معرفی میکنه…
❤1👍1🙏1
مهندسی داده
Apache Doris vs ClickHouse.pdf
آپاچی دوریس و سرعت بالا در سناریوهای مبتنی بر JOIN
- توضیحی راجع به pdf بالا ـ
اخیراً گزارشی از سمت VeloDB (Powered by Apache Doris) منتشر شد که در آن، عملکرد Apache Doris و ClickHouse در سناریوهای سنگین مبتنی بر JOIN و کوئریهای تحلیلی پیچیده با هم مقایسه شدهاند.
در همین زمینه، تجربه اخیر اسنپفود با StarRocks (که رضا دهقانی در پست زیر به آن اشاره کرده بود) هم نشان میدهد که انتخاب دیتابیس تحلیلی تصمیمی وابسته به نیازها و شرایط سازمان است و یک پاسخ واحد برای همه سناریوها وجود ندارد.
https://lnkd.in/dvc76Dxa
خلاصه عملکرد (Benchmark Results)
در تستها مشخص شد که در سناریوی CoffeeBench (که به شدت بر JOIN متکی است)، Doris حدود ۴ برابر سریعتر از ClickHouse عمل کرده است. در مجموعه تستهای TPC-H که بار تحلیلی پیچیدهتری دارند، سرعت Doris تا ۳۰ برابر بیشتر گزارش شد. و در نهایت در سناریوهای سنگینتر TPC-DS، Doris تا ۴۰ برابر سریعتر از ClickHouse نتیجه گرفت.
⚙️ مشخصات تست (Test Config):
- 2 × AWS m6i.8xlarge (هرکدام 32 vCPU و 128GiB RAM)
- Apache Doris v3.0.7 در برابر ClickHouse v25.8
- On-premises
📌 لازم به ذکر است که CoffeeBench در ابتدا توسط Josue “Josh” Bogran برای مقایسه Databricks و Snowflake طراحی شده بود، اما به دلیل ماهیت JOIN-heavy خود، اکنون به یکی از معیارهای پرکاربرد برای سنجش دیتابیسهای تحلیلی تبدیل شده است.
#doris #starrocks #clickhouse
- توضیحی راجع به pdf بالا ـ
اخیراً گزارشی از سمت VeloDB (Powered by Apache Doris) منتشر شد که در آن، عملکرد Apache Doris و ClickHouse در سناریوهای سنگین مبتنی بر JOIN و کوئریهای تحلیلی پیچیده با هم مقایسه شدهاند.
من این گزارش را اینجا بازنشر میکنم تا برای دوستانی که به دنبال یک راهکار تحلیلی سریع و مشابه دنیای دیتابیسهای رابطهای هستند، مفید باشد. بهویژه برای کسانی که نیاز به تضمین یکتایی کلید اصلی و اجرای JOINهای متعدد دارند، اما امکان ایجاد جداول denormalized در ClickHouse برایشان مقدور نیست.
در همین زمینه، تجربه اخیر اسنپفود با StarRocks (که رضا دهقانی در پست زیر به آن اشاره کرده بود) هم نشان میدهد که انتخاب دیتابیس تحلیلی تصمیمی وابسته به نیازها و شرایط سازمان است و یک پاسخ واحد برای همه سناریوها وجود ندارد.
https://lnkd.in/dvc76Dxa
خلاصه عملکرد (Benchmark Results)
در تستها مشخص شد که در سناریوی CoffeeBench (که به شدت بر JOIN متکی است)، Doris حدود ۴ برابر سریعتر از ClickHouse عمل کرده است. در مجموعه تستهای TPC-H که بار تحلیلی پیچیدهتری دارند، سرعت Doris تا ۳۰ برابر بیشتر گزارش شد. و در نهایت در سناریوهای سنگینتر TPC-DS، Doris تا ۴۰ برابر سریعتر از ClickHouse نتیجه گرفت.
⚙️ مشخصات تست (Test Config):
- 2 × AWS m6i.8xlarge (هرکدام 32 vCPU و 128GiB RAM)
- Apache Doris v3.0.7 در برابر ClickHouse v25.8
- On-premises
📌 لازم به ذکر است که CoffeeBench در ابتدا توسط Josue “Josh” Bogran برای مقایسه Databricks و Snowflake طراحی شده بود، اما به دلیل ماهیت JOIN-heavy خود، اکنون به یکی از معیارهای پرکاربرد برای سنجش دیتابیسهای تحلیلی تبدیل شده است.
#doris #starrocks #clickhouse
Linkedin
#dataengineering #starrocks #lakehouse #warehouse #استارراکس | Reza Dehghani
تو جریان پروژه های کاری دنبال راهحلی بودیم که بتونیم دادههامون رو همزمان سریع و از منابع مختلف تحلیل کنیم. بعد از مقایسه ابزارهای مختلف، در نهایت StarRocks رو انتخاب کردم و تجربه متفاوت و جالبی بود.
استارراکس خودش رو یه دیتاورهوس نسل جدید معرفی میکنه…
استارراکس خودش رو یه دیتاورهوس نسل جدید معرفی میکنه…
👍2🙏1
از Postgres تا Lakehouse زنده در کمتر از یک ثانیه - نگاهی به Mooncake و استراتژی جسورانه Databricks
مدتها بود که پروژه Pg_mooncake رو زیر نظر داشتم تا ببینم کی به مرحله نهایی میرسه ، پروژهای نوآور که میخواست Postgres رو با Iceberg ترکیب کنه و دادههای تحلیلی و عملیاتی رو روی یک پایه مشترک بیاره.
و حالا… دیدم که Databricks این تیم خلاق رو هم خریداری کرده! درست مثل خرید قبلیشون یعنی Neon (نسخهی cloud-native از Postgres).
لینک خبر :
https://www.linkedin.com/posts/databricks_were-excited-to-announce-that-databricks-activity-7379138538652696576-2pbr
💡 اما Mooncake دقیقاً چی بود و چرا مهمه؟
به زبان ساده، Mooncake کمک میکنه دادههایی که در Postgres ذخیره میشن به کمک یک افزونه پستگرس که با rust نوشته شده، تقریباً بلافاصله و بدون نیاز به ابزارهای پیچیده، داخل یک لیکهوس با فرمت آیسبرگ یا دلتا ذخیره شده و برای تحلیل و گزارش های سنگین با انواع کوئری انجین ها مثل ترینو، استارراکز، اسپارک و حتی کلیکهوس آماده بشن.
با ترکیب Postgres و Iceberg و با استفاده از امکانات خود mooncake:
🔰 دادهها بهصورت زنده (real-time) همگام میشن حتی با آپدیت و حذف
🔰 تحلیلها با کمک DuckDB سریع انجام میشن،
🔰 و همهچی بدون پیچیدگی ETL یا کپیکاری، در همون لحظه قابل استفادهست.
یه جور پل بین ذخیرهسازی عملیاتی و تحلیل زندهست - دقیقاً همون چیزی که خیلی از شرکتها مدتهاست دنبالش بودن.
🎯 واقعاً مشخص نیست دقیقاً چه استراتژی بزرگی پشت این خریدهاست، اما چیزی که واضحه اینه که Databricks داره آینده پایگاههای داده Postgres-محور رو با هوش مصنوعی و تحلیل real-time بازتعریف میکنه.
👋 به تیم Mooncake تبریک میگم، و مشتاقم ببینم در ادامه چه اتفاقات بزرگی رقم میزنن!
شروع رسمی دوره پستگرس کاربردی در مدرسه مهندسی داده سپهرام:
https://sepahram.ir/courses/
#Databricks #Mooncake #Postgres #Iceberg #Lakehouse #OLTP #AI #Lakebase #DataEngineering #OpenSourc
مدتها بود که پروژه Pg_mooncake رو زیر نظر داشتم تا ببینم کی به مرحله نهایی میرسه ، پروژهای نوآور که میخواست Postgres رو با Iceberg ترکیب کنه و دادههای تحلیلی و عملیاتی رو روی یک پایه مشترک بیاره.
و حالا… دیدم که Databricks این تیم خلاق رو هم خریداری کرده! درست مثل خرید قبلیشون یعنی Neon (نسخهی cloud-native از Postgres).
لینک خبر :
https://www.linkedin.com/posts/databricks_were-excited-to-announce-that-databricks-activity-7379138538652696576-2pbr
بهنظر میرسه دیتابریکز داره با قدرت وارد فضای Lakehouse + OLTP + AI میشه. چیزی که خودشون اسمش رو گذاشتن Lakebase؛ پایگاهدادهای مبتنی بر Postgres که برای Agentهای هوش مصنوعی بهینهسازی شده و عملاً نیاز به ETL رو از بین میبره.
💡 اما Mooncake دقیقاً چی بود و چرا مهمه؟
به زبان ساده، Mooncake کمک میکنه دادههایی که در Postgres ذخیره میشن به کمک یک افزونه پستگرس که با rust نوشته شده، تقریباً بلافاصله و بدون نیاز به ابزارهای پیچیده، داخل یک لیکهوس با فرمت آیسبرگ یا دلتا ذخیره شده و برای تحلیل و گزارش های سنگین با انواع کوئری انجین ها مثل ترینو، استارراکز، اسپارک و حتی کلیکهوس آماده بشن.
با ترکیب Postgres و Iceberg و با استفاده از امکانات خود mooncake:
🔰 دادهها بهصورت زنده (real-time) همگام میشن حتی با آپدیت و حذف
🔰 تحلیلها با کمک DuckDB سریع انجام میشن،
🔰 و همهچی بدون پیچیدگی ETL یا کپیکاری، در همون لحظه قابل استفادهست.
یه جور پل بین ذخیرهسازی عملیاتی و تحلیل زندهست - دقیقاً همون چیزی که خیلی از شرکتها مدتهاست دنبالش بودن.
🎯 واقعاً مشخص نیست دقیقاً چه استراتژی بزرگی پشت این خریدهاست، اما چیزی که واضحه اینه که Databricks داره آینده پایگاههای داده Postgres-محور رو با هوش مصنوعی و تحلیل real-time بازتعریف میکنه.
👋 به تیم Mooncake تبریک میگم، و مشتاقم ببینم در ادامه چه اتفاقات بزرگی رقم میزنن!
شروع رسمی دوره پستگرس کاربردی در مدرسه مهندسی داده سپهرام:
https://sepahram.ir/courses/
#Databricks #Mooncake #Postgres #Iceberg #Lakehouse #OLTP #AI #Lakebase #DataEngineering #OpenSourc
Linkedin
Databricks Acquires Mooncake Labs to Boost Lakebase | Databricks posted on the topic | LinkedIn
We’re excited to announce that Databricks has acquired Mooncake Labs to accelerate the vision of Lakebase, a new category of OLTP database built on Postgres and optimized for AI agents!
AI agents are transforming application development, and traditional…
AI agents are transforming application development, and traditional…
👍3😱1
دو منبع عالی برای یادگیری سریع و عمیق Airflow 3 📚
چند ماه از انتشار رسمی Airflow 3 میگذرد و حالا وقت آن است که ببینیم دقیقاً چه چیزهایی تغییر کرده و چرا این نسخه نقطه عطف مهمی در مسیر این پلتفرم محبوب مدیریت جریان کاری داده (workflow orchestration) محسوب میشود.
در این نوشته میخواهیم دو منبع فوقالعاده را معرفی کنیم که بهجای خواندن دهها صفحه مستندات یا تماشای ویدیوهای پراکنده، شما را مستقیم و مؤثر به قلب Airflow 3 میبرند.
گاهی برای درک عمیقتر و تجربهی واقعی، باید سراغ منابعی رفت که با نگاه حرفهای نوشته شدهاند - منابعی که نهتنها توضیح میدهند چطور کار میکند، بلکه کمک میکنند در عمل بهتر بسازید.
حالا که چند ماه از انتشار نسخه ۳ میگذرد، اگر هنوز با نسخه ۲ کار میکنید، باید بدانید از خیلی از قابلیتهای جدید و بهینهسازیهای Airflow 3 بینصیب ماندهاید.
دو منبع زیر بهترین نقطهی شروع برای درک تفاوتها و یادگیری عملی نسخه ۳ هستند 👇
1️⃣ جزوه مروری بر امکانات ایرفلو ۳ از Astronomer
یک مرور سریع و فشرده (حدود ۹ صفحه) از همهی قابلیتهای جدید Airflow 3 - ایدهآل برای کسانی که میخواهند در چند دقیقه بفهمند دقیقاً چه تغییراتی در انتظارشان است. البته با این پیشفرض که با ایرفلو قبلا آشنا هستید.
2️⃣ کتاب Practical Guide to Apache Airflow 3 از Manning
از ساخت اولین pipeline تا معماری جدید، UI بهروز، نسخهبندی DAGها و حتی اجرای inference با OpenAI - همهچیز در قالب مثالهای عملی و توضیحات تصویری ارائه شده است آنهم در ۱۴۰ صفحه، مفید و مختصر
📘 فهرست فصلها در یک نگاه:
✅آشنایی با Airflow 3
✅ساخت اولین pipeline
✅قابلیت اطمینان و زمانبندی
✅ واسط کاربری جدید و DAG Versioning
✅معماری داخلی نسخه ۳
✅حرکت به محیط Production
✅اجرای inference
✅مهاجرت از نسخه ۲
✅آینده Airflow
💡 اگر به دنبال یادگیری جدی نسخه ۳ و امکانات جذاب و کاربردی آن هستید:
✨ با جزوه Astronomer شروع کنید تا دید کلی بگیرید،
✨ و سپس با کتاب Manning جلو بروید تا Airflow 3 را بهصورت عملی و حرفهای تجربه کنید.
برای دانلود این دو pdf به دو پست قبلی، مراجعه کنید. 👆👆👆
کانال مدرسه مهندسی داده سپَهرام : آموزشهای تخصصی مهندسی داده : @sepahram_school
#ApacheAirflow #DataEngineering #ETL #WorkflowAutomation #ManningBooks #Astronomer #OpenAI #Airflow3 #DataOps
چند ماه از انتشار رسمی Airflow 3 میگذرد و حالا وقت آن است که ببینیم دقیقاً چه چیزهایی تغییر کرده و چرا این نسخه نقطه عطف مهمی در مسیر این پلتفرم محبوب مدیریت جریان کاری داده (workflow orchestration) محسوب میشود.
در این نوشته میخواهیم دو منبع فوقالعاده را معرفی کنیم که بهجای خواندن دهها صفحه مستندات یا تماشای ویدیوهای پراکنده، شما را مستقیم و مؤثر به قلب Airflow 3 میبرند.
گاهی برای درک عمیقتر و تجربهی واقعی، باید سراغ منابعی رفت که با نگاه حرفهای نوشته شدهاند - منابعی که نهتنها توضیح میدهند چطور کار میکند، بلکه کمک میکنند در عمل بهتر بسازید.
حالا که چند ماه از انتشار نسخه ۳ میگذرد، اگر هنوز با نسخه ۲ کار میکنید، باید بدانید از خیلی از قابلیتهای جدید و بهینهسازیهای Airflow 3 بینصیب ماندهاید.
دو منبع زیر بهترین نقطهی شروع برای درک تفاوتها و یادگیری عملی نسخه ۳ هستند 👇
1️⃣ جزوه مروری بر امکانات ایرفلو ۳ از Astronomer
یک مرور سریع و فشرده (حدود ۹ صفحه) از همهی قابلیتهای جدید Airflow 3 - ایدهآل برای کسانی که میخواهند در چند دقیقه بفهمند دقیقاً چه تغییراتی در انتظارشان است. البته با این پیشفرض که با ایرفلو قبلا آشنا هستید.
2️⃣ کتاب Practical Guide to Apache Airflow 3 از Manning
اگر میخواهید با Airflow 3 بهصورت واقعی و پروژهمحور کار کنید، این کتاب انتخاب فوقالعادهای است.
از ساخت اولین pipeline تا معماری جدید، UI بهروز، نسخهبندی DAGها و حتی اجرای inference با OpenAI - همهچیز در قالب مثالهای عملی و توضیحات تصویری ارائه شده است آنهم در ۱۴۰ صفحه، مفید و مختصر
📘 فهرست فصلها در یک نگاه:
✅آشنایی با Airflow 3
✅ساخت اولین pipeline
✅قابلیت اطمینان و زمانبندی
✅ واسط کاربری جدید و DAG Versioning
✅معماری داخلی نسخه ۳
✅حرکت به محیط Production
✅اجرای inference
✅مهاجرت از نسخه ۲
✅آینده Airflow
💡 اگر به دنبال یادگیری جدی نسخه ۳ و امکانات جذاب و کاربردی آن هستید:
✨ با جزوه Astronomer شروع کنید تا دید کلی بگیرید،
✨ و سپس با کتاب Manning جلو بروید تا Airflow 3 را بهصورت عملی و حرفهای تجربه کنید.
برای دانلود این دو pdf به دو پست قبلی، مراجعه کنید. 👆👆👆
کانال مدرسه مهندسی داده سپَهرام : آموزشهای تخصصی مهندسی داده : @sepahram_school
#ApacheAirflow #DataEngineering #ETL #WorkflowAutomation #ManningBooks #Astronomer #OpenAI #Airflow3 #DataOps
👍3
Forwarded from مدرسه مهندسی داده سپهرام
وقتی Kafka سادهتر، سریعتر و سبکتر میشود: آشنایی با Redpanda در دوره تخصصی کافکا 🎥
در بخش تازهای از دوره آموزش تخصصی کافکا در مدرسه مهندسی داده سپهرام، با یکی از جایگزینهای قدرتمند و مدرن Kafka یعنی Redpanda آشنا میشویم.
در این ویدیو که بهصورت کارگاهی و کاملاً عملی برگزار شده است، مراحل زیر را گامبهگام انجام میدهیم 👇
🔹 راهاندازی یک کلاستر تکنودی از Redpanda به همراه Redpanda Console
🔹 اجرای دو رابط کاربری معروف دنیای Kafka یعنی AKHQ و Kafka-UI (Kafbat) و بررسی سازگاری کامل آنها با Redpanda
🔹 کار با ابزار خط فرمان rpk برای مدیریت کلاستر و پیکربندیها
🔹 ساخت یک پایپلاین واقعی با Redpanda Connect و زبان Bloblang برای پردازش فایلهای CSV
🔹 و در نهایت، اجرای PostgreSQL CDC با استفاده از Kafka Connect + Debezium برای همگامسازی بلادرنگ دادهها
این بخش از دوره، دیدی جامع از تواناییهای Redpanda در دنیای استریم دیتا و جایگاه آن در اکوسیستم Kafka ارائه میدهد.
📺 ویدیو کامل این کارگاه را میتوانید از طریق لینک زیر در یوتیوب مشاهده کنید:
👉 🔗 https://youtu.be/nu_L4OSRUZc
🎓 این ویدیو بخشی از دوره آموزش تخصصی Kafka از مدرسه مهندسی داده سپهرام (Sepahram) است.
برای مشاهده دورهها به آدرس زیر مراجعه کنید:
🌐 https://sepahram.ir/courses/
📢 کانال رسمی سپهرام در تلگرام:
📬 https://t.iss.one/sepahram_school
🔖 #Kafka #Redpanda #StreamingData #DataEngineering #Debezium #PostgreSQL #KafkaConnect #RealTimeData #Sepahram #مدرسه_مهندسی_داده #کافکا #داده_جاری #مهندسی_داده
در بخش تازهای از دوره آموزش تخصصی کافکا در مدرسه مهندسی داده سپهرام، با یکی از جایگزینهای قدرتمند و مدرن Kafka یعنی Redpanda آشنا میشویم.
در این ویدیو که بهصورت کارگاهی و کاملاً عملی برگزار شده است، مراحل زیر را گامبهگام انجام میدهیم 👇
🔹 راهاندازی یک کلاستر تکنودی از Redpanda به همراه Redpanda Console
🔹 اجرای دو رابط کاربری معروف دنیای Kafka یعنی AKHQ و Kafka-UI (Kafbat) و بررسی سازگاری کامل آنها با Redpanda
🔹 کار با ابزار خط فرمان rpk برای مدیریت کلاستر و پیکربندیها
🔹 ساخت یک پایپلاین واقعی با Redpanda Connect و زبان Bloblang برای پردازش فایلهای CSV
🔹 و در نهایت، اجرای PostgreSQL CDC با استفاده از Kafka Connect + Debezium برای همگامسازی بلادرنگ دادهها
این بخش از دوره، دیدی جامع از تواناییهای Redpanda در دنیای استریم دیتا و جایگاه آن در اکوسیستم Kafka ارائه میدهد.
📺 ویدیو کامل این کارگاه را میتوانید از طریق لینک زیر در یوتیوب مشاهده کنید:
👉 🔗 https://youtu.be/nu_L4OSRUZc
🎓 این ویدیو بخشی از دوره آموزش تخصصی Kafka از مدرسه مهندسی داده سپهرام (Sepahram) است.
برای مشاهده دورهها به آدرس زیر مراجعه کنید:
🌐 https://sepahram.ir/courses/
📢 کانال رسمی سپهرام در تلگرام:
📬 https://t.iss.one/sepahram_school
🔖 #Kafka #Redpanda #StreamingData #DataEngineering #Debezium #PostgreSQL #KafkaConnect #RealTimeData #Sepahram #مدرسه_مهندسی_داده #کافکا #داده_جاری #مهندسی_داده
❤7👍2
Forwarded from مدرسه مهندسی داده سپهرام
وقتی SQL هم حلقه For دارد! نگاهی به Lateral Join در PostgreSQL
اگر در حوزه نرمافزار، تحلیل داده یا دیتابیس کار میکنید، احتمالاً با انواع JOINهای معمول در SQL مثل INNER JOIN و LEFT JOIN آشنا هستید.
اما یکی از جوینهایی که کمتر دربارهاش صحبت میشود و در عین حال بسیار مفید و کاربردی محسوب میشود، LATERAL JOIN است.
بیایید با یک مثال شروع کنیم 👇
فرض کنید یک جدول از محصولات دارید و میخواهید برای هر محصول، آمارهایی مثل:
🔰 مجموع کل فروش،
🔰حجم فروش،
🔰تعداد مشتریان منحصربهفرد،
🔰و میانگین فروش
در سه ماه گذشته را بهدست آورید (به تفکیک ماه).
اگر بخواهید این کار را با زبانهایی مثل Python یا JavaScript انجام دهید، معمولاً یک حلقه (for) روی تمام محصولات اجرا میکنید و درون آن، برای هر محصول، محاسبات آماری مربوط به فروش را انجام میدهید.
در واقع، یک حلقه بیرونی برای محصولات و یک حلقه داخلی برای فروشهای هر محصول دارید. در SQL هم میتوان دقیقاً همین رفتار را شبیهسازی کرد: با استفاده از LATERAL JOIN.
اینجاست که Lateral مثل یک پل ارتباطی عمل میکند:
به همین دلیل معمولاً از CROSS JOIN LATERAL استفاده میکنیم، چون شرط اتصال درون زیرکوئری و با WHERE تعریف میشود و در اینجا Inner Join معنا نخواهد داشت.
💫 نتیجه این رهیافت
میتوانید بهسادگی کوئریهایی بنویسید که مثلاً:
🌟 «ده محصول پرفروش هر کتگوری» را پیدا کند،
🌟یا برای هر مشتری، آخرین تراکنش ثبتشدهاش را نمایش دهد،
🌟یا حتی تحلیلهای زمانی و Top-N را مستقیماً داخل SQL انجام دهد: بدون نیاز به کدهای پیچیده و توابع پنجرهای
🎥 برای آشنایی دقیقتر با این مفهوم، یک ویدئوی آموزشی حدود ۴۰ دقیقهای آماده کردهام که در آن، با مثالهای واقعی و کاربردی نحوهی استفاده از LATERAL JOIN را گامبهگام توضیح دادهام.
🔗 لینک مشاهده ویدئو در یوتیوب:
👉 https://youtu.be/vVc2EewTSQU
💡 در این ویدئو یاد موارد زیر را به صورت عملی مرور میکنیم:
✅ایدهی اصلی و کاربرد LATERAL JOIN
✅تفاوت آن با جوینهای معمول
✅نوشتن کوئریهای Top-N per Group
✅تحلیل دادههای واقعی (مشتریان، فروش، زمان)
✅و نکات مهم برای بهینهسازی عملکرد کوئری
📚 این ویدئو بخشی از دورهی PostgreSQL Practical Course در مدرسه مهندسی داده سپهرام است.
👉 https://sepahram.ir/courses
#PostgreSQL #SQL #DataEngineering #Database #LateralJoin #Sepahram #BigData #PostgresTutorial #Analytics
اگر در حوزه نرمافزار، تحلیل داده یا دیتابیس کار میکنید، احتمالاً با انواع JOINهای معمول در SQL مثل INNER JOIN و LEFT JOIN آشنا هستید.
اما یکی از جوینهایی که کمتر دربارهاش صحبت میشود و در عین حال بسیار مفید و کاربردی محسوب میشود، LATERAL JOIN است.
بیایید با یک مثال شروع کنیم 👇
فرض کنید یک جدول از محصولات دارید و میخواهید برای هر محصول، آمارهایی مثل:
🔰 مجموع کل فروش،
🔰حجم فروش،
🔰تعداد مشتریان منحصربهفرد،
🔰و میانگین فروش
در سه ماه گذشته را بهدست آورید (به تفکیک ماه).
اگر بخواهید این کار را با زبانهایی مثل Python یا JavaScript انجام دهید، معمولاً یک حلقه (for) روی تمام محصولات اجرا میکنید و درون آن، برای هر محصول، محاسبات آماری مربوط به فروش را انجام میدهید.
در واقع، یک حلقه بیرونی برای محصولات و یک حلقه داخلی برای فروشهای هر محصول دارید. در SQL هم میتوان دقیقاً همین رفتار را شبیهسازی کرد: با استفاده از LATERAL JOIN.
اینجاست که Lateral مثل یک پل ارتباطی عمل میکند:
⚡️ به زیرکوئری اجازه میدهد به دادههای هر ردیف از جدول اصلی دسترسی داشته باشد. یعنی در زیرکوئری، رکوردها ابتدا بر اساس رابطه آنها با جدول اصلی فیلتر میشوند و سپس محاسبات آماری روی آنها انجام میشود و نهایتا هم در کنار رکوردهای جدول اصلی قرار میگیرند.
به همین دلیل معمولاً از CROSS JOIN LATERAL استفاده میکنیم، چون شرط اتصال درون زیرکوئری و با WHERE تعریف میشود و در اینجا Inner Join معنا نخواهد داشت.
💫 نتیجه این رهیافت
میتوانید بهسادگی کوئریهایی بنویسید که مثلاً:
🌟 «ده محصول پرفروش هر کتگوری» را پیدا کند،
🌟یا برای هر مشتری، آخرین تراکنش ثبتشدهاش را نمایش دهد،
🌟یا حتی تحلیلهای زمانی و Top-N را مستقیماً داخل SQL انجام دهد: بدون نیاز به کدهای پیچیده و توابع پنجرهای
🎥 برای آشنایی دقیقتر با این مفهوم، یک ویدئوی آموزشی حدود ۴۰ دقیقهای آماده کردهام که در آن، با مثالهای واقعی و کاربردی نحوهی استفاده از LATERAL JOIN را گامبهگام توضیح دادهام.
🔗 لینک مشاهده ویدئو در یوتیوب:
👉 https://youtu.be/vVc2EewTSQU
💡 در این ویدئو یاد موارد زیر را به صورت عملی مرور میکنیم:
✅ایدهی اصلی و کاربرد LATERAL JOIN
✅تفاوت آن با جوینهای معمول
✅نوشتن کوئریهای Top-N per Group
✅تحلیل دادههای واقعی (مشتریان، فروش، زمان)
✅و نکات مهم برای بهینهسازی عملکرد کوئری
📚 این ویدئو بخشی از دورهی PostgreSQL Practical Course در مدرسه مهندسی داده سپهرام است.
👉 https://sepahram.ir/courses
#PostgreSQL #SQL #DataEngineering #Database #LateralJoin #Sepahram #BigData #PostgresTutorial #Analytics
❤8👍2