أسلوب لإدارة البياناتيُعدّ التقسيم بالدرجة الأولى أسلوبًا لإدارة البيانات، وليس أداة لتحسين الاستعلامات. ومع أنه قد يحسّن الأداء في بعض أعباء العمل المحددة، فلا ينبغي أن يكون الخيار الأول لتسريع الاستعلامات. ويجب اختيار مفتاح التقسيم بعناية، مع فهم واضح لتداعياته، وألّا يُستخدم إلا عندما يتوافق مع احتياجات دورة حياة البيانات أو مع أنماط الوصول المفهومة جيدًا.
PARTITION BY عند إنشاء الجدول، ويُستخدم عادةً لتجميع الصفوف بحسب الفترات الزمنية أو الفئات أو غيرها من الأبعاد ذات الصلة بالأعمال. وتُشكّل كل قيمة فريدة لتعبير التقسيم partition مستقلًا فعليًا على القرص، ويخزّن ClickHouse البيانات في أجزاء بيانات منفصلة لكل قيمة من هذه القيم. ويساعد التقسيم في تحسين إدارة البيانات، وتبسيط سياسات الاحتفاظ، وقد يفيد أيضًا في بعض أنماط الاستعلام.
على سبيل المثال، تأمل جدول مجموعة بيانات أسعار العقارات المدفوعة في المملكة المتحدة التالي، مع مفتاح تقسيم هو toStartOfMonth(date).
toStartOfMonth(date). ثم، لكل قسم تم تحديده، تُعالَج الصفوف كالمعتاد هنا عبر تنفيذ عدة خطوات متسلسلة (① الفرز، ② التقسيم إلى أعمدة، ③ الضغط، ④ الكتابة إلى القرص).
للحصول على شرح أكثر تفصيلاً للتقسيم، نوصي بهذا الدليل.
عند تمكين التقسيم، لا يدمج ClickHouse أجزاء البيانات إلا داخل الأقسام نفسها، وليس عبر الأقسام المختلفة. نوضّح ذلك تخطيطيًا لجدول المثال أعلاه:
تطبيقات التقسيم
اختر مفتاح تقسيم منخفض الكاردينالية
toStartOfMonth(date) للمحرّك تخطي الأقسام غير ذات الصلة وأجزائها بالكامل.
ومع أن التقسيم قد يحسّن الأداء في بعض أنماط الاستعلامات، فإنه في الأساس ميزة لإدارة البيانات. ففي كثير من الحالات، قد يكون الاستعلام عبر جميع الأقسام أبطأ من استخدام جدول غير مقسم بسبب زيادة تجزؤ البيانات ومسح عدد أكبر من الأجزاء. استخدم التقسيم بحذر، واحرص دائمًا على أن يكون المفتاح المختار منخفض الكاردينالية ومتوافقًا مع سياسات دورة حياة بياناتك (مثلًا، الاحتفاظ عبر TTL). وإذا لم تكن متأكدًا مما إذا كان التقسيم ضروريًا، فقد يكون من الأفضل أن تبدأ من دونه ثم تُجري التحسين لاحقًا استنادًا إلى أنماط الوصول الفعلية التي تلاحظها.