مهندسی داده
792 subscribers
112 photos
7 videos
24 files
314 links
BigData.ir کانال رسمی وب سایت
مطالبی راجع به مهندسی داده و طراحی زیرساخت‌های پردازش دیتا و ابزارهای مدرن دیتا
ارتباط با ادمین: @smbanaei
گروه تخصصی مهندسی داده 👇
https://t.iss.one/bigdata_ir_discussions2
کانال یوتیوب 👇
https://www.youtube.com/@irbigdata
Download Telegram
معرفی افزونه رسمی PostgreSQL برای Visual Studio Code — توسط مایکروسافت 🐘
🔔 مناسب برای توسعه‌دهندگان، مهندسان داده، و همه‌ی علاقه‌مندان به PostgreSQL

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


📊 زمینه‌سازی و ضرورت این ابزار:
بر اساس نظرسنجی‌های توسعه‌دهندگان (StackOverflow، GitHub، Stripe Atlas Reports)، بیش از نیمی از زمان کاری توسعه‌دهندگان صرف کارهای تکراری یا تغییر کانتکست بین ابزارهای مختلف (IDE، PgAdmin، ترمینال، ابزارهای مانیتورینگ و...) می‌شود. افزونه جدید PostgreSQL با هدف رفع این چالش‌ها، یک محیط یکپارچه و هوشمند در خود VS Code فراهم می‌کند.

🎯 قابلیت‌های کلیدی این افزونه:

1. 🧠 پشتیبانی از GitHub Copilot با دستور @pgsql
افزونه به‌صورت کامل با GitHub Copilot مجتمع شده است و از دستورات مخصوص @pgsql پشتیبانی می‌کند:
نوشتن و بازنویسی کوئری‌های SQL با زبان طبیعی (انگلیسی)
دریافت پیشنهادات بهینه‌سازی کوئری
توضیح عملکرد کوئری‌های پیچیده
تولید کوئری‌های چندمرحله‌ای: مثلاً "یک دیتابیس بساز، جدول بساز، PostGIS فعال کن، داده درج کن"
استفاده از حالت "Chat Agent" برای تعامل طبیعی‌تر با Copilot به‌صورت گفت‌وگویی

2. 📜 تاریخچه کامل کوئری‌ها (Query History)
یکی از ویژگی‌های بسیار مفید این افزونه، ثبت خودکار تاریخچه تمام کوئری‌های اجراشده است. می‌توانید به‌راحتی کوئری‌های قبلی را مرور، ویرایش، یا دوباره اجرا کنید. حتی پس از بستن و باز کردن مجدد VS Code، تاریخچه کوئری‌ها حفظ می‌شود.

3. 🧭 مرورگر دیتابیس (Database Explorer)
این قابلیت به شما اجازه می‌دهد ساختار دیتابیس (جداول، ویوها، ایندکس‌ها، توابع و ...) را به‌صورت گرافیکی مرور کرده و بدون نیاز به نوشتن کوئری، عملیات‌هایی مانند ایجاد، ویرایش یا حذف انجام دهید.

4. 🧾 هوش مصنوعی در نوشتن SQL (SQL IntelliSense)
تکمیل خودکار اسامی جداول و ستون‌ها
نمایش خطاهای سینتکسی حین نوشتن
فرمت خودکار کوئری‌ها (با قابلیت شخصی‌سازی)
پشتیبانی از توضیح خط به خط کوئری‌ها با استفاده از Copilot

5. 🗺 نمایش گرافیکی جداول
با یک کلیک می‌توانید ساختار دیتابیس را به‌صورت گرافیکی (ERD) مشاهده کرده و روابط بین جداول را تحلیل کنید.

6. 🔐 احراز هویت ایمن
اگر از Azure Database for PostgreSQL استفاده می‌کنید، امکان احراز هویت با Azure Entra ID (بدون نیاز به ذخیره پسورد) فراهم شده است — مناسب برای سازمان‌هایی با الزامات امنیتی خاص.

7. 🔄 مدیریت چندین اتصال (Multi-Profile)
می‌توانید چندین پروفایل اتصال (مثلاً PostgreSQL روی لوکال، Docker، Cloud) تعریف کرده و به‌راحتی بین آن‌ها سوییچ کنید. حتی امکان اتصال مستقیم به دیتابیس‌های Azure از طریق "Browse Azure" نیز فراهم است.

📦 نحوه نصب افزونه :

افزونه PostgreSQL را سرچ کرده، افزونه آبی رنگ و مدرنی که متعلق به مایکروسافت هست را نصب کنید.

افزونه GitHub Copilot را نیز فعال کنید تا از ویژگی‌های @pgsql بهره ببرید


📘 مستندات کامل: https://techcommunity.microsoft.com/blog/adforpostgresql/announcing-a-new-ide-for-postgresql-in-vs-code-from-microsoft/4414648
👍4
معرفی DuckLake: ساده‌سازی Lakehouse با قدرت SQL

🔍 فرض کنید می‌خواهیم رفتار کاربران روی یک فروشگاه آنلاین را تحلیل کنیم. آمار کلی مثل نرخ کلیک، نرخ تبدیل و زمان حضور را در پایگاه‌داده ذخیره می‌کنیم — اما داده‌های ریز و حجیم مثل تک‌تک کلیک‌های کاربران روی محصولات را به صورت خام ذخیره می‌کنیم، بدون اینکه دیتابیس‌های عملیاتی را سنگین کنیم. این داده‌های خام به شکلی بهینه ذخیره می‌شوند که هر زمان نیاز داشتیم بتوانیم روی آن‌ها کوئری اجرا کنیم و تحلیل عمیق‌تری داشته باشیم.

🧠 این همان فلسفه‌ی #Lakehouse است:

ترکیب بهترین ویژگی‌های Data Lake (انعطاف و مقیاس‌پذیری) و Data #Warehouse (ساختارمندی و قابلیت تحلیل)

اما واقعیت این است که #Lakehouse ها در عمل با پیچیدگی‌هایی همراه هستند:
برای هر جدول، باید اطلاعاتی مانند schema، نسخه‌ها، تغییرات، پارتیشن‌بندی و ... در فراداده‌ها نگه داشته شود. این یعنی نیاز به سیستم‌های اضافی کاتالوگ‌ها، متادیتا‌ها و گاهی سرویس‌‌های اضافی برای مدیریت نسخه‌ها

اما : چرا وقتی به هر حال به یک دیتابیس نیاز داریم (برای کاتالوگ)، از ابتدا همه چیز را در SQL مدیریت نکنیم؟


📢 امروز #DuckDB با معرفی #DuckLake، پاسخی جسورانه و منطقی به این سوال داده است.

اما سوال اصلی : DuckLake چیست؟


استاندارد DuckLake یک فرمت Open Table جدید برای معماری Lakehouse است که:

داده‌ها را در قالب‌های باز مانند Parquet در Blob Storage ذخیره می‌کند؛

اما تمام فراداده‌ها (metadata)، snapshotها، schemaها و آمار را در یک پایگاه داده SQL ساده (مثل PostgreSQL یا خود DuckDB) مدیریت می‌کند.

🔍 چرا DuckLake یک تغییر بنیادین است؟

1. سادگی واقعی

برخلاف Iceberg و Delta که برای یک append ساده، باید چندین فایل JSON و Avro ایجاد یا به‌روز کرد، در DuckLake همه چیز فقط چند query ساده SQL است.
نیازی به لایه‌ی اضافه‌ی catalog server یا فایل‌های اضافی نیست. فقط یک دیتابیس و فایل‌های Parquet.

2. مدیریت تراکنش‌پذیر (ACID) واقعی

تغییرات در جدول‌ها، snapshotها و آمار ستون‌ها در یک تراکنش واحد SQL انجام می‌شود. این یعنی:
📌atomic commitها؛
📌پشتیبانی از تغییرات پیچیده و multi-table؛
📌 بدون ترس از ناسازگاری فایل‌ها در blob storage.

3. سازگاری، مقیاس‌پذیری و سرعت
می‌توانید DuckLake را با DuckDB روی لپ‌تاپ اجرا کنید یا با PostgreSQL روی کلاود.
برخلاف ساختارهای فایل‌محور، پردازش‌ها سریع‌تر، قابل کش‌شدن و قابل مشاهده‌اند.
محدود به هیچ vendor خاصی نیستید؛ جابه‌جایی آسان است.

🏗 یک نگاه به معماری DuckLake:

📁 داده‌ها → Parquet روی S3 یا هر blob store

📚 فراداده → SQL Tables روی DuckDB/PostgreSQL/...

🔁 عملیات → فقط SQL transactions ساده با DuckDB

🧠 چرا مهم است؟

در حالی که بسیاری از معماری‌های داده در مسیر «Lakehouse» پیچیدگی‌های جدیدی اضافه می‌کنند، DuckLake مسیر را به عقب برمی‌گرداند و از یک حقیقت ساده دفاع می‌کند:

وقتی که به هر حال از یک دیتابیس استفاده می‌کنیم، چرا بقیه‌ی بخش‌ها را هم در همان قالب SQL مدیریت نکنیم؟

📌 نتیجه‌گیری

استاندارد DuckLake نه فقط یک فرمت جدید، بلکه بازاندیشی دوباره‌ای است در طراحی Lakehouse — مبتنی بر اصل «سادگی، مقیاس‌پذیری، سرعت». اگر به دنبال آینده‌ای پایدارتر، قابل نگهداری‌تر و بدون vendor lock-in برای lakehouse هستید، DuckLake را جدی بگیرید.

📎 مطالعه‌ی کامل مقاله: https://duckdb.org/2025/05/27/ducklake.html

#DuckDB #DuckLake #DataEngineering #Lakehouse #OpenFormats #SQL #Parquet #PostgreSQL
4👍1👌1
معرفی Supabase: فراتر از یک پایگاه داده؛ جعبه‌ابزاری کامل برای توسعه اپلیکیشن‌ها

در یکی دو سال اخیر، نام Supabase بارها به گوشم خورده بود.

در ابتدا تصور می‌کردم با یک سرویس آنلاین برای میزبانی #PostgreSQL طرف هستیم؛ یک دیتابیس ساده و کاربردی برای مدیریت داده.

اما وقتی کنجکاو شدم و بررسی بیشتری انجام دادم، متوجه شدم ماجرا بسیار فراتر از یک پایگاه داده است.

🧰 سوپابیس در واقع یک چارچوب متن‌باز و یکپارچه برای توسعه سریع اپلیکیشن‌هاست؛ ابزاری که تمامی نیازهای بک‌اند، از دیتابیس گرفته تا API و احراز هویت و ذخیره فایل را به‌صورت آماده در اختیار توسعه‌دهندگان قرار می‌دهد.


📦 همین جامع‌بودن و سادگی استفاده، مخصوصاً برای تیم‌های کوچک یا استارتاپ‌هایی که در حال تبدیل ایده به محصول هستند، باعث شد تصمیم بگیرم تجربه‌ام را از کشف این ابزار و همچنین داستان شکل‌گیری آن، با شما به اشتراک بگذارم—به‌ویژه حالا که #Supabase با جذب ۲۰۰ میلیون دلار سرمایه در آوریل ۲۰۲۵، به ارزش‌گذاری ۲ میلیارد دلاری رسیده است.



💡 نقطه شروع: وقتی یک ایده جذاب دارید...

فرض کنید یک ایده خلاقانه برای اپلیکیشن در ذهن دارید.

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

اما به‌محض اینکه به بخش بک‌اند می‌رسید، چالش‌های واقعی آغاز می‌شوند:


🚫 طراحی دیتابیس، نوشتن APIها، پیاده‌سازی احراز هویت، مدیریت فایل‌ها و...

⚙️ در این شرایط، #Supabase مانند یک راه‌حل آماده و قابل‌اعتماد و سریع وارد میدان می‌شود.

اصلا شعار این پلتفرم هم همین است : «در یک آخر هفته بساز؛ برای میلیون‌ها کاربر آماده شو.»



🧬 سوپابیس چگونه متولد شد؟

سوپابیس در سال ۲۰۲۰ توسط Paul Copplestone و Ant Wilson تأسیس شد؛

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

🔥 در آن زمان Firebase محصول مطرحی بود، اما به دلیل ساختار بسته‌اش، گزینه جذابی برای جامعه متن‌باز محسوب نمی‌شد.

🔓 ایده Supabase: نسخه‌ای متن‌باز از Firebase، با تکیه بر قدرت PostgreSQL 💪



🛠 چه امکاناتی Supabase را متمایز می‌کند؟


Supabase یک جعبه‌ابزار کامل برای توسعه‌ی بک‌اند است، شامل:

پستگرس قدرتمند (با JSONB، جست‌وجوی متنی و اکستنشن‌ها)

داشتن APIهای خودکار (REST و GraphQL)

سیستم احراز هویت یکپارچه (ورود با Google، GitHub و...)

فضای ذخیره‌سازی فایل امن و مقیاس‌پذیر

پشتیبانی از داده‌های بلادرنگ (Realtime)

رابط گرافیکی برای مدیریت داده‌ها

توابع لبه Edge Functions و replication در مقیاس جهانی

کاملاً متن‌باز و قابل‌نصب روی هر سروری



🌍 چرا Supabase تا این حد محبوب شده است؟

📊 بیش از ۲ میلیون توسعه‌دهنده در حال استفاده

📦 بیش از ۳.۵ میلیون دیتابیس فعال

🏢 استفاده توسط شرکت‌هایی مثل Mozilla، GitHub، OpenAI



دلایل محبوبیت:

⚡️ راه‌اندازی سریع

🌱 جامعه بزرگ متن‌باز (۸۰K+ ستاره در GitHub)

🧠 سازگاری با نیازهای AI و داده‌های برداری

💸 حمایت سرمایه‌گذاران معتبر (Y Combinator, Accel و...)



🤖 سوپابیس و آینده هوش مصنوعی

سوپابیس در حال آماده‌سازی زیرساختی مناسب برای نسل بعدی اپلیکیشن‌های AI است:

🧠 توابع لبه - Edge Functions

🕒 زمان‌بندی با Cron

🧭 جست‌وجوی برداری


🧩 سخن آخر : قدرت متن‌باز در برابر غول‌ها

💥 رسیدن به ارزش ۲ میلیارد دلاری فقط در چند سال نشان می‌دهد که قدرت جامعه و ابزارهای بازمتن در حال شکل‌دادن به آینده توسعه بک‌اند هستند.

مخزن کد پروژه : https://lnkd.in/gpdbXFWv
👍2
The Story of Supabase (1).pdf
476 KB
مرتبط با پست بالا 👆👆👆
چگونه با ClickHouse زیرساخت کمپین بازاریابی شخصی‌سازی‌شده اسنپ! مارکت را طراحی کردیم؟ 🎯

این مقاله ترجمه ای است از :

https://medium.com/@prmbas/clickhouse-in-the-wild-an-odyssey-through-our-data-driven-marketing-campaign-in-q-commerce-93c2a2404a39

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

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

📦 کمپین سوپرسنج: شخصیت خرید شما چیست؟

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

اجزای اصلی کمپین:

🧑‍💼 پروفایل شخصی: آمارهایی مثل تاریخ اولین سفارش، مجموع کوپن‌های استفاده‌شده و مسافت طی‌شده توسط پیک‌ها

🧠 تست شخصیت خرید: تخصیص تیپ‌های شخصیتی بر اساس رفتار خرید (مثلاً «تنقلاتی راحت‌طلب» یا «قهوه‌دوست اقتصادی»)

🤖 محتوای طنز با هوش مصنوعی: تولید دیالوگ و داستان کوتاه بر اساس داده‌های مشتری، با استفاده از LLMها


🔧 ساختار فنی: معماری چندلایه پردازش داده

برای پشتیبانی از چنین تجربه‌ای، ما لایه‌های مختلفی از پردازش داده را در نظر گرفتیم:

🟫 لایه برنز : داده‌های خام شامل سفارش‌ها، اطلاعات کاربران، و متادیتاهای مربوط به محصولات در بازه‌ای چهارساله

🟪 لایه نقره: پردازش‌های تحلیلی میانی با استفاده از SQL و Python، ذخیره‌شده به‌شکل فایل‌های Parquet

🟨 لایه طلا : خروجی نهایی شامل برچسب‌های شخصیتی، آمار اختصاصی، و JSONهایی که به مدل‌های زبانی برای تولید متن تزریق می‌شد

⚠️ چالش فنی: جوین‌های سنگین و مصرف بالای حافظه

در مراحل اولیه، از الگوریتم پیش‌فرض Join در ClickHouse استفاده کردیم. اما با رشد داده‌ها و افزایش پیچیدگی کوئری‌ها، مصرف حافظه سر به فلک کشید و در مواردی منجر به کرش شد.

برای حل این مشکل، با بررسی دقیق مستندات ClickHouse و رفتارهای کوئری، به الگوریتم partial_merge مهاجرت کردیم.

‍‍‍-- changing join algorithm in the current CLI session
SET join_algortim = 'partial_merge';

-- data easlity stored in a parquet file
-- default path: /var/lib/clickhouse/user_files
INSERT INTO FUNCTION file('temp_data.parquet', Parquet)
SELECT *
FROM [db1].[table1] AS t1
LEFT JOIN [db2].[table2] AS t2 ON t1.[column1] = t2.[column2];


نتیجه:

💥پایداری بیشتر در کوئری‌های سنگین

💥کاهش چشمگیر استفاده از RAM

💥حذف نیاز به ایجاد جداول staging برای ترکیب داده‌ها


🚀 قابلیت‌های ویژه ClickHouse که بهره‌برداری کردیم:

🌱 خواندن مستقیم فایل‌های Parquet از مسیرهای محلی و شبکه‌ای

🌱 توابع تحلیلی سطح بالا مانند argMax, groupArray, corr, toStartOfInterval

🌱 پشتیبانی بومی از JSON و آرایه‌ها برای ذخیره داده‌های ساخت‌یافته در فرمت نیمه‌ساخت‌یافته

🌱 اتصال Real-time به داشبورد Grafana برای مشاهده نتایج و رفتار کمپین در زمان اجرا

📈 نتیجه نهایی


کمپین سوپرسنج با مشارکت بیش از ۱۰۰ هزار کاربر در مدتی کوتاه، به‌عنوان یکی از موفق‌ترین کمپین‌های داده‌محور در صنعت تجارت الکترونیک ایران شناخته شد. این موفقیت تنها به دلیل طراحی خلاقانه و محتوای طنز نبود؛ بلکه به لطف یک زیرساخت داده‌ای دقیق، سریع، و بومی‌سازی‌شده به دست آمد — زیرساختی که علی‌رغم نبود زیرساخت‌های ابری بین‌المللی، بر پایه ابزارهای متن‌باز مانند ClickHouse توسعه یافت و در مقیاس وسیع به‌کار گرفته شد.
2👍1
اگر #SQLite با فضای ابری ترکیب می‌شد چه می‌شد؟

تصور کنید مثل همیشه می‌خواهید سریع یک ایده را پیاده کنید. مثلاً یک اپ ساده که قیمت گوشی‌ها یا لپ‌تاپ‌ها را از سایت‌هایی مثل دیجی‌کالا، ترب و زومیت جمع می‌کند، تحلیل‌هایی انجام می‌دهد (مثل ارزان‌ترین فروشنده یا نمودار تغییرات قیمت در یک ماه گذشته) و نتایج را در یک رابط وب یا اپلیکیشن موبایل ساده نمایش می‌دهد.

خب طبیعتاً در مراحل اولیه، هیچ‌کس نمی‌خواهد دردسر راه‌اندازی پایگاه داده سنگین مثل PostgreSQL، MongoDB یا مدیریت یک REST API کامل را به جان بخرد. ترجیح می‌دهید همه‌چیز ساده باشد؛ دقیقاً مثل تجربه کار با #SQLite: یک فایل دیتابیس کنار برنامه، بدون نیاز به سرور، بدون کانفیگ پیچیده.

اما یک مشکل هست: اگر بخواهید چند برنامه (مثل یک crawler، یک سرویس API ساده، و یک رابط کاربری React) همزمان از همان دیتابیس استفاده کنند، دیگر فایل لوکال #SQLite کافی نیست. چون این فایل فقط در یک جاست — روی دیسک محلی. پس یا باید سرور راه بیندازید، یا دنبال راهی باشید که این فایل دیتابیس لوکال، روی فضای ابری باشد و همه‌ اپ‌ها انگار از همان فایل مشترک می‌خوانند.

🎯 اینجاست که #SlateDB وارد می‌شود.

📦 دیتابیس #SlateDB: دیتابیس تعبیه‌شده بدون دیسک، نوشته‌شده با Rust . این دیتابیس مثل SQLite ساده و سبک است، اما با یک تفاوت مهم:

📂 به جای نوشتن روی دیسک، همه‌چیز مستقیماً روی فضای ابری مثل Amazon S3 یا سرویس‌های داخلی مثل پارس‌پک، آروان‌کلاد یا ستون ذخیره می‌شود.

💡 یعنی برنامه شما همچنان مثل SQLite ساده و سریع است، ولی انگار همه‌ اپ‌ها به یک دیتابیس مشترک روی ابر وصل‌اند.

🔍 برگردیم به مثال: تحلیل قیمت گوشی‌ها در بازار ایران - با SlateDB:

نیازی به پایگاه‌داده مرکزی ندارید.

کراولر فقط داده‌ها را در #SlateDB ذخیره می‌کند.

همه اپ‌ها همزمان از همان #SlateDB - یعنی همان فضای استوریج، داده‌ها را می‌خوانند.

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

بدون نیاز به تعریف API پیچیده یا سرور مرکزی.


🚀 چرا SlateDB انتخاب خوبی است؟

سادگی: مثل SQLite، می‌توانید آن را مستقیماً داخل برنامه (embed) کنید.

📦 مقیاس‌پذیری: با تکیه بر #ObjectStorage، نیاز به شارد یا ریپلیکیشن ندارید؛ خود فضا مقیاس‌پذیر است.

🧩 بدون نیاز به سرور: دیگر لازم نیست دیتابیس جداگانه راه‌اندازی و مدیریت کنید.

👥 پشتیبانی از خوانندگان متعدد: چند اپ یا سرویس می‌توانند همزمان بدون مشکل داده‌ها را بخوانند.


💡 معماری بدون دیسک: آینده دیتابیس‌های سبک و ابری


در الگوی #ZeroDiskArchitecture، برنامه‌ها دیگر نیازی به دیسک محلی ندارند و مستقیماً داده‌ها را روی فضاهای ابری مانند S3 می‌نویسند. این رویکرد با حذف پیچیدگی سرورها، راهی ساده، مقیاس‌پذیر و مقرون‌به‌صرفه برای ساخت اپ‌های serverless، edge-based، و مخصوصاً crawlerهای توزیع‌شده و IoT ارائه می‌دهد.


🎯 دیتابیس#SlateDB نمونه‌ای عملی از این ترند است — دیتابیسی سبک و بدون سرور که مانند SQLite در برنامه embed می‌شود، اما داده‌ها را روی فضای ابری نگه می‌دارد.

⚠️ محدودیت‌های SlateDB

🖊 تک‌نویسنده: فقط یک نویسنده همزمان مجاز است؛ برای نوشتارهای موازی، باید از صف پیام یا پارتیشن‌بندی استفاده شود.

🐢 تأخیر نوشتن: latency نوشتن به دلیل استفاده از Object Storage بین ۵۰ تا ۱۰۰ میلی‌ثانیه است.

🔒 نبود تراکنش (فعلاً): قابلیت‌هایی مثل snapshot isolation هنوز در حال توسعه هستند.
👍4
پستگرس در عصر هوش مصنوعی: از انتخاب استارتاپ‌ها تا تمرکز غول‌های فناوری


در نیمه اول ۲۰۲۵، #PostgreSQL بار دیگر نشان داد که فقط یک پایگاه‌داده نیست؛ بلکه قلب تپنده‌ی تحول در زیرساخت‌های داده و هوش مصنوعی است. خبرهای مهم، سرمایه‌گذاری‌های سنگین، و توسعه سریع اکوسیستمش، گویای یک واقعیت جدید هستند:

🧠 #پستگرس حالا یکی از بازیگران اصلی در عصر AI است.




🔹 📣 خبر داغ: #Snowflake + Crunchy Data = Snowflake Postgres

در کنفرانس Snowflake Summit 2025 اعلام شد:


💼 غول دنیای انباره‌های داده ابری یعنی Snowflake شرکت Crunchy Data رو با ارزش ۲۵۰ میلیون دلار خرید.

🎯 هدف: توسعه یک نسخه سازمانی و تقویت‌شده از #PostgreSQL با تمرکز روی نیازهای AI و بارهای کاری حساس.

این خرید نشان‌دهنده تغییری بزرگ در استراتژی #Snowflake است؛ شرکتی که تا امروز بیشتر با انبار داده اختصاصی‌اش شناخته می‌شد.

🔹 سرمایه‌گذاری‌های بزرگ دیگر:

💰 شرکت #Databricks، یکی از بازیگران اصلی حوزه #Lakehouse، استارتاپ #Neon رو با حدود ۱ میلیارد دلار خرید.

🌱 ابزار محبوب #Supabase، محبوب‌ترین پلتفرم متن‌باز #PostgreSQL، در سری D مبلغ ۲۰۰ میلیون دلار جذب کرد (ارزش‌گذاری: ۲ میلیارد دلار).

📌 این‌ها نشون می‌دهند که #PostgreSQL از یک دیتابیس محبوب برای پروژه‌های کوچک، به زیرساخت اصلی پلتفرم‌های داده نسل بعدی تبدیل شده.


🔹 چرا PostgreSQL این‌قدر مهم شده؟

انعطاف‌پذیر و چندمنظوره: از SQL استاندارد تا JSON و جستجوی متنی

قابل توسعه: اکستنشن‌هایی مثل pgvector برای داده‌های برداری (AI/LLM)

مقیاس‌پذیر: ابزارهایی مثل Citus و TimescaleDBبرای بارهای سنگین

امن و متن‌باز: بدون vendor lock-in، با اکوسیستم غنی


📈 در دو سال اخیر:


🔹چندین افزونه برای جستجوی برداری

🔹ابزارهای اتصال PostgreSQL به LLMها

🔹و حتی ساخت لِیک‌هوس با PostgreSQL

منتشر شده‌اند. این یعنی PostgreSQL آماده‌ی دنیای AI-first است.

اما یک نکته مهم دیگر وجود دارد :

🔹 از MVP تا Enterprise: مسیری طبیعی برای استارتاپ‌ها

بیشتر استارتاپ‌ها با PostgreSQL شروع می‌کنن چون:

👶 سریع، ساده، بدون هزینه لایسنس

🧪 ابزارهای کامل توسعه و تست

📚 مستندات و جامعه فعال

اما با رشد محصول و پیچیده‌تر شدن نیازها، معمولاً به نسخه‌های Managed و Enterprise مهاجرت می‌کنن:


☁️ Azure Database for PostgreSQL

🧱 Crunchy Bridge

🏢 EDB Postgres Advanced

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

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

🎯 جمع‌بندی:

پستگرس حالا دیگر فقط "پایگاه‌داده موردعلاقه دولوپرها" نیست. بلکه تبدیل شده به زبان مشترک زیرساخت‌های داده در عصر AI — از گاراژ استارتاپ‌ها تا دیتاسنتر غول‌ها.

#PostgreSQL #AI #DataInfra #DataEngineering #pgvector #StartupTools #EnterpriseTech #Snowflake #Databricks #Supabase #OpenSource #PostgresAI #DatabaseTrends #Lakehouse #MLOps
👍6
مهندسی داده
Uber Data Infra.pdf
معماری داده شرکت اوبر
ساخت ETL با SQL؛ ساده، سریع و بدون وابستگی به زیرساخت سنگین

در دنیای مهندسی داده، ساخت یک فرآیند ETL معمولاً نیازمند زیرساخت‌هایی پیچیده، ابزارهایی سنگین و دانش فنی نسبتاً بالا بود. اما اکنون، با ظهور ابزارهای سبک و ماژولار مانند DuckDB، می‌توان همین فرآیند را با چند خط SQL ساده انجام داد؛ بدون نیاز به نصب پلتفرم‌های حجیم یا نوشتن کدهای پیچیده.

🎬 فرض کنیم با داده‌های جریانی سروکار دارید
کافکا یکی از متداول‌ترین ابزارها برای مدیریت داده‌های جریانی (streaming data) است. معمولاً برای خواندن این داده‌ها و انجام پردازش، به ابزارهایی مانند Apache Flink، Spark Streaming یا سیستم‌های مدیریت جریان نیاز داریم.

اما حالا با افزونه‌ای به نام Tributary برای DuckDB، می‌توان مستقیماً از Kafka داده‌ها را خواند، پردازش کرد و به مقصد موردنظر نوشت – تماماً با SQL.


🧩 افزونه Tributary چه کاری انجام می‌دهد؟
افزونه Tributary یک افزونه رسمی برای DuckDB است که امکان اتصال مستقیم به Kafka را فراهم می‌کند. این افزونه با تابع tributary_scan_topic پیام‌های Kafka را به‌صورت یک جدول قابل خواندن در اختیار شما می‌گذارد:

SELECT * FROM tributary_scan_topic('clicks_topic', "bootstrap.servers" := 'localhost:9092');

در اینجا، داده‌های Kafka به‌صورت real-time به DuckDB وارد می‌شوند و آماده تحلیل، فیلتر یا انتقال به سیستم‌های دیگر هستند.

🧩 اما خود DuckDB چیست؟
در دنیای مهندسی داده و تحلیل، ابزارهای سبک و مستقل نقش پررنگ‌تری پیدا کرده‌اند. یکی از مهم‌ترین این ابزارها، DuckDB است٫ یک پایگاه داده تحلیلی درون‌فرایندی (in-process analytical database) که می‌توان آن را مشابه SQLite اما مخصوص تحلیل‌های ستونی و پیچیده دانست.

در حالی‌که SQLite برای تراکنش‌های کوچک در موبایل و نرم‌افزارهای تعبیه‌شده طراحی شده، DuckDB برای تحلیل‌های ستونی، پردازش سریع فایل‌های Parquet و اجرای کوئری‌های تحلیلی سنگین ساخته شده است — آن هم بدون نیاز به سرور یا نصب پیچیده..

💡 کاربردهای عملی این رویکرد چیست؟

تحلیل سریع روی پیام‌های Kafka بدون نیاز به سیستم‌های تحلیلی سنگین.

ساخت pipelineهای سبک ETL با استفاده از SQL.

انتقال داده‌ها از Kafka به فایل‌های Parquet، PostgreSQL، یا حتی ارسال مجدد به Kafka (با افزونه‌های مکمل مانند duckdb_kafka_sink).

⚙️ نحوه استفاده و راه‌اندازی
نصب و راه‌اندازی Tributary در DuckDB بسیار ساده است:

INSTALL tributary FROM community;
LOAD tributary;


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

🚀 یک گام به سوی آینده‌ی ساده‌تر در مهندسی داده
ابزارهایی مانند DuckDB به همراه افزونه‌هایی مانند Tributary، نمایانگر جهتی هستند که دنیای داده به آن حرکت می‌کند: سادگی، ماژولار بودن، و استفاده حداکثری از زبان استاندارد SQL.

دیگر لازم نیست برای پیاده‌سازی یک ETL ساده، سیستم‌های بزرگ و پیچیده مستقر شود. گاهی یک فایل SQL کافی‌ست.

در صورتی که علاقه‌مند به ساخت ETL سبک‌وزن با SQL هستید یا به دنبال راه‌حلی ساده برای تحلیل جریان داده‌ها در Kafka می‌گردید، پیشنهاد می‌کنم حتماً نگاهی به افزونه Tributary بیندازید.

https://query.farm/duckdb_extension_tributary.html
پ.ن. عکس و ایده اصلی پست از مطلب زیر در لینکدین گرفته شده است:
https://www.linkedin.com/posts/rusty-conover_kafka-duckdb-streamingdata-activity-7339109125852676096-3QWs
استک داده‌های مدرن: راهکاری برای آینده یا زباله‌دانی پرزرق‌وبرق؟🔥

📌 این پست ترجمه و تلخیص‌شده‌ای است از مقاله‌ای در Medium به قلم Timo de Vos

📄 لینک مقاله اصلی: The Modern Data Stack Is a Dumpster Fire

https://medium.com/@tfmv/the-modern-data-stack-is-a-dumpster-fire-b1aa81316d94

در سال‌های اخیر، با رشد فضای فناوری داده، با موجی از ابزارها و چارچوب‌های نوظهور مواجه بوده‌ایم که زیر عنوان «استک داده مدرن» معرفی می‌شوند؛ از ابزارهای ETL بدون کدنویسی گرفته تا کوپایلوت‌های مبتنی بر هوش مصنوعی و معماری‌های پیچیده ابری.

اما سؤال اساسی که بسیاری از سازمان‌ها در میانه راه با آن مواجه می‌شوند این است:

آیا کسب‌وکار ما واقعاً به این سطح از پیچیدگی نیاز دارد؟


⚠️ چالش‌های پنهان در استک‌های به‌ظاهر مدرن

بسیاری از تیم‌ها، حتی در شرکت‌های کوچک و استارتاپ‌ها، درگیر استک‌هایی می‌شوند که:

❗️ هزینه‌های عملیاتی پیش‌بینی‌نشده به همراه دارند (مثل صورت‌حساب‌های ابری چند ده هزار دلاری)

❗️ زمان راه‌اندازی و نگهداری بالا دارند (افزودن یک منبع داده = هفته‌ها هماهنگی)

❗️ اتکای بیش‌ازحد به ابزارهای AI باعث بروز خطاهای غیرقابل ردیابی می‌شود (مثلاً Copilotهایی که پیشنهادهای اشتباه JOIN می‌دهند)

📉 یک مثال واقعی: تیمی «مدرن» که برای ساخت سه داشبورد ساده، بالغ بر ۴۰۰,۰۰۰ دلار هزینه کرد؛ در حالی‌که رقیب‌شان، با DuckDB و یک اسکریپت پایتون ساده، در کمتر از یک روز همان نتایج را به‌دست آورد.



رویکرد ساده و مؤثر Watershed

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

ویژگی‌های معماری داده Watershed:

🟢 استفاده از ادغام‌های ساده و آماده با سیستم‌های رایج مانند Salesforce، NetSuite و...

🟢 پردازش داده‌ها با ابزارهای سبک و محلی‌محور مانند DuckDB و Polars

🟢 حذف کامل نیاز به پایگاه داده‌های عظیم یا پایپلاین‌های پیچیده

🟢 تحویل گزارش‌های حسابرسی‌پذیر سریع و دقیق به مشتریان بزرگ مانند Airbnb، Spotify و Visa

نتیجه؟ کاهش هزینه‌ها، افزایش شفافیت، و حفظ کنترل کامل بر داده‌ها.


🧭 راهکارهایی برای طراحی استک داده ساده، مؤثر و پایدار

بر اساس تجربیات واقعی مانند Watershed و تحلیل دقیق مقاله، مسیر موفقیت در ساده‌سازی معماری داده شامل موارد زیر است:

1️⃣ سادگی ساختاری


معماری باید به‌قدری ساده باشد که در کمتر از یک ساعت برای عضو جدید تیم قابل توضیح باشد.

2️⃣ پیچیدگی بر اساس نیاز


بیشتر سازمان‌ها داده‌های «واقعاً بزرگ» ندارند. پردازش صدها میلیون ردیف داده، روی یک لپ‌تاپ مدرن با DuckDB یا Polars کاملاً امکان‌پذیر است.

3️⃣ مهاجرت تدریجی و کم‌هزینه

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

4️⃣ استفاده کنترل‌شده از هوش مصنوعی

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

5️⃣ حذف ابزارهای بدون ارزش واقعی

اگر ابزاری ارزش افزوده ملموس ندارد، کنار گذاشته شود. سادگی = بهره‌وری بیشتر.

نتیجه‌گیری

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

🔹 گاهی یک اسکریپت ساده در Python به همراه DuckDB روی لپ‌تاپ، کارآمدتر از یک کلاستر پیچیده و پرهزینه عمل می‌کند.

🔹 آینده معماری داده، در سادگی، شفافیت و سرعت پاسخ‌گویی به نیاز کسب‌وکار نهفته است.
1
https://x.com/hejazizo/status/1939250468699423088?t=mnyhQdoIOgTowag3fhwz-g&s=19
آقا بهترین کورس ماشین‌لرنینگی که میشد رو دارم کامل آپلود می‌کنم روی یوتیوب. اینقدر این دوره کامل و ترکیبی از تئوری و مباحث practical شد خودم خیلی کیف کردم. خلاصه که اگه می‌خواین یاد بگیرین همه چیز رو توی این دوره گفتم
7
کافکا رفت و انقلاب شد! در ویدئو جدید درباره Kafka Raft صحبت میکنیم تا باهم ببینیم کافکا چطوری به این تحمل خطای بالا رسیده است.
اگر دوست دارین بدونید KRaft چطوری کار میکنه این ویدئو ببینید 💣

00:55 مروری بر Raft
11:50 نقش Zookeeper چیست؟
18:08 در کافکا Control Plan و Data Plan چیست؟
19:45 بررسی چند سناریو failover در zookeeper
26:38 بهبود های Raft در Kafka
32:30 ساختار متفاوت KRaft به نسبت Raft
36:30 سناریو failover در KRaft
46:10 رشد دیتا در کافکا بینهایت است؟

لینک ویدئو: https://lnkd.in/e_zcfRc5
پلی لیست: Kafka Like a Pro (https://lnkd.in/e9KghDuD)
مدت ویدئو: 48 دقیقه
https://www.youtube.com/watch?v=ZT2V4d4lxAo&ab_channel=CodeWithHSN
👍31
آینده مهندسی داده از نگاه نتفلیکس، Airbnb و Databricks 🚀

📌 اوایل خرداد، نتفلیکس در رویداد سالانه‌ی خود یعنی Data Engineering Open Forum 2025، پنلی جذاب با عنوان «آینده مهندسی داده» برگزار کرد که در آن سه متخصص از غول‌های فناوری دیدگاه‌های‌شان را درباره آینده این حوزه به اشتراک گذاشتند.

🔸 Tikica (مدیر پنل – مهندس ارشد نتفلیکس)

🔸 Ryan Blue (هم‌بنیان‌گذار Databricks و سازنده Iceberg)

🔸 Jerry (مهندس ارشد Airbnb)

🔸 Ena (مهندس داده در نتفلیکس)

در این پنل، از مسیرهای شغلی تا چالش‌های امروز و مهارت‌های فردا صحبت شد. خلاصه‌ای از نکات مطرح‌شده را در ادامه می‌خوانید:

🎥 ویدئوی ۲۰ دقیقه‌ای این پنل: https://www.youtube.com/watch?v=VVWjdsuNrwE&ab_channel=NetflixEngineering

🔮 ۱. هوش‌مصنوعی؛ دستیار قدرتمند، نه تهدید

💬 برخلاف تصور رایج، #GenAI شغل مهندس داده را تهدید نمی‌کند، بلکه ابزار توانمندی برای کمک در کارهای پیچیده و تکراری‌ست:

بازنویسی کوئری و کمک در مهاجرت

بهبود مستندسازی و تسهیل پلتفرم

تمرکز بیشتر بر حل مسائل کسب‌وکار

ارتقاء کیفیت کد

🔍 اما این تحولات، نیاز به داده‌ی باکیفیت، مستند و شفاف را دوچندان می‌کند.

⚠️۲. چالش‌های فعلی در #مهندسی_داده

مهندسی داده دیگر فقط ساختن چند جدول و اجرای ETL نیست.

با رشد داده‌ها، ابزارها و انتظارات، چالش‌ها هم رشد کرده‌اند:

🚨 بررسی مشکلات کیفی در داده‌هایی که وارد مدل‌های LLM می‌شوند بسیار سخت‌تر است. برخلاف داشبورد یا A/B تست‌ها، این مدل‌ها شفاف نیستند.

🌐 اتصال بین انباره‌های داده آفلاین، آنلاین و اپلیکیشن‌های واقعی محصول‌محور، باعث شده دیتاپایپ‌لاین‌ها بسیار پیچیده‌تر شوند.

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

🎥 مهاجرت به داده‌های چندرسانه‌ای (متن، تصویر، ویدیو) نیاز به مهارت و ابزارهایی دارد که خیلی از ما هنوز با آنها آشنا نیستیم.


🧠 ۳. مهارت‌های کلیدی برای آینده

پنلیست‌ها تاکید کردند که مسیر موفقیت همچنان از «پایه‌های مهندسی قوی» می‌گذرد:

📌 مدل‌سازی دقیق داده

📌 درک ساختارها

📌 تعهد به کیفیت


اما برای آینده، باید مهارت‌های زیر را نیز توسعه داد:

🔹 پردازش real-time و event-driven

🔹 آشنایی با جستجوی معنایی و vector DBها

🔹 توانایی پردازش داده‌های multimodal

🔹 یادگیری ابزارهای مدرن مانند
#DBT، #DuckDB، #PyIceberg و...


🧭 ۴. تشخیص ابزار مفید از ترندهای هیجانی

چطور بین ابزارهای واقعی و ترندهای زودگذر فرق بگذاریم؟

پنل نکات خوبی درباره‌ی انتخاب تکنولوژی مناسب داشت:

آیا این ابزار واقعاً کار ما را ساده‌تر می‌کند؟

فقط نحوه‌ی استفاده‌اش را بلدم یا می‌دانم چرا و چطور کار می‌کند؟

آیا جامعه‌ توسعه‌دهنده و کامیونیتی فعالی دارد؟

آیا به نیاز واقعی بیزینس پاسخ می‌دهد؟


📌 جمع‌بندی:

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

اگر هوشمند انتخاب کنیم و یاد بگیریم، GenAI حامی ماست، نه جایگزین ما.


#مهندسی_داده #GenAI #LLM #DataEngineering #Netflix #Airbnb #Databricks #DataQuality #AItools #OpenSource #TechTrends #آینده_شغلی
👍52
داستان تولد یک 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
3
راهنمای حرفه‌ای ساخت پایپ‌لاین‌های ETL/ELT با Apache Airflow

📘 نگاهی خلاصه به ایبوک ۴۴ صفحه‌ای 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


آن را به انتخابی قدرتمند برای محیط‌های پیچیده داده‌ای و تولیدی تبدیل کرده است.

یکی از رایج‌ترین کاربردهای 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
👍21
V4_Best_practices_for_ETL_and_ELT_pipelines_with_Apache_Airflow.pdf
14 MB
فایل راهنمای حرفه‌ای ساخت پایپ‌لاین‌های ETL/ELT با Apache Airflow - 👆👆
👍4
الگوریتم توصیه گر توییتر؛ هنوز هم منبع الهام است—even if you’re not Elon 😄

درست است که بیش از دو سال از متن‌باز شدن الگوریتم توصیه گر توئیتر یا همان بخش «For You» توییتر گذشته، اما این پروژه هنوز هم از آن نمونه‌هایی‌ست که می‌توان بارها و بارها به آن برگشت و نکات تازه‌ای از دلش بیرون کشید. چرا؟ چون وقتی قلب الگوریتمی که روزانه برای میلیاردها نفر محتوا پیشنهاد می‌دهد را ببینید، فقط بحث کد نیست—بلکه با یک زیست‌بوم پیچیده از تصمیم‌گیری، مدل‌سازی و حتی طنز مواجه می‌شوید. بیایید این مخزن کد را خیلی سریع و بدون وارد شدن در جزییات فنی آن مرور کنیم.

https://github.com/FareedKhan-dev/KG-Pipeline.git

🔍 چه خبر در دل الگوریتم؟

الگوریتم توصیه‌گر توییتر از چند مرحله اصلی تشکیل شده:

انتخاب توئیت‌های اولیه - Candidate Sources

ابتدا توییتر از بین صدها میلیون توییت، حدود ۱۵۰۰ توییت «نامزد» را انتخاب می‌کند—هم از کسانی که دنبالشان می‌کنید (In-Network) و هم غریبه‌ها (Out-of-Network).

بخش Ranking

این توییت‌ها سپس توسط یک مدل عصبی با بیش از ۴۸ میلیون پارامتر رتبه‌بندی می‌شوند. هدف؟ پیش‌بینی احتمال تعامل مثبت شما با هر توییت.

فیلتر و اعمال الگوریتم‌های مکاشفه‌ای - Heuristics and Filters

حالا نوبت انواع و اقسام فیلترهاست؛ از فیلتر کردن محتوای تکراری و حساب‌های بلاک‌شده گرفته تا یک فیلتر خاص به‌نام author_is_elon 😅 که اگر نویسنده توییت ایلان ماسک باشد، شرایط متفاوتی اعمال می‌شود!


🎯 و این تازه اول ماجراست... توئیت‌های اولیه را چگونه پیدا کنیم ؟

📌 یکی از بخش‌های جالب الگوریتم، بررسی گرایش‌های سیاسی است. فیلترهایی وجود دارد که حتی در سطوح مختلف بررسی می‌کند آیا یک توییت به گرایش‌های دموکرات یا جمهوری‌خواه نزدیک است یا خیر. (بله! الگوریتم هم سیاست‌زده شده 😄) و شما به کدام گرایش سیاسی نزدیک‌تر هستید!

📌 بخش «Embedding Spaces» الگوریتم، کاربران و توییت‌ها را وارد فضای برداری‌ای می‌کند که بر اساس شباهت علایق و محتوا عمل می‌کند و یافتن سریع توئیت‌های کاندید اولیه را ممکن می‌کند. یکی از مشهورترین این فضاها، SimClusters است.

📌 این کامیونیتی‌ها (Communities) در SimClusters، از گروه‌های کوچک دوستانه گرفته تا کل جمعیت علاقه‌مند به سیاست یا موسیقی پاپ را در بر می‌گیرند—و جالب‌تر اینجاست که هر سه هفته یک‌بار دوباره آموزش داده می‌شوند و جایگاه ما در این جامعه‌ها مدام به‌روزرسانی می‌شود. نتیجه؟ توییت‌هایی که می‌بینیم کاملاً وابسته است به اینکه در آن لحظه، ما در کدام کامیونیتی قرار داریم.


🤖 داستان الگوریتم توییتر چیزی فراتر از مهندسی است

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

📁 پروژه در GitHub هنوز پابرجاست. و اگر تا حالا نرفتید نگاهش بندازید، مطمئن باشید چیزهایی خواهید دید که فقط در مستندهای نتفلیکس انتظارش را دارید!

🧠 آیا ما نیاز به ساخت الگوریتمی مشابه داریم؟ شاید.

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

#الگوریتم_توصیه‌گر #مهندسی_داده #توییتر #توسعه_دهنده #یادگیری_ماشین #توسعه_متن_باز #SimClusters #GraphJet #ML #Scala #ForYou