ابزار و کتابخانه هامعرفی و اخبار عمومی

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

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

Postgres is eating the database world

Postgres is eating the database world

PostgreSQL isn’t just a simple relational database; it’s a data management framework with the potential to engulf the entire database…

https://medium.com/@fengruohang/postgres-is-eating-the-database-world-157c204dcfc4

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

ذخیره‌سازی ستونی: افزونه‌هایی مانند Hydra و pg_analytics امکان ذخیره‌سازی داده‌ها به‌صورت ستونی (Columnar) را فراهم کرده‌اند که یکی از ویژگی‌های کلیدی پایگاه‌های داده تحلیلی مدرن است.

✅ تطابق با Lakehouse و Iceberg: ترکیب PostgreSQL با معماری Lakehouse و ذخیره‌سازی مستقیم داده‌های تحلیلی در قالب Parquet با افزونه‌هایی مانند pg_mooncake، گامی دیگر در مسیر ارتقای آن به یک پایگاه داده تحلیلی جامع است.

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

 راجع به Mooncake

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

اما با نصب pg_mooncake، می‌توان این داده‌های حجیم را مستقیماً در PostgreSQL ذخیره کرد، درحالی‌که داده‌ها در عمل در یک استوریج جداگانه، مانند MinIO، ذخیره می‌شوند. این افزونه امکان ذخیره داده‌ها را در قالب‌های Delta Lake (و به‌زودی Iceberg) به‌صورت فایل‌های Parquet فراهم می‌کند.

چگونه کار می‌کند؟

✅ داده‌ها در ظاهر از طریق PostgreSQL درج و کوئری می‌شوند.
✅ اما در پشت‌صحنه، داده‌ها در یک استوریج جداگانه مانند MinIO یا هر سرویس دیگری ذخیره می‌شوند.
✅ امکان ترکیب با ابزارهای پردازش داده‌های حجیم مانند DuckDB، Polars، Pandas و Spark وجود دارد.

مشاهده محل ذخیره‌سازی داده‌ها

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


SELECT * FROM mooncake.columnstore_tables;

خروجی این دستور مسیر دایرکتوری‌ای را نشان می‌دهد که داده‌ها به‌صورت Delta Lake (و در آینده Iceberg) در آن ذخیره شده‌اند و مستقیماً می‌توان آن‌ها را با Pandas، DuckDB، Polars یا Spark کوئری گرفت.

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

عکس از مقاله زیر برداشته شده است :

https://blog.bemi.io/analytics-with-postgresql

 

مجتبی بنائی

دانشجوی دکترای نرم‌افزار دانشگاه تهران (yun.ir/smbanaie)، مدرس دانشگاه و فعال در حوزه توسعه نرم‌افزار و مهندسی داده که تمرکز کاری خود را در چند سال اخیر بر روی مطالعه و تحقیق در حوزه کلان‌داده و زیرساخت‌های پردازش داده و تولید محتوای تخصصی و کاربردی به زبان فارسی و انتشار آنها در سایت مهندسی داده گذاشته است. مدیریت پروژه‌های نرم‌افزاری و طراحی سامانه‌های مقیاس‌پذیر اطلاعاتی از دیگر فعالیتهای صورت گرفته ایشان در چند سال گذشته است.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

دکمه بازگشت به بالا