TGViewer
مهندسی و علم داده مهندسی و علم داده @bimining · 3.98K subscribers
Post #1312 633
چطور ClickHouse روی 100 میلیون رکورد Query اجرا می‌کند، بدون اینکه 100 میلیون رکورد را بخواند؟

وقتی صحبت از Performance در سیستم‌های تحلیلی می‌شود، معمولاً ذهنمان می‌رود سمت:

• CPU
• RAM
• سرعت Disk

اما در ClickHouse یک سؤال مهم‌تر وجود دارد:

چقدر از داده واقعاً لازم است خوانده شود؟

فرض کنید Query فقط به اطلاعات 24 ساعت اخیر و چند Column مشخص نیاز دارد.

و ClickHouse قرار نیست کل داده را بخواند و بعد دنبال رکوردهای موردنظر بگردد.

در این فرآیند:

• ابتدا Partitionهای نامرتبط حذف می‌شوند.
• سپس Partهای غیرضروری کنار گذاشته می‌شوند.
• با Data Skipping و Metadata، بخش‌هایی که احتمالاً هیچ Matchای ندارند Skip می‌شوند.
• به دلیل Columnar Storage، فقط Columnهای موردنیاز خوانده می‌شوند.
• و Compression حجم I/O را کاهش می‌دهد.
• در نهایت Vectorized Execution داده‌ها را به‌صورت Batch پردازش می‌کند.

مسیر اجرای Query می‌تواند چیزی شبیه این باشد:

100M Records → Pruning → Data Skipping → Required Columns → Execution → Result

@BIMining
  • ❤ 9
  • 👍 7
  • 🔥 1
More from @bimining
  1. Oct 1, 2026نکته مهم همین‌جاست: 100M Records ≠ 100M Records Read به همین دلیل: • Partitioning • ORDER…
  2. Sep 4, 2026قراردادی برای اینکه داده، قابل اعتماد بماند؛ Data Contract. در یک سیستم داده، ممکن است یک…
  3. Aug 16, 2026۵ الگوی معماری داده برای ۲۰۲۶ بحث ابزار نیست، بحث الگوست. الگوی غلط = خط لولهٔ مرده. ۱. لا…
  4. Jul 18, 2026ابزار dbt (Data Build Tool) در حال تسخیر دنیای مهندسی داده است. در ادامه لینک قیلمهای آموز…
  5. Jul 11, 2026معماری مدالیون(Medallion Architecture)، سیر تحول داده‌ها را از حالت خام اولیه تا نسخه‌ای ک…
  6. May 9, 2026در سال ۲۰۲۶، رویکرد اصلی در دیتا انجینیرینگ ELT است، نه ETL قدیمی. - روش قدیمی (ETL): اول…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →