تقبل جميع الدوال في هذا القسم صفرًا أو وسيطةً واحدة. والاستخدام الوحيد للوسيطة (إن وُجدت) هو منع إزالة التعبيرات الفرعية المشتركة بحيث تُرجِع عمليتا تنفيذ مختلفتان داخل صف واحد للدالة العشوائية نفسها قيمًا عشوائية مختلفة.
محتوى ذو صلة
- الدليل: توليد بيانات عشوائية في ClickHouse
- المدونة: توليد بيانات عشوائية في ClickHouse
fuzzBits
أُضيف في: v20.5.0
يقلب بتّات سلسلة الإدخال s، باحتمال p لكل بت.
الصيغة
fuzzBits(s, p)الوسيطات
s— سلسلة من النوعStringأوFixedStringلإجراء التشويش على البِتّات فيStringأوFixedStringp— احتمال قلب كل بِتّ، ويكون رقمًا بين0.0و1.0من النوعFloat*
القيمة المعادة
تعيد سلسلة خضعت للتشويش ومن النوع نفسه مثل s. String أو FixedString
أمثلة
مثال على الاستخدام
SELECT fuzzBits(materialize('abacaba'), 0.1)
FROM numbers(3)┌─fuzzBits(materialize('abacaba'), 0.1)─┐
│ abaaaja │
│ a*cjab+ │
│ aeca2A │
└───────────────────────────────────────┘rand
أُضيف في: v1.1.0
يعيد قيمة UInt32 عشوائية بتوزيع منتظم.
يستخدم مولِّدًا شبه عشوائي غير مشفّر بحالة ابتدائية يحصل عليها من النظام، ما يعني أنه رغم أنه يبدو عشوائيًا، فإنه ليس عشوائيًا حقيقيًا وقد يمكن التنبؤ به إذا كانت الحالة الابتدائية معروفة. في الحالات التي تكون فيها العشوائية الحقيقية بالغة الأهمية، فكّر في استخدام أساليب بديلة مثل استدعاءات على مستوى نظام التشغيل أو التكامل مع مكتبات خارجية.
البنية
rand([x])الأسماء البديلة: rand32
وسيطات الدالة
x— اختياري ويتم تجاهله. الغرض الوحيد من وسيطة الدالة هذه هو منع إزالة التعبيرات الفرعية المشتركة عند استخدام استدعاء الدالة نفسه عدة مرات في استعلام.Any
القيمة المعادة
يعيد رقمًا عشوائيًا من النوع UInt32. UInt32
أمثلة
مثال على الاستخدام
SELECT rand();1569354847rand64
أُدخل في: v1.1.0
يعيد عددًا عشوائيًا من النوع UInt64 يتبع توزيعًا منتظمًا.
يستخدم مولّدًا شبه عشوائي غير مشفّر بحالة ابتدائية تُستمد من النظام، ما يعني أنه رغم أنه يبدو عشوائيًا، فإنه ليس عشوائيًا فعليًا وقد يكون قابلًا للتنبؤ إذا كانت الحالة الابتدائية معروفة. في الحالات التي تكون فيها العشوائية الحقيقية ضرورية، فكّر في استخدام أساليب بديلة مثل استدعاءات على مستوى النظام أو التكامل مع مكتبات خارجية.
البنية
rand64([x])وسيطات الدالة
x— اختياري ويُتجاهل. الغرض الوحيد من وسيطة الدالة هذه هو منع إزالة التعبيرات الفرعية المشتركة عند استخدام استدعاء الدالة نفسه عدة مرات في استعلام.Any
القيمة المُعادة
يُرجع عددًا عشوائيًا من نوع UInt64 بتوزيع منتظم. UInt64
أمثلة
مثال على الاستخدام
SELECT rand64();15030268859237645412randBernoulli
أُضيف في: v22.10.0
يعيد عددًا عشوائيًا من نوع Float64 مولّدًا وفق توزيع برنولي.
البنية
randBernoulli(probability[, x])الوسائط
probability— احتمال النجاح، على شكل قيمة بين0و1.Float64x— اختياري ويُتجاهل. الغرض الوحيد من هذه الوسيطة هو منع إزالة التعبيرات الفرعية المشتركة عند استخدام استدعاء الدالة نفسه عدة مرات في query.Any
القيمة المُعادة
تُرجع عددًا عشوائيًا من نوع Float64 مولّدًا من توزيع برنولي المحدد. UInt64
أمثلة
مثال على الاستخدام
SELECT randBernoulli(.75) FROM numbers(5)┌─randBernoulli(0.75)─┐
│ 1 │
│ 1 │
│ 0 │
│ 1 │
│ 1 │
└─────────────────────┘randBinomial
أُضيفت في: v22.10.0
تعيد عددًا عشوائيًا من النوع Float64 مأخوذًا من التوزيع ذي الحدين.
البنية
randBinomial(experiments, probability[, x])الوسيطات
experiments— عدد التجاربUInt64probability— احتمال النجاح في كل تجربة، كقيمة بين0و1Float64x— اختياري ويُتجاهل. الغرض الوحيد من هذه الوسيطة هو منع إزالة التعبيرات الفرعية المشتركة عند استخدام استدعاء الدالة نفسه عدة مرات في استعلام.Any
القيمة المُعادة
تعيد عددًا عشوائيًا من نوع Float64 مأخوذًا من التوزيع ذي الحدين المحدد. UInt64
أمثلة
مثال على الاستخدام
SELECT randBinomial(100, .75) FROM numbers(5)┌─randBinomial(100, 0.75)─┐
│ 74 │
│ 78 │
│ 76 │
│ 77 │
│ 80 │
└─────────────────────────┘randCanonical
أُضيفت في: v22.11.0
يُرجِع عددًا عشوائيًا من النوع Float64 بتوزيع منتظم بين 0 (شامل) و1 (غير شامل).
البنية
randCanonical([x])المعاملات
x— اختياري ويُتجاهل. الغرض الوحيد من هذا المعامل هو منع إزالة التعبيرات الفرعية المشتركة عند استخدام استدعاء الدالة نفسه عدة مرات في استعلام.Any
القيمة المُعادة
تعيد رقمًا عشوائيًا من النوع Float64. Float64
أمثلة
مثال على الاستخدام
SELECT randCanonical();0.345217890123456randChiSquared
أُضيف في: v22.10.0
يعيد عددًا عشوائيًا من نوع Float64 مُستمدًا من توزيع كاي-تربيع.
البنية
randChiSquared(degree_of_freedom[, x])الوسيطات
degree_of_freedom— درجات الحرية.Float64x— اختياري ويُتجاهل. الغرض الوحيد من هذه الوسيطة هو منع إزالة التعبيرات الفرعية المشتركة عند استخدام استدعاء الدالة نفسه عدة مرات في استعلام.Any
القيمة المعادة
تعيد عددًا عشوائيًا من النوع Float64 مأخوذًا من توزيع كاي-تربيع المحدد. Float64
أمثلة
مثال على الاستخدام
SELECT randChiSquared(10) FROM numbers(5)┌─randChiSquared(10)─┐
│ 10.015463656521543 │
│ 9.621799919882768 │
│ 2.71785015634699 │
│ 11.128188665931908 │
│ 4.902063104425469 │
└────────────────────┘randConstant
أُضيفت في: v1.1.0
تولّد قيمة عشوائية واحدة تبقى ثابتة في جميع الصفوف أثناء تنفيذ الاستعلام الحالي.
هذه الدالة:
- تُرجع القيمة العشوائية نفسها لكل صف ضمن الاستعلام الواحد
- تُنتج قيماً مختلفة بين عمليات تنفيذ الاستعلام المنفصلة
وهي مفيدة لتطبيق بذور عشوائية أو معرّفات متسقة على جميع الصفوف في مجموعة البيانات
الصياغة
randConstant([x])الوسائط
x— اختياري ويُتجاهل. الغرض الوحيد من هذا الوسيط هو منع إزالة التعبيرات الفرعية المشتركة عند استخدام استدعاء الدالة نفسه عدة مرات في استعلام.Any
القيمة المُعادة
تعيد عمودًا من النوع UInt32 يحتوي على القيمة العشوائية نفسها في كل صف. UInt32
أمثلة
الاستخدام الأساسي
SELECT randConstant() AS random_value;| random_value |
|--------------|
| 1234567890 |الاستخدام مع معامل
SELECT randConstant(10) AS random_value;| random_value |
|--------------|
| 9876543210 |randExponential
أُضيفت في: v22.10.0
تعيد عددًا عشوائيًا من نوع Float64 يتبع توزيعًا أسيًا.
الصياغة
randExponential(lambda[, x])الوسيطات
lambda— معلمة المعدّل أو قيمة لامدا للتوزيعFloat64x— اختياري ويُتجاهل. الغرض الوحيد من هذه الوسيطة هو منع إزالة التعبيرات الفرعية المشتركة عند استخدام استدعاء الدالة نفسه عدة مرات في query.Any
القيمة المعادة
تعيد عددًا عشوائيًا من نوع Float64 مأخوذًا من التوزيع الأسي المحدد. Float64
أمثلة
مثال على الاستخدام
SELECT randExponential(1/10) FROM numbers(5)┌─randExponential(divide(1, 10))─┐
│ 44.71628934340778 │
│ 4.211013337903262 │
│ 10.809402553207766 │
│ 15.63959406553284 │
│ 1.8148392319860158 │
└────────────────────────────────┘randFisherF
أُضيف في: v22.10.0
يعيد عددًا عشوائيًا من نوع Float64 مُولَّدًا من توزيع F.
البنية
randFisherF(d1, d2[, x])الوسيطات
d1— درجة الحريةd1فيX = (S1 / d1) / (S2 / d2).Float64d2— درجة الحريةd2فيX = (S1 / d1) / (S2 / d2).Float64x— اختياري ويتم تجاهله. الغرض الوحيد من هذه الوسيطة هو منع إزالة التعبيرات الفرعية المشتركة عند استخدام استدعاء الدالة نفسه عدة مرات في استعلام.Any
القيمة المعادة
تعيد عددًا عشوائيًا من نوع Float64 مأخوذًا من توزيع F المحدد Float64
أمثلة
مثال على الاستخدام
SELECT randFisherF(10, 3) FROM numbers(5)┌─randFisherF(10, 20)─┐
│ 0.7204609609506184 │
│ 0.9926258472572916 │
│ 1.4010752726735863 │
│ 0.34928401507025556 │
│ 1.8216216009473598 │
└─────────────────────┘randLogNormal
أُضيف في: v22.10.0
يُرجع عددًا عشوائيًا من نوع Float64 مُولَّدًا من توزيع لوغ-طبيعي.
الصيغة
randLogNormal(mean, stddev[, x])الوسائط
mean— متوسط التوزيع.Float64stddev— الانحراف المعياري للتوزيع.Float64x— اختياري ويتم تجاهله. الغرض الوحيد من هذه الوسيطة هو منع إزالة التعبيرات الفرعية المشتركة عند استخدام الاستدعاء نفسه للدالة عدة مرات في استعلام.Any
القيمة المُعادة
تعيد عددًا عشوائيًا من نوع Float64 مأخوذًا من التوزيع اللوغاريتمي الطبيعي المحدد. Float64
أمثلة
مثال على الاستخدام
SELECT randLogNormal(100, 5) FROM numbers(5)┌─randLogNormal(100, 5)─┐
│ 1.295699673937363e48 │
│ 9.719869109186684e39 │
│ 6.110868203189557e42 │
│ 9.912675872925529e39 │
│ 2.3564708490552458e42 │
└───────────────────────┘randNegativeBinomial
أُضيف في: v22.10.0
يعيد عددًا عشوائيًا من نوع Float64 مُستمدًّا من توزيع ذي الحدين السالب.
البنية
randNegativeBinomial(experiments, probability[, x])الوسيطات
experiments— عدد التجارب.UInt64probability—احتمال الفشل في كل تجربة، كقيمة بين0و1. [Float64`](/reference/data-types/float)x— اختياري ويُتجاهل. الغرض الوحيد من هذه الوسيطة هو منع إزالة التعبيرات الفرعية المشتركة عند استخدام استدعاء الدالة نفسه عدة مرات في استعلام.Any
القيمة المعادة
يُرجع عددًا عشوائيًا من نوع Float64 مأخوذًا من توزيع ذي الحدين السالب المحدد UInt64
أمثلة
مثال على الاستخدام
SELECT randNegativeBinomial(100, .75) FROM numbers(5)┌─randNegativeBinomial(100, 0.75)─┐
│ 33 │
│ 32 │
│ 39 │
│ 40 │
│ 50 │
└─────────────────────────────────┘randNormal
أُضيفت في: v22.10.0
تُرجع عددًا عشوائيًا من نوع Float64 مأخوذًا من التوزيع الطبيعي.
الصيغة
randNormal(mean, stddev[, x])الوسيطات
mean— متوسط التوزيعFloat64stddev— الانحراف المعياري للتوزيعFloat64x— اختياري ويتم تجاهله. الغرض الوحيد من هذه الوسيطة هو منع إزالة التعبيرات الفرعية المشتركة عند استخدام الاستدعاء نفسه للدالة عدة مرات في استعلام.Any
القيمة المعادة
تعيد عددًا عشوائيًا من نوع Float64 مولدًا من التوزيع الطبيعي المحدد. Float64
أمثلة
مثال على الاستخدام
SELECT randNormal(10, 2) FROM numbers(5)┌──randNormal(10, 2)─┐
│ 13.389228911709653 │
│ 8.622949707401295 │
│ 10.801887062682981 │
│ 4.5220192605895315 │
│ 10.901239123982567 │
└────────────────────┘randPoisson
أُضيفت في: v22.10.0
تُرجع عددًا عشوائيًا من نوع Float64 مُولَّدًا وفق توزيع بواسون.
الصيغة
randPoisson(n[, x])الوسائط
n— متوسط عدد مرات الحدوث.UInt64x— اختياري ويُتجاهل. الغرض الوحيد من هذا الوسيط هو منع إزالة التعبيرات الفرعية المشتركة عند استخدام استدعاء الدالة نفسه عدة مرات في query.Any
القيمة المُعادة
يعيد رقمًا عشوائيًا من النوع Float64 مولَّدًا من توزيع بواسون المحدد. UInt64
أمثلة
مثال على الاستخدام
SELECT randPoisson(10) FROM numbers(5)┌─randPoisson(10)─┐
│ 8 │
│ 8 │
│ 7 │
│ 10 │
│ 6 │
└─────────────────┘randStudentT
قُدِّم في: v22.10.0
يعيد عددًا عشوائيًا من نوع Float64 مأخوذًا من توزيع ستودنت t.
البنية
randStudentT(degree_of_freedom[, x])الوسيطات
degree_of_freedom— درجات الحرية.Float64x— اختياري ويُتجاهل. الغرض الوحيد من هذه الوسيطة هو منع إزالة التعبيرات الفرعية المشتركة عند استخدام استدعاء الدالة نفسه عدة مرات في استعلام.Any
القيمة المُعادة
يعيد عددًا عشوائيًا من نوع Float64 مأخوذًا من توزيع t لستودنت المحدد. Float64
أمثلة
مثال على الاستخدام
SELECT randStudentT(10) FROM numbers(5)┌─────randStudentT(10)─┐
│ 1.2217309938538725 │
│ 1.7941971681200541 │
│ -0.28192176076784664 │
│ 0.2508897721303792 │
│ -2.7858432909761186 │
└──────────────────────┘randUniform
قُدِّم في: v22.10.0
يعيد عددًا عشوائيًا من النوع Float64 مأخوذًا بتوزيع منتظم من المجال [\min, \max].
البنية
randUniform(min, max[, x])الوسائط
min— الحد الأيسر للنطاق (شامل).Float64max— الحد الأيمن للنطاق (شامل).Float64x— اختياري ويُتجاهل. الغرض الوحيد من هذه الوسيطة هو منع إزالة التعبيرات الفرعية المشتركة عند استخدام استدعاء الدالة نفسه عدة مرات في استعلام.Any
القيمة المُعادة
تعيد عددًا عشوائيًا موزعًا بانتظام ضمن الفترة المحصورة بين min وmax. Float64
أمثلة
مثال على الاستخدام
SELECT randUniform(5.5, 10) FROM numbers(5)┌─randUniform(5.5, 10)─┐
│ 8.094978491443102 │
│ 7.3181248914450885 │
│ 7.177741903868262 │
│ 6.483347380953762 │
│ 6.122286382885112 │
└──────────────────────┘randomFixedString
استُحدثت في: v20.5.0
يولّد سلسلة نصية عشوائية ثابتة الطول بعدد الأحرف المحدد. ولا يُشترط أن تكون الأحرف المُعادة من نوع ASCII، أي إنها قد لا تكون قابلة للطباعة.
البنية
randomFixedString(length)الوسيطات
length— طول السلسلة بالبايت.UInt*
القيمة المعادة
يُرجع سلسلة مملوءة ببايتات عشوائية. FixedString
أمثلة
مثال على الاستخدام
SELECT randomFixedString(13) AS rnd, toTypeName(rnd)┌─rnd────────┬─toTypeName(randomFixedString(13))─┐
│ j▒h㋖HɨZ'▒ │ FixedString(13) │
└────────────┴───────────────────────────────────┘randomPrintableASCII
أُضيفت في: v20.1.0
تُنشئ سلسلة ASCII عشوائية بعدد الأحرف المحدد.
إذا مرّرت length < 0، فسيكون سلوك الدالة غير معرّف.
الصيغة
randomPrintableASCII(length[, x])الوسيطات
length— طول السلسلة بالبايت.(U)Int*x— اختياري ويُتجاهل. الغرض الوحيد من هذه الوسيطة هو منع إزالة التعبيرات الفرعية المشتركة عند استخدام استدعاء الدالة نفسه عدة مرات في استعلام.Any
القيمة المُعادة
تُرجع سلسلة تتكوّن من مجموعة عشوائية من محارف ASCII القابلة للطباعة. String
أمثلة
مثال على الاستخدام
SELECT number, randomPrintableASCII(30) AS str, length(str) FROM system.numbers LIMIT 3┌─number─┬─str────────────────────────────┬─length(randomPrintableASCII(30))─┐
│ 0 │ SuiCOSTvC0csfABSw=UcSzp2.`rv8x │ 30 │
│ 1 │ 1Ag NlJ &RCN:*>HVPG;PE-nO"SUFD │ 30 │
│ 2 │ /"+<"with:=LjJ Vm!c&hI*m#XTfzz │ 30 │
└────────┴────────────────────────────────┴──────────────────────────────────┘randomString
أُضيفت في: v20.5.0
يُنشئ سلسلة نصية عشوائية بعدد الأحرف المحدد. الأحرف المُعادة ليست بالضرورة من نوع ASCII، أي إنها قد لا تكون قابلة للطباعة.
البنية
randomString(length[, x])الوسيطات
length— طول السلسلة بالبايت.(U)Int*x— اختياري ويُتجاهل. الغرض الوحيد من هذه الوسيطة هو منع إزالة التعبيرات الفرعية المشتركة عند استخدام استدعاء الدالة نفسه عدة مرات في استعلام.Any
القيمة المُعادة
تعيد سلسلة مملوءة ببايتات عشوائية. String
أمثلة
مثال على الاستخدام
SELECT randomString(5) AS str FROM numbers(2)���
�v6B�randomStringUTF8
أُضيفت في: v20.5.0
ينشئ سلسلة UTF-8 عشوائية بعدد نقاط الترميز المحدد. لا يُعاد أيٌّ من نقاط الترميز من المستويات غير المعيّنة (المستويات من 4 إلى 13). ومع ذلك، قد لا يتمكن العميل الذي يتفاعل مع خادم ClickHouse من عرض سلسلة UTF-8 الناتجة بشكل صحيح.
البنية
randomStringUTF8(length)الوسيطات
length— طول السلسلة بنقاط الترميز.(U)Int*
القيمة المعادة
يعيد سلسلة مملوءة بنقاط ترميز UTF-8 عشوائية. String
أمثلة
مثال على الاستخدام
SELECT randomStringUTF8(13)┌─randomStringUTF8(13)─┐
│ 𲉗𩍄ԍ╃𑄅 │
└──────────────────────┘