الانتقال إلى المحتوى الرئيسي
يفيد توليد البيانات العشوائية عند اختبار حالات استخدام جديدة أو إجراء اختبارات قياس الأداء لتطبيقك. يوفّر ClickHouse مجموعة واسعة من الدوال لتوليد البيانات العشوائية تُغني، في كثير من الحالات، عن الحاجة إلى مولّد بيانات خارجي. يقدّم هذا الدليل عدة أمثلة على كيفية توليد مجموعات بيانات عشوائية في ClickHouse بمتطلبات متفاوتة للعشوائية.

مجموعة بيانات بسيطة بتوزيع منتظم

حالة الاستخدام: أنشئ بسرعة مجموعة بيانات لأحداث المستخدمين بطوابع زمنية عشوائية وأنواع أحداث عشوائية.
  • rand() % 10000: توزيع منتظم لـ 10 آلاف مستخدم
  • arrayElement(...): يختار عشوائيًا نوعًا واحدًا من ثلاثة أنواع أحداث
  • الطوابع الزمنية موزعة على مدى الساعات الأربع والعشرين الماضية

التوزيع الأُسّي

حالة الاستخدام: محاكاة مبالغ المشتريات، بحيث تكون معظم القيم منخفضة، بينما تكون قلة منها مرتفعة.
  • طوابع زمنية موزعة بانتظام خلال فترة حديثة
  • randExponential(1/10) — معظم القيم قريبة من 0، مع إزاحة قدرها 15 كحد أدنى ([ClickHouse][1], [ClickHouse][2], [Atlantic.Net][3], [GitHub][4])

الأحداث الموزعة زمنيًا (Poisson)

حالة الاستخدام: محاكاة وصول الأحداث بحيث تتكتل حول فترة زمنية محددة (مثل ساعة الذروة).
  • تبلغ الأحداث ذروتها قرابة الظهر، مع انحراف يتبع توزيع بواسون

التوزيع الطبيعي المتغيّر بمرور الوقت

حالة الاستخدام: محاكاة مقاييس النظام (مثل استخدام CPU) التي تتغيّر بمرور الوقت.
  • يتبع usage موجة جيبية يومية + بعض العشوائية
  • القيم محصورة بين [0,100]

البيانات الفئوية وبيانات Nested

حالة الاستخدام: أنشئ ملفات تعريف للمستخدمين تتضمن اهتمامات متعددة القيم.
  • طول عشوائي للمصفوفة بين 1 و3
  • ثلاث درجات لكل مستخدم في كل اهتمام
اقرأ مدونة Generating Random Data in ClickHouse للاطلاع على المزيد من الأمثلة.

إنشاء جداول عشوائية

تُعد الدالة generateRandomStructure مفيدة للغاية عند استخدامها مع محرك الجدول generateRandom لأغراض الاختبار، وقياس الأداء، أو إنشاء بيانات وهمية بمخططات عشوائية. لنبدأ أولًا بإلقاء نظرة على شكل البنية العشوائية باستخدام الدالة generateRandomStructure:
قد ترى شيئًا كهذا:
يمكنك أيضًا استخدام seed للحصول على البنية نفسها في كل مرة:
لننشئ الآن جدولًا حقيقيًا ونملأه ببيانات عشوائية:
لنَدمج كلتا الدالتين للحصول على table عشوائي تمامًا. أولًا، لنرَ البنية التي سنحصل عليها:
الآن أنشئ الجدول وفق هذا الهيكل، ثم استخدم تعليمة DESCRIBE لمعرفة ما أنشأناه:
افحص الصف الأول للاطّلاع على عيّنة من البيانات المُولَّدة:
آخر تعديل في ٣ يوليو ٢٠٢٦