Skip to main content
يمكن إجراء تحليل السلاسل الزمنية في ClickHouse باستخدام دوال SQL القياسية للتجميع ودوال النوافذ. وعند العمل مع بيانات السلاسل الزمنية، ستصادف عادةً ثلاثة أنواع رئيسية من المقاييس:
  • مقاييس Counter التي تزداد باستمرار بمرور الوقت (مثل مشاهدات الصفحات أو إجمالي الأحداث)
  • مقاييس Gauge التي تمثل قياسات لحظية يمكن أن ترتفع أو تنخفض (مثل استخدام CPU أو درجة الحرارة)
  • المُدرَّجات التكرارية التي تجمع المشاهدات ضمن سلال وتحصي عددها (مثل مدد الطلبات أو أحجام الاستجابة)
وتشمل أنماط التحليل الشائعة لهذه المقاييس مقارنة القيم بين الفترات، وحساب الإجماليات التراكمية، وتحديد معدلات التغير، وتحليل التوزيعات. ويمكن تحقيق كل ذلك من خلال الجمع بين دوال التجميع، ودوال النوافذ مثل sum() OVER، ودوال متخصصة مثل histogram().

التغيّرات بين الفترات

عند تحليل بيانات السلاسل الزمنية، نحتاج كثيرًا إلى فهم كيف تتغيّر القيم من فترة زمنية إلى أخرى. وهذا أمر أساسي لكلٍّ من مقاييس Gauge ومقاييس Counter. وتتيح لنا دالة النافذة lagInFrame الوصول إلى قيمة الفترة السابقة لحساب هذه التغيّرات. يوضح الاستعلام التالي ذلك من خلال حساب التغيّرات اليومية في مشاهدات صفحة Wikipedia الخاصة بـ “Weird Al” Yankovic. ويبيّن عمود الاتجاه ما إذا كانت الزيارات قد ارتفعت (قيم موجبة) أو انخفضت (قيم سالبة) مقارنةً باليوم السابق، مما يساعد على رصد الارتفاعات أو الانخفاضات غير المعتادة في النشاط.

القيم التراكمية

تتراكم مقاييس Counter بطبيعتها بمرور الوقت. ولتحليل هذا النمو التراكمي، يمكننا حساب المجاميع التراكمية باستخدام دوال النافذة. يوضح query التالي ذلك باستخدام عبارة sum() OVER، التي تُنشئ مجموعًا تراكميًا. وتوفّر الدالة bar() تمثيلًا مرئيًا لهذا النمو.

حساب المعدلات

عند تحليل بيانات السلاسل الزمنية، غالبًا ما يكون من المفيد فهم معدل الأحداث لكل وحدة زمنية. يحسب هذا الاستعلام معدل مشاهدات الصفحات في الثانية بقسمة الإجمالي لكل ساعة على عدد الثواني في الساعة (3600). يساعد المخطط الشريطي في تحديد ساعات ذروة النشاط.

المدرجات التكرارية

من حالات الاستخدام الشائعة لبيانات السلاسل الزمنية إنشاء مدرجات تكرارية استنادًا إلى الأحداث المتتبعة. لنفترض أننا نريد فهم توزيع الصفحات بحسب إجمالي hits لها، مع الاقتصار على الصفحات التي يزيد إجمالي hits فيها على 10,000. يمكننا استخدام الدالة histogram() لإنشاء مُدرَّج تكراري تكيّفي تلقائيًا استنادًا إلى عدد الفئات:
يمكننا بعد ذلك استخدام arrayJoin() لمعالجة البيانات وbar() لعرضها بصريًا:
آخر تعديل في ٣ يوليو ٢٠٢٦