نسخه ۲۵.۸ (ClickHouse Release 25.8) کلیکهاوس یک نسخه بسیار مهم است، زیرا به عنوان نسخه پشتیبانی بلندمدت (LTS) منتشر شده است.
این نسخه در تاریخ ۵ سپتامبر ۲۰۲۵ منتشر شد و شامل ۴۵ قابلیت جدید (🌻)، ۴۷ بهینهسازی عملکرد (🏍)، و ۱۱۹ رفع اشکال (🐝) است. تعداد ۱۱۹ مورد رفع اشکال، احتمالاً بزرگترین میزان رفع اشکال در یک نسخه است، زیرا این نسخه برای پایداری در محیطهای تولیدی (LTS) به دقت آماده شده است. این نسخه به مدت یک سال، تا آگوست ۲۰۲۶، با وصلهها، بهروزرسانیها و رفع اشکالات پشتیبانی خواهد شد.
در زیر مهمترین امکانات و نکات این نسخه آورده شده است:
این نسخه یک خواننده بومی و سریعتر برای فرمت Parquet معرفی میکند که در حال حاضر آزمایشی است.
عملکرد سریعتر: خواننده جدید، عملکرد کوئریهای ClickBench را به طور متوسط ۱.۸۱ برابر بهبود بخشیده است، که تقریباً سرعت اجرای کوئریها را دو برابر میکند. این بهبود سرعت از مجموع فیلتر کردن در سطح صفحه (page-level min/max filtering) و استفاده از PREWHERE حاصل میشود.
معماری بومی: خواننده جدید Parquet فایلها را مستقیماً به فرمت داخلی حافظه کلیکهاوس میخواند. این کار لایه اضافی استفاده از کتابخانه Apache Arrow را حذف میکند که قبلاً فایلهای Parquet را به فرمت Arrow تجزیه و کپی میکرد.
موازیسازی پیشرفته: خواننده جدید علاوه بر اسکن موازی چندین گروه ردیفی (Row Groups)، میتواند ستونهای مختلف را از یک گروه ردیفی به طور همزمان بخواند، که منجر به بهرهوری بهتر CPU میشود.
بهرهوری I/O: از فیلتر سطح صفحه (page-level min/max filtering) و پشتیبانی از PREWHERE اضافه شده استفاده میکند. این امر حجم دادهای را که باید پردازش شود، به شدت کاهش میدهد.
اهمیت Lakehouse: پردازش سریع Parquet اساس کار کلیکهاوس به عنوان یک موتور Lakehouse است و برای کوئرینویسی کارآمد بر روی فرمتهای باز جداول مانند Apache Iceberg و Delta Lake حیاتی است.
پشتیبانی کلیکهاوس از دریاچههای داده (Data Lakes) پیشرفتهای عظیمی داشته است و به عنوان بزرگترین بهبود نسخه معرفی شده است.
Iceberg: اکنون میتوانید با استفاده از موتور جدول IcebergS3، عملیات ایجاد جدول، درج، حذف، بهروزرسانی دادهها و تنظیم طرحواره (schema) را روی Iceberg انجام دهید.
Delta Lake: پشتیبانی از نوشتن داده و قابلیت سفر در زمان (time travel) برای جداول Delta Lake اضافه شده است.
کاتالوگها در وضعیت بتا: کاتالوگهای Unity، REST، Glue، و Hive Metastore از حالت آزمایشی (experimental) به وضعیت بتا (beta) ارتقا یافتهاند.
پشتیبانی از نوشتن: درج داده در Iceberg از طریق کاتالوگهای REST و Glue پشتیبانی میشود.
کلیکهاوس اکنون از نوشتن دادهها با پارتیشنبندی به سبک Hive پشتیبانی میکند.
ساختار دایرکتوری: دادهها بر اساس مقادیر کلید پارتیشن، به دایرکتوریهایی (یا پیشوندهای مشابه دایرکتوری در S3) تقسیم میشوند.
استراتژی پارتیشنبندی: این قابلیت از طریق تنظیم partition_strategy = 'hive' فعال میشود.
عملکرد خواندن: هنگامی که این ویژگی فعال است، عملیات خواندن (SELECT) به طور خودکار از این ستونها برای فیلتر کردن استفاده میکند.
مشکلات تأخیر (Latency) در کار با Azure Blob Storage حل شده است.
مشکل حل شده: قبلاً نوسانات تأخیر (Latency Spikes) تا ۵، ۱۰ یا حتی ۱۵ ثانیه در Azure Blob Storage مشاهده میشد.
راهحل: کلیکهاوس کلاینت HTTP موجود در Azure SDK را با پیادهسازی داخلی خود جایگزین کرد و از منطق تلاش مجدد تهاجمی گمانهزنانه (aggressive speculative retries) که برای AWS S3 استفاده میشد، بهره برد.
نتیجه: نوسانات تأخیر از بین رفته و Azure اکنون به سرعت AWS کار میکند.
پشتیبانی اولیه از پروتکل Arrow Flight اضافه شده است.
ماهیت پروتکل: Arrow Flight یک پروتکل با عملکرد بالاست که برای تبادل داده بر اساس فرمت حافظه ستونی Apache Arrow و gRPC ساخته شده است. این پروتکل جایگزینی مدرن و کارآمد برای ODBC یا JDBC است.
نقش کلاینت و سرور: کلیکهاوس اکنون میتواند هم به عنوان کلاینت (با استفاده از تابع جدول arrowflight یا موتور جدول ArrowFlight) برای پرسوجو از منابع داده Arrow Flight راه دور عمل کند و هم به عنوان سرور، دادههای خود را در معرض دید کلاینتهای سازگار با این پروتکل قرار دهد.
پشتیبانی اولیه از زبان پرسوجوی پرومتئوس (Prometheus Query Language یا PromQL) اضافه شده است.
نحوه استفاده: با تنظیم dialect='promql' در کلاینت کلیکهاوس و اشاره به یک جدول سری زمانی با استفاده از تنظیم promql_table_name='X'، میتوانید از آن استفاده کنید.
توابع پشتیبانی شده: در نسخه ۲۵.۸، تنها توابع rate, delta و increase پشتیبانی میشوند.
_table در همهجاستون مجازی _table که قبلاً عمدتاً در توابع جدول merge برای شناسایی منبع داده استفاده میشد، اکنون برای انواع دیگر کوئریها (مانند استفاده با UNION ALL) نیز در دسترس است. این قابلیت امکان ردیابی جدول اصلی یک سطر نتیجه را فراهم میکند.
چندین ویژگی امنیتی جدید برای کار با دادههای ذخیره شده در S3 اضافه شده است.
نقشهای IAM سفارشی: اکنون میتوانید از نقشهای IAM سفارشی (custom IAM roles) با تابع جدول s3 استفاده کنید. این قابلیت قبلاً فقط در ClickHouse Cloud موجود بود.
اعطای دسترسی (GRANTS) با جزئیات: اکنون میتوان دسترسیهای READ یا WRITE را بر اساس عبارات منظم (Regular Expressions) برای URLهای خاص S3 تعریف کرد، به جای اعطای دسترسی کلی به همه باکتها.
دیسکهای خارجی برای دادههای موقت: کلیکهاوس اکنون میتواند از هر نوع دیسک خارجی (از جمله ذخیرهسازهای سازگار با S3) برای ذخیره دادههای موقت مورد نیاز کوئریهای پیچیده و سنگین (مانند GROUP BY یا ORDER BY با حجم بالا) استفاده کند.
بهبود نمایه سازی ثانویه: نمایههای ثانویه اکنون بر اساس اندازه فشردهسازی خود (سبک وزن اول، سنگین وزن بعدی) خوانده و اعمال میشوند تا عملکرد بهتری داشته باشند.
آپدیتهای سبک وزن (Lightweight Updates): این ویژگی دیگر آزمایشی نیست و به وضعیت بتا ارتقا یافته است. پیادهسازی آن بر اساس ذخیره کردن پچهای کوچک است، نه بازنویسی کامل دادهها.
پروتکل PostgreSQL: پشتیبانی از دستور COPY که اغلب برای بارگذاری حجم عظیمی از داده استفاده میشود، بهبود یافته است.
جستجوی برداری (Vector Search): این ویژگی در نسخه ۲۵.۸ به در دسترس بودن عمومی (GA) رسیده است.
ClickPipes و MongoDB: کانکتور CDC برای MongoDB (در حال حاضر پیش نمایش خصوصی) معرفی شده است که امکان ingest مداوم دادهها از MongoDB به کلیکهاوس را فراهم میکند. این کانکتور از درج، حذف، بهروزرسانی و تغییرات طرحواره انعطافپذیر پشتیبانی میکند و میتواند دادهها را به عنوان نوع داده JSON در کلیکهاوس ذخیره کند.
منابع و لینک های مرتبط
https://clickhouse.com/blog/clickhouse-release-25-08
پادکست تولید شده با نوت بوک ال ام گوگل
https://notebooklm.google.com/notebook/06aed707-3ed1-4117-b4a1-d549251e396f?artifactId=67410281-218f-419e-b1a7-6b7b30dec78b