عائلة محركات الجداول Log
يمكن لمحركات الجداول من عائلة
Log تخزين البيانات في أنظمة الملفات الموزعة HDFS أو S3.
الخصائص الشائعة
- تخزن البيانات على القرص.
- تُلحِق البيانات بنهاية الملف عند الكتابة.
-
تدعم الأقفال للوصول المتزامن إلى البيانات.
أثناء استعلامات
INSERT، يُقفَل الجدول، وتنتظر الاستعلامات الأخرى الخاصة بقراءة البيانات وكتابتها حتى يُفكّ قفل الجدول. وإذا لم تكن هناك استعلامات لكتابة البيانات، فيمكن تنفيذ أي عدد من استعلامات قراءة البيانات بالتوازي. - لا تدعم mutations.
-
لا تدعم الفهارس.
وهذا يعني أن استعلامات
SELECTعلى نطاقات البيانات ليست فعّالة. - لا تكتب البيانات على نحو ذرّي. قد ينتهي بك الأمر إلى جدول يحتوي على بيانات تالفة إذا تعطلت عملية الكتابة لسبب ما، مثل توقّف الخادم بشكل غير طبيعي.
الاختلافات
TinyLog الأبسط في هذه الفئة، ويقدّم أقل الإمكانات وأدنى كفاءة. ولا يدعم المحرك TinyLog قراءة البيانات بالتوازي بواسطة عدة خيوط ضمن استعلام واحد. كما أنه يقرأ البيانات ببطء أكبر من المحركات الأخرى في هذه الفئة التي تدعم القراءة المتوازية ضمن استعلام واحد، ويستخدم عددًا من واصفات الملفات يكاد يماثل ما يستخدمه المحرك Log، لأنه يخزّن كل عمود في ملف منفصل. استخدمه فقط في السيناريوهات البسيطة.
يدعم المحركان Log وStripeLog قراءة البيانات بالتوازي. وعند قراءة البيانات، يستخدم ClickHouse عدة خيوط. ويعالج كل خيط كتلة بيانات منفصلة. يستخدم المحرك Log ملفًا منفصلًا لكل عمود في الجدول. أما StripeLog فيخزّن جميع البيانات في ملف واحد. ونتيجة لذلك، يستخدم المحرك StripeLog عددًا أقل من واصفات الملفات، لكن المحرك Log يوفّر كفاءة أعلى عند قراءة البيانات.