Database Labdon
797 subscribers
33 photos
2 videos
1 file
727 links
🕸 Database Academy

حمایت مالی:
https://www.coffeete.ir/mrbardia72

ادمین:
@mrbardia72
Download Telegram
🔵 عنوان مقاله
Apache DataFusion 50.0.0 Released (6 minute read)

🟢 خلاصه مقاله:
Apache DataFusion نسخه 50.0.0 با تمرکز بر بهبود کارایی و تجربه تحلیلی منتشر شد. مهم‌ترین بهبودها شامل dynamic filter pushdown برای inner hash joins است که با انتقال فیلترهای حاصل از join به مرحله اسکن، در بسیاری از سناریوها باعث جهش قابل‌توجه در کارایی اسکن می‌شود. همچنین عملگر nested loop join بازنویسی شده و اکنون تا ۵ برابر سریع‌تر اجرا می‌شود و تا ۹۹٪ حافظه کمتری مصرف می‌کند. در کنار این‌ها، قابلیت automatic Parquet metadata caching در پرس‌وجوهای نقطه‌ای (point queries) تا ۱۲ برابر سرعت بیشتر فراهم می‌کند.

از نظر قابلیت‌ها، پشتیبانی از disk-spilling sorts پایداری پردازش مرتب‌سازی را در داده‌های بزرگ با امکان استفاده از دیسک تضمین می‌کند. افزوده شدن عبارات QUALIFY و FILTER نیز نگارش پرس‌وجوهای تحلیلی پیشرفته—از جمله فیلترگذاری پس از window functions و فیلتر روی تجمیع‌ها—را ساده‌تر می‌سازد. علاوه بر این، سازگاری گسترده‌تر با Apache Spark انتقال و اجرای بارهای کاری موجود را با تغییرات کمتر ممکن می‌کند. مجموع این تغییرات، DataFusion 50.0.0 را برای تحلیل تعاملی، ETL و محیط‌های ابری حساس به هزینه به گزینه‌ای ارتقایافته و کارآمد تبدیل می‌کند.

#ApacheDataFusion #DataFusion #BigData #DataEngineering #QueryEngine #Parquet #SQL #ApacheSpark

🟣لینک مقاله:
https://datafusion.apache.org/blog/2025/09/29/datafusion-50.0.0?utm_source=tldrdata


👑 @Database_Academy
🔵 عنوان مقاله
Implementing a Kalman Filter in Postgres to Smooth GPS Data

🟢 خلاصه مقاله:
** این مقاله نشان می‌دهد چگونه می‌توان Kalman Filter را مستقیماً داخل Postgres پیاده‌سازی کرد تا داده‌های GPS پرنوسان را هموار کرد، بدون نیاز به خروج داده‌ها به ابزارهای بیرونی. با اجرای مراحل پیش‌بینی و به‌روزرسانی در SQL/PLpgSQL و استفاده از مرتب‌سازی زمانی و پارتیشن‌بندی بر اساس دستگاه، صاف‌سازی در همان جایی انجام می‌شود که داده‌ها ذخیره شده‌اند. نتیجه، مسیرهای روان‌تر، برآوردهای دقیق‌تر سرعت/جهت، و ساده‌تر شدن خط لوله برای کاربردهایی مثل ناوگان و IoT است. همان‌طور که Thorsten Rieß اشاره می‌کند، این کاری غیرمعمول در SQL است، اما به‌دلیل بازتولیدپذیری، تراکنشی بودن و ادغام آسان با PostGIS و نماها، راهکاری عملی و قدرتمند محسوب می‌شود.

#KalmanFilter #Postgres #SQL #GPS #PostGIS #TimeSeries #DataSmoothing #IoT

🟣لینک مقاله:
https://postgresweekly.com/link/175098/web


👑 @Database_Academy
1
🔵 عنوان مقاله
Postgres 18 Released

🟢 خلاصه مقاله:
Postgres 18 طبق برنامه منتشر شد. این نسخه جهش انقلابی نیست، اما مجموعه‌ای از بهبودهای هدفمند ارائه می‌دهد که در عمل به اجرای سریع‌تر کوئری‌ها، استفاده مؤثرتر از ایندکس‌ها، I/O کارآمدتر و نگه‌داری سبک‌تر (VACUUM/autovacuum) منجر می‌شود. بهینه‌سازی‌های تکرار و بازیابی نیز پایداری و توان عملیاتی را برای سناریوهای High Availability بهتر می‌کنند. علاوه بر این، گزینه‌های پیکربندی و پایش شفاف‌تر و سخت‌گیری‌های امنیتی تازه، مدیریت و تیونینگ را ساده‌تر می‌سازد. برای ارتقا، یادداشت‌های نسخه را بررسی کنید، سازگاری اکستنشن‌ها را بسنجید و روی محیط Stage با بار کاری واقعی تست بگیرید.

#Postgres #PostgreSQL #Database #Performance #Release #SQL #OpenSource #DevOps

🟣لینک مقاله:
https://postgresweekly.com/link/174773/web


👑 @Database_Academy
🔵 عنوان مقاله
Ratcheting with Postgres CONSTRAINT

🟢 خلاصه مقاله:
خلاصه «ratcheting» روشی برای سفت‌وسخت کردن تدریجی قوانین داده در Postgres با تکیه بر CONSTRAINT است. به‌جای اعمال یک‌باره و پرریسک محدودیت‌ها، ابتدا قواعد را به‌صورت نرم اعمال می‌کنیم (ثبت و پایش تخلفات در اپلیکیشن) و سپس معادل آن‌ها را به‌صورت NOT VALID اضافه می‌کنیم تا فقط نوشتارهای جدید بررسی شوند. بعد از پاک‌سازی و بک‌فیل، با VALIDATE CONSTRAINT قاعده برای کل داده معتبر می‌شود. برای قیود چندردیفی یا چندتراکنشی می‌توان از DEFERRABLE و INITIALLY DEFERRED استفاده کرد. الگوهای رایج شامل تبدیل فیلدهای اختیاری به الزامی با بک‌فیل و سپس SET NOT NULL، افزودن FOREIGN KEY به‌صورت NOT VALID و اعتبارسنجی پس از رفع یتیم‌ها، استفاده از ایندکس‌های UNIQUE جزئی برای یکتایی شرطی، و به‌کارگیری EXCLUDE برای جلوگیری از تداخل‌های زمانی/فضایی است. این رویکرد باعث می‌شود قیود به‌تدریج از اسناد و منطق اپلیکیشن به لایه خود Postgres منتقل شوند و با عملکرد بهتر، ریسک کمتر و سادگی بیشتر، یکپارچگی داده را تضمین کنند.

#Postgres #SQL #DataIntegrity #DatabaseMigrations #Constraints #EXCLUDE #DEFERRABLE #DevOps

🟣لینک مقاله:
https://postgresweekly.com/link/175397/web


👑 @Database_Academy
🔥1
🔵 عنوان مقاله
A SQL Heuristic: ORs Are Expensive (10 minute read)

🟢 خلاصه مقاله:
OR در SQL اغلب باعث کندی می‌شود، چون بسیاری از query plannerها برای OR بین ستون‌های مختلف به sequential scan یا index merge/bitmap OR متوسل می‌شوند، در حالی‌که AND به‌طور طبیعی با compound indexها جور است. یک راه مؤثر، بازنویسی OR به چند کوئریِ ایندکس‌پسند و ترکیب آن‌ها با UNION/UNION ALL است تا هر شاخه از ایندکس مناسب خود استفاده کند و زمان اجرا گاهی تا ۱۰۰ برابر کاهش یابد. راه‌حل پایدارتر، بازطراحی schema با extension tables است تا به‌جای OR روی چند خاصیتِ پراکنده، با JOIN به جدول‌های باریک و ایندکس‌شده دسترسی پیدا کنید. همیشه با EXPLAIN/EXPLAIN ANALYZE اندازه‌گیری کنید؛ در جداول کوچک یا OR روی یک ستون (مشابه IN) شاید مشکل نداشته باشید، اما به‌طور کلی: AND را با compound index هماهنگ کنید، از OR بین ستون‌ها بپرهیزید، در صورت لزوم از UNION بهره ببرید و برای مسیرهای پرتردد، بازطراحی schema را در نظر بگیرید.

#SQL #DatabasePerformance #QueryOptimization #Indexes #PostgreSQL #MySQL #DataModeling #EXPLAIN

🟣لینک مقاله:
https://ethanseal.com/articles/ors-are-expensive?utm_source=tldrdata


👑 @Database_Academy
🔵 عنوان مقاله
SkipScan in TimescaleDB: Why DISTINCT Was Slow, How We Built It, and How You Can Use It

🟢 خلاصه مقاله:
SkipScan در TimescaleDB مشکل دیرینه‌ی کندی کوئری‌های DISTINCT را هدف می‌گیرد؛ جایی که برای یافتن مقادیر یکتا، اسکن‌های بزرگ و تکراری روی ایندکس انجام می‌شود. این ویژگی با «پرش» از میان بلوک‌های مقادیر تکراری و رفتن مستقیم به مقدار یکتای بعدی، تعداد خواندن‌ها و مقایسه‌ها را کاهش می‌دهد و DISTINCT و DISTINCT ON را مخصوصاً روی هایپرتیبل‌های بزرگ سریع‌تر می‌کند. برای بهره‌گیری عملی، ایندکس‌های B-tree چندستونه هم‌راستا با کلیدهای DISTINCT و ترتیب ORDER BY بسازید؛ برنامه‌ریز به‌صورت خودکار در الگوهای مناسب SkipScan را انتخاب می‌کند و در غیر این صورت به مسیرهای عادی برمی‌گردد. بیشترین سود زمانی است که داده‌ها تکرار زیاد و هم‌جواری مناسب در ایندکس داشته باشند.

هم‌زمان، Aksman و Hein از TigerData با همراهی Sebastian Insausti به بهبودهای عملیاتی و گزینه‌های یکپارچه‌سازی در Postgres 16 می‌پردازند؛ از رصد و تنظیم‌پذیری بهتر گرفته تا ساده‌تر شدن نگهداری و همگام‌سازی و تقویت اکوسیستم الحاقات و اتصال به سامانه‌های دیگر. این تغییرات عملیاتی، در کنار بهینه‌سازی‌هایی مانند SkipScan، Postgres 16 را به پایه‌ای توانمندتر برای بارهای تحلیلی و زمان‌محور تبدیل می‌کند.

#TimescaleDB #Postgres16 #SkipScan #DISTINCT #DatabasePerformance #TimeSeries #SQL #Postgres

🟣لینک مقاله:
https://postgresweekly.com/link/175400/web


👑 @Database_Academy
🔵 عنوان مقاله
How to Do UPDATE ... LIMIT

🟢 خلاصه مقاله:
در Postgres نمی‌توان مستقیم از UPDATE ... LIMIT یا DELETE ... LIMIT استفاده کرد؛ هرچند در برخی لهجه‌های SQL مثل MySQL این امکان وجود دارد. راه‌حل استاندارد این است که ابتدا در یک زیرکوئری یا CTE با ORDER BY و LIMIT، شناسهٔ ردیف‌های هدف را انتخاب کنید و سپس با UPDATE/DELETE روی همان شناسه‌ها عمل کنید. برای محیط‌های همزمان، استفاده از SELECT ... FOR UPDATE SKIP LOCKED در زیرکوئری باعث می‌شود هر پردازش فقط ردیف‌های قفل‌نشده را بردارد و تداخل رخ ندهد. حتماً ORDER BY بگذارید تا انتخاب N ردیف قابل پیش‌بینی باشد و برای کارایی، ایندکس مناسب روی فیلترها و مرتب‌سازی‌ها داشته باشید. در حجم‌های بزرگ، عملیات را به صورت batch تکراری انجام دهید تا از تراکنش‌های طولانی و فشار روی سیستم جلوگیری شود.

#Postgres #SQL #UPDATE #DELETE #LIMIT #CTE #SkipLocked #MySQL

🟣لینک مقاله:
https://postgresweekly.com/link/175093/web


👑 @Database_Academy
🔵 عنوان مقاله
date and timestamp versions of random(min, max)

🟢 خلاصه مقاله:
این مقاله به دو به‌روزرسانی کاربردی اشاره می‌کند: افزوده‌شدن نسخه‌های مبتنی‌بر نوع‌های date و timestamp برای تابع random(min, max) و نمایش برآوردهای برنامه‌ریز برای گره Memoize در خروجی EXPLAIN. با پشتیبانی جدید random(min, max)، می‌توان مقادیر تصادفی از نوع تاریخ یا زمان را مستقیماً در یک بازه مشخص تولید کرد؛ کاری مفید برای تولید داده‌ی آزمایشی، شبیه‌سازی بار کاری و ناشناس‌سازی داده‌های زمانی بدون نیاز به تبدیل‌های اضافی. همچنین، EXPLAIN اکنون برآوردهای مربوط به Memoize را نشان می‌دهد تا روشن‌تر شود چرا برنامه‌ریز از این گره استفاده کرده و تأثیر تخمینی کش و هزینه‌ها چیست؛ موضوعی که به عیب‌یابی و بهینه‌سازی پرس‌وجوها کمک می‌کند.

#Databases #SQL #EXPLAIN #Memoize #Random #Date #Timestamp #Performance

🟣لینک مقاله:
https://postgresweekly.com/link/175090/web


👑 @Database_Academy
👍1
🔵 عنوان مقاله
PostGIS Performance: pg_stat_statements and Postgres Tuning

🟢 خلاصه مقاله:
**این مقاله نشان می‌دهد چطور با استفاده از PostGIS روی Postgres می‌توان کارایی پرس‌وجوهای مکانی را بهبود داد. محور اصلی کار، اندازه‌گیری دقیق با pg_stat_statements برای شناسایی پرهزینه‌ترین پرس‌وجوها و سپس تحلیل آن‌ها با EXPLAIN/ANALYZE است. توصیه‌های کلیدی شامل انتخاب درست geometry یا geography، ساخت ایندکس‌های GiST/SP-GiST، نوشتن شرط‌های قابل استفاده توسط ایندکس (مثل ST_Intersects و محدوده‌های جعبه‌ای)، و اجرای VACUUM/ANALYZE پس از بارگذاری‌های حجیم است. در بخش تنظیمات Postgres هم به shared_buffers، effective_cache_size، work_mem، موازی‌سازی، تنظیمات autovacuum و در صورت نیاز پارتیشن‌بندی اشاره می‌شود. برای سرویس‌های Go (به نقل از Golang Weekly)، استفاده از pooling مناسب، جلوگیری از الگوهای N+1، Batch کردن عملیات، بهره‌گیری از COPY و تعیین statement_timeout توصیه شده است. رویکرد کلی: اندازه‌گیری، اعمال تغییرات هدفمند، و اعتبارسنجی مداوم برای رسیدن به کارایی پایدار و سریع‌تر.

#PostGIS #PostgreSQL #pg_stat_statements #DatabaseTuning #Geospatial #Golang #Performance #SQL

🟣لینک مقاله:
https://postgresweekly.com/link/176025/web


👑 @Database_Academy
🔵 عنوان مقاله
Postgres 18: OLD and NEW Rows in the RETURNING Clause

🟢 خلاصه مقاله:
Postgres 18 با تمرکز بر سه حوزه پیش می‌رود: ارگونومی توسعه، قابلیت مشاهده، و بارگذاری داده. پشتیبانی از ارجاع به ردیف‌های OLD و NEW در RETURNING باعث می‌شود نسخه‌های قبل و بعد از تغییر را در همان دستور SQL بگیرید؛ این کار لاگ‌برداری، ثبت تغییرات و منطق حل تعارض را ساده‌تر و کم‌هزینه‌تر می‌کند. بهبودهای COPY—به روایت Brandur Leach—کار با ورودی/خروجی‌های حجیم را خوش‌دست‌تر می‌کند و با پیام‌های واضح‌تر و پیش‌فرض‌های امن‌تر، خطاهای رایج را کم می‌کند. در سطح پایش، Deepak Mahto و Cédric Villemain به ارتقاهای Cumulative Statistics می‌پردازند که با شمارنده‌های منسجم‌تر و سربار کمتر، عیب‌یابی و تنظیم عملکرد را آسان‌تر می‌سازد. حاصل این تغییرات، ترکیبی از تجربه توسعه‌دهنده بهتر و بینش عملیاتی عمیق‌تر در Postgres 18 است.

#Postgres18 #PostgreSQL #RETURNING #COPY #SQL #Database #CumulativeStatistics #OpenSource

🟣لینک مقاله:
https://postgresweekly.com/link/175099/web


👑 @Database_Academy
🔵 عنوان مقاله
Pipelining Comes to psql in Postgres 18

🟢 خلاصه مقاله:
** در Postgres 18، ابزار psql فرمان‌های داخلی برای فعال‌سازی و کنترل pipelining در اسکریپت‌های SQL اضافه کرده است. با این قابلیت، چندین کوئری پشت‌سرهم ارسال می‌شوند و منتظر پاسخ تک‌به‌تک نمی‌مانند؛ در نتیجه رفت‌وبرگشت‌های شبکه کمتر و زمان اجرا کوتاه‌تر می‌شود. به‌گفته Daniel، این کار می‌تواند بهره‌وری و throughput کوئری‌ها را به‌طور چشمگیری افزایش دهد، به‌ویژه در اسکریپت‌های پر از دستورات کوچک.

این ویژگی برای کارهای حجیم و خودکار مانند بارگذاری داده، پردازش‌های ETL، تحلیل‌ها و مهاجرت‌های اسکیما بسیار مفید است. می‌توان pipelining را فقط در بخش‌های مناسب یک اسکریپت فعال کرد و برای اطمینان از سازگاری و بازگردانی، مرزبندی تراکنش‌ها و مدیریت خطا را دقیق انجام داد. در صورت عدم استفاده، رفتار psql مانند قبل باقی می‌ماند و با سایر تکنیک‌های بهینه‌سازی سرور تکمیل می‌شود، نه اینکه جایگزین آن‌ها باشد.

#Postgres
#psql
#Pipelining
#SQL
#DatabasePerformance
#PostgreSQL18
#Throughput
#ETL

🟣لینک مقاله:
https://postgresweekly.com/link/175088/web


👑 @Database_Academy
🔵 عنوان مقاله
SQL Shader (Tool)

🟢 خلاصه مقاله:
SQL Shader ابزاری مرورگری بر پایه DuckDB-WASM است که کوئری‌های SQL را به گرافیک‌های رویه‌ایِ بلادرنگ تبدیل می‌کند تا رفتار و کارایی موتور پایگاه‌داده را به‌صورت بصری کاوش و درک کنید. همه‌چیز به‌صورت محلی در مرورگر اجرا می‌شود، بدون نیاز به سرور و با حفظ حریم خصوصی. با تغییر کوئری‌ها—مثل فیلترها، نوع join یا اندازه داده—نمایش‌های بصری فوراً تغییر می‌کنند و شاخص‌هایی مانند زمان اجرا، تعداد ردیف‌ها یا الگوی عملگرها را به شکل قابل مشاهده نشان می‌دهند. این ابزار برای آموزش مفاهیم پایگاه‌داده، نمایش تعاملی عملکرد، و آزمایش سریع رفتار کوئری‌ها بسیار کاربردی است.

#SQL #DuckDB #WASM #WebAssembly #DataVisualization #DatabasePerformance #BrowserTools #SQLShader

🟣لینک مقاله:
https://dmkskd.github.io/sql-shader/?utm_source=tldrdata


👑 @Database_Academy
🔵 عنوان مقاله
pqr.sql: Generate QR Codes with Pure SQL in Postgres

🟢 خلاصه مقاله:
**pqr.sql یک ایده‌ی خلاقانه است که نشان می‌دهد می‌توان QR Code را تنها با SQL و مستقیماً داخل Postgres تولید کرد. این کار بدون افزونه یا کد اپلیکیشن انجام می‌شود و برای محیط‌های محدود یا سناریوهای خودبسنده مفید است و جنبه آموزشی خوبی برای توانمندی‌های SQL در Postgres دارد. با این حال، به چندصد خط SQL نیاز دارد و برای تولید عملیاتی جایگزین کتابخانه‌های تخصصی نیست؛ اما نمونه‌ای جذاب با کاربردهای غیربدیهی است.

#Postgres #PostgreSQL #SQL #QRCode #PureSQL #Databases #SQLTricks

🟣لینک مقاله:
https://postgresweekly.com/link/175728/web


👑 @Database_Academy
🔵 عنوان مقاله
PL/Haskell 5.0: Use Haskell in Your SQL Functions

🟢 خلاصه مقاله:
خلاصه‌ای از PL/Haskell 5.0: این نسخه امکان نوشتن توابع SQL در Postgres با استفاده از زبان تابعی Haskell را فراهم می‌کند. با وجود غیر‌رویه‌ای بودن Haskell، کدها به‌گونه‌ای ارائه می‌شوند که Postgres بتواند آن‌ها را به‌عنوان توابع و رویه‌ها اجرا کند و شما منطق کاربردی را مستقیماً از داخل SQL فراخوانی کنید. در نسخه ۵.۰، پشتیبانی از انواع تاریخ و زمان اضافه شده است؛ بنابراین می‌توانید کارهای رایج مرتبط با داده‌های زمانی، مانند کار با timestampها، زمان‌بندی و محاسبات زمانی را داخل پایگاه‌داده و با اتکا به مزایای شفافیت و نوع‌محوری Haskell انجام دهید.

#Haskell #PostgreSQL #SQL #FunctionalProgramming #Database #PLHaskell #DateTime

🟣لینک مقاله:
https://postgresweekly.com/link/176028/web


👑 @Database_Academy
🔵 عنوان مقاله
Sanitizing SQL with SQL

🟢 خلاصه مقاله:
این مقاله یک تابع نمونه در PL/pgSQL معرفی می‌کند که SQL خام را می‌گیرد و نسخه‌ای Sanitized برمی‌گرداند تا اطلاعات هویتی حساس (PII) حذف یا ماسک شود. نتیجه این است که می‌توان کوئری‌ها را برای لاگ، دیباگ و اشتراک‌گذاری، بدون افشای داده‌های واقعی، امن‌تر کرد. چون این کار داخل PostgreSQL انجام می‌شود، ادغام آن با تریگرها، مسیرهای لاگ و کد موجود ساده است و نیاز به ابزار خارجی ندارد. البته این فقط یک اثبات ایده است و همه حالات و گویش‌های SQL را پوشش نمی‌دهد و ممکن است خطا یا هزینهٔ کارایی داشته باشد؛ بهبودهایی مثل توکنیزه‌کردن بهتر و قواعد پیکربندی‌پذیر پیشنهاد می‌شوند. پیام اصلی: می‌توان Sanitization را مستقیماً با خود SQL انجام داد و حریم خصوصی را حفظ کرد.

#SQL #PLpgSQL #PII #DataPrivacy #DatabaseSecurity #Logging #PostgreSQL

🟣لینک مقاله:
https://postgresweekly.com/link/175732/web


👑 @Database_Academy
1
🔵 عنوان مقاله
Getting a Portable Setup for Postgres 18 on Windows

🟢 خلاصه مقاله:
این راهنمای عملی از Mohit Sindhwani نشان می‌دهد چطور یک نمونه کاملاً پرتابل از Postgres 18 را روی Windows راه‌اندازی کنید؛ بدون نصب‌کننده، بدون سرویس Windows و بدون نیاز به دسترسی ادمین. روش پیشنهادی برای توسعه‌دهندگان، مدرس‌ها و هر کسی که یک دیتابیس ایزوله و قابل‌حمل می‌خواهد ایده‌آل است.

نویسنده توصیه می‌کند نسخه ZIP (قابل حمل) را دریافت و در یک پوشه مستقل استخراج کنید، سپس با initdb دایرکتوری data را با تنظیمات مناسب (مثل UTF8 و locale) بسازید. مدیریت سرور با pg_ctl انجام می‌شود و برای پورت یا مسیرها می‌توان از تنظیمات postgresql.conf یا پارامترهای خط فرمان استفاده کرد. برای سهولت، اسکریپت‌های start/stop و تنظیم PATH تنها در همان نشست پیشنهاد می‌شود تا چیزی در سیستم ثبت نشود.

اتصال با psql صورت می‌گیرد و در صورت نیاز می‌توان از ابزارهای گرافیکی مانند pgAdmin یا DBeaver بهره برد. راهنما بر امنیت پایه تأکید دارد: دسترسی پیش‌فرض محلی است و برای دسترسی شبکه‌ای باید pg_hba.conf و listen_addresses را با احتیاط تنظیم کنید. پشتیبان‌گیری با pg_dump انجام می‌شود و چون نصب سیستمی وجود ندارد، پاک‌سازی تنها با توقف سرویس و حذف پوشه انجام می‌گیرد. نتیجه، یک فرآیند تمیز، تکرارپذیر و واقعاً پرتابل برای Postgres 18 روی Windows است.

#PostgreSQL #Postgres #Windows #Portable #Database #SQL #DevEnvironment #Tutorial

🟣لینک مقاله:
https://postgresweekly.com/link/176023/web


👑 @Database_Academy
🔵 عنوان مقاله
Introducing pg_lake: Integrate Your Data Lakehouse with Postgres

🟢 خلاصه مقاله:
pg_lake مجموعه‌ای از افزونه‌ها برای Postgres است که اتصال مستقیم به درياچه‌داده و Lakehouse را ممکن می‌کند: پشتیبانی جامع از Iceberg و دسترسی به فایل‌های Parquet، CSV و JSON بدون جابه‌جایی داده یا خروج از محیط Postgres. این راهکار با ادغام شفاف DuckDB در موتور پرس‌وجوی Postgres، اجرای برداری و ستونی سریع را برای اسکن‌ها و تجمع‌های سنگین فراهم می‌کند، در حالی‌که همچنان با SQL آشنا کار می‌کنید. با pg_lake می‌توانید داده‌های دریاچه را مثل جدول‌های عادی بخوانید، آن‌ها را با جداول عملیاتی Postgres جوین بزنید و نیاز به ETL اضافی را کاهش دهید. پشتیبانی از Iceberg برای سناریوهایی مثل پارتیشن‌بندی و تکامل طرحواره مناسب است و مسیرهایی مانند تحلیل‌های موردی، کوئری‌های فدره، و مهاجرت تدریجی به Lakehouse را ساده می‌کند. کد و مستندات آن در GitHub در دسترس است.

#pg_lake #Postgres #DataLakehouse #Iceberg #DuckDB #Parquet #SQL #OpenSource

🟣لینک مقاله:
https://postgresweekly.com/link/176670/web


👑 @Database_Academy
🔵 عنوان مقاله
Did You Know Postgres Tables are Limited to 1,600 Columns?

🟢 خلاصه مقاله:
اگر نمی‌دانستید، در Postgres هر جدول حداکثر ۱۶۰۰ ستون می‌تواند داشته باشد. این یک محدودیت سخت در هسته سیستم است و با NULL بودن فیلدها یا TOAST دور زده نمی‌شود. اگر شماره issue 226 در سال 2017 را خوانده باشید، احتمالاً این نکته را به خاطر دارید. این سقف به معنای آن است که طراحی‌هایی با جدول‌های بسیار عریض—مثل هر شاخص یک ستون یا طرح‌های EAV تثبیت‌شده—به‌سرعت به حد می‌خورند. راه‌حل‌های بهتر شامل نرمال‌سازی، تفکیک عمودی، تبدیل ستون‌ها به سطرها برای سنجه‌ها، یا استفاده از JSONB برای ویژگی‌های کم‌استفاده و پراکنده است. جدول‌های خیلی عریض علاوه بر ریسک رسیدن به سقف، هزینه I/O و نگهداری را بالا می‌برند. نتیجه عملی: با در نظر گرفتن حد ۱۶۰۰ ستون، از طرح‌های باریک‌تر و انعطاف‌پذیرتر استفاده کنید و قبل از اعمال مهاجرت‌ها، تعداد ستون‌ها را بررسی کنید.

#Postgres #PostgreSQL #SQL #DatabaseDesign #DataModeling #SchemaDesign #JSONB #SoftwareEngineering

🟣لینک مقاله:
https://postgresweekly.com/link/176989/web


👑 @Database_Academy
🔵 عنوان مقاله
Transaction Pooling in Postgres with Pgcat

🟢 خلاصه مقاله:
این مرور سه موضوع مرتبط در عملیات Postgres را کنار هم می‌گذارد: مدیریت اتصال‌ها با Transaction Pooling از طریق Pgcat، سفر یک پرس‌وجوی SQL درون Postgres، و نقش «Dirty Pages» در کارایی و دوام. در Transaction Pooling، Pgcat اتصال‌های سمت سرور را فقط در طول تراکنش قرض می‌دهد و با افزایش استفاده مجدد از Backendها، هزینه اتصال‌های کوتاه‌عمر را کاهش می‌دهد—به‌ویژه در بارهای Serverless و Microservices. بهای آن، حساسیت به حالت‌های سطح نشست است؛ پس باید وضعیت را داخل تراکنش نگه داشت و به زمان‌بندی‌ها، اندازه Pool و مشاهده‌پذیری توجه کرد. «سفر» Phil Eaton نشان می‌دهد پرس‌وجو چگونه از Parse/Rewrite/Plan به Execution می‌رسد، با تکیه بر آمار و ایندکس‌ها، MVCC، قفل‌ها، Shared Buffers و WAL. توضیحات Jesús Espino و Umair Shahid درباره Dirty Pages می‌گوید صفحاتِ تغییرکرده در حافظه برای کارایی خوب‌اند، اما باید با Checkpoint، Background Writer و تنظیمات WAL مدیریت شوند تا از جهش‌های تاخیری جلوگیری شود. کنار هم، این سه دیدگاه کمک می‌کنند با تغذیه کارآمد اتصال‌ها، فهم مسیر اجرای پرس‌وجو و تنظیم مسیر نوشتن، Postgres را سریع‌تر و قابل‌پیش‌بینی‌تر اجرا کنید.

#Postgres #Pgcat #TransactionPooling #ConnectionPooling #SQL #DatabaseInternals #DirtyPages #WAL

🟣لینک مقاله:
https://postgresweekly.com/link/176685/web


👑 @Database_Academy
1
🔵 عنوان مقاله
How to Listen to Database Changes Through the WAL

🟢 خلاصه مقاله:
شنیدن تغییرات دیتابیس از طریق WAL در Postgres یک روش پایدار برای CDC است که بدون تریگر و پولینگ اضافه، رویدادهای INSERT/UPDATE/DELETE را با ترتیب مبتنی بر LSN و قابلیت بازیابی استریم می‌کند. راه‌اندازی شامل wal_level=logical، ساخت replication slot، انتخاب output plugin مثل pgoutput یا wal2json، گرفتن snapshot اولیه و ذخیره LSN برای پیشرفت مصرف‌کننده است. از منظر عملیاتی باید نگه‌داری WAL توسط replication slot، backpressure، تراکنش‌های بزرگ، تغییرات schema، و مدیریت failover و امنیت را پایش کنید و با طراحی آیدمپوتنت در مقصد، تحویل at-least-once را کنترل کنید. در مطالب مرتبط، Peter Ullrich به transaction pooling با Pgcat و قیود آن می‌پردازد، Phil Eaton سفر یک کوئری SQL را در Postgres از parse تا execution روایت می‌کند، و Umair Shahid مفهوم Dirty Pages، نقش background writer/checkpointer و اثر تنظیمات بر پایداری I/O را توضیح می‌دهد.

#Postgres #WAL #ChangeDataCapture #LogicalDecoding #Pgcat #SQL #DirtyPages #DatabaseInternals

🟣لینک مقاله:
https://postgresweekly.com/link/176684/web


👑 @Database_Academy