يتم إنشاء توثيق الدوال أدناه بالاعتماد على جدول النظام
system.functions.FQDN
قُدِّم في: v20.1.0 تعيد اسم النطاق المؤهل بالكامل لخادم ClickHouse.هذه الدالة غير حتمية: يمكن أن تعيد نتائج مختلفة للوسائط نفسها.
fullHostName
الوسائط
- لا شيء.
String
أمثلة
مثال على الاستخدام
Query
Response
MACNumToString
استُحدث في: v1.1.0 يفسّر العددUInt64 على أنه عنوان MAC بتنسيق big-endian.
ويُرجع عنوان MAC المقابل بالتنسيق AA:BB:CC:DD:EE:FF (قيم مفصولة بنقطتين بالصيغة الست عشرية) كسلسلة نصية.
الصياغة
num— عدد من نوع UInt64.UInt64
String
أمثلة
مثال على الاستخدام
Query
Response
MACStringToNum
أُضيفت في: v1.1.0 الدالة العكسية لـ MACNumToString. إذا كان عنوان MAC بتنسيق غير صالح، فستُرجع 0. الصياغةs— سلسلة نصية لعنوان MAC.String
UInt64
أمثلة
مثال على الاستخدام
Query
Response
MACStringToOUI
أُضيف في: v1.1.0 إذا أُعطي عنوان MAC بالتنسيق AA:BB:CC:DD:EE:FF (أرقام مفصولة بنقطتين بالصيغة السداسية العشرية)، فإنه يعيد أول ثلاثة أوكتيتات على هيئة رقم UInt64. وإذا كان عنوان MAC بتنسيق غير صالح، فإنه يعيد 0. بنية الجملةs— عنوان MAC كسلسلة نصية.String
UInt64
أمثلة
مثال على الاستخدام
Query
Response
authenticatedUser
أُضيفت في: v25.11.0 إذا جرى تبديل مستخدم الجلسة باستخدام الأمر EXECUTE AS، فستُرجع هذه الدالة اسم المستخدم الأصلي الذي استُخدم للمصادقة وإنشاء الجلسة. الاسم البديل: authUser()هذه الدالة غير حتمية: إذ يمكن أن تُرجع نتائج مختلفة للوسائط نفسها.
authUser
الوسائط
- لا يوجد.
String
أمثلة
مثال على الاستخدام
Query
Response
bar
استُحدث في: v1.1.0 ينشئ مخططًا شريطيًا. يرسم شريطًا بعرض يتناسب مع (x - min)، ويكون مساويًا لعدد المحارف في width عندما تكون x = max. يُرسَم الشريط بدقة تصل إلى ثُمن المحرف. البنيةx— الحجم المطلوب عرضه.(U)Int*أوFloat*أوDecimalmin— الحد الأدنى للقيمة.(U)Int*أوFloat*أوDecimalmax— الحد الأقصى للقيمة.(U)Int*أوFloat*أوDecimalwidth— اختياري. عرض الشريط بالأحرف. القيمة الافتراضية هي80.const (U)Int*أوconst Float*أوconst Decimal
String
أمثلة
مثال على الاستخدام
Query
Response
blockNumber
أُضيف في: v1.1.0 يعيد رقمًا تسلسليًا يزداد باطراد لـالكتلة التي تحتوي على الصف. ويُحدَّث رقم الكتلة المُعاد قدر الإمكان، أي قد لا يكون دقيقًا تمامًا.هذه الدالة غير حتمية: يمكن أن تعيد نتائج مختلفة للوسائط نفسها.
- لا شيء.
UInt64
أمثلة
الاستخدام الأساسي
Query
Response
blockSerializedSize
أُضيف في: v20.3.0 يعيد الحجم غير المضغوط، بالبايت، لكتلة من القيم على القرص.هذه الدالة غير حتمية: يمكن أن تُرجع نتائج مختلفة للوسائط نفسها.
x1[, x2, ...]— أي عدد من القيم المطلوب الحصول على الحجم غير المضغوط للكتلة الخاصة بها.Any
UInt64
أمثلة
مثال على الاستخدام
Query
Response
blockSize
أُضيفت في: v1.1.0 في ClickHouse، تُعالَج الاستعلامات على شكل كتل (chunks). تُرجِع هذه الدالة حجم الكتلة (عدد الصفوف) التي استُدعيت عليها.هذه الدالة غير حتمية: يمكن أن تُرجِع نتائج مختلفة للمعاملات نفسها.
- لا يوجد.
UInt64
أمثلة
مثال على الاستخدام
Query
Response
buildId
قُدِّمت في: v20.5.0 تُرجِع معرّف البناء الذي يُنشئه مصرّف للملف التنفيذي لخادم ClickHouse قيد التشغيل. إذا نُفِّذت في سياق جدول موزّع، فستُنشئ هذه الدالة عمودًا عاديًا بقيم مرتبطة بكل shard. وإلا فإنها تُنتج قيمة ثابتة.هذه الدالة غير حتمية: يمكنها إرجاع نتائج مختلفة للمعاملات نفسها.
- لا توجد.
String
أمثلة
مثال على الاستخدام
Query
Response
byteSize
أُضيفت في: v21.1.0 تعيد تقديرًا لحجم البايت غير المضغوط لوسيطاتها في الذاكرة. بالنسبة إلى الوسيطات من النوعString، تعيد الدالة طول السلسلة + 8 (الطول).
إذا كانت للدالة عدة وسيطات، فإنها تحسب مجموع أحجام البايت الخاصة بها.
البنية
arg1[, arg2, ...]— قيم من أي نوع بيانات يُراد تقدير حجمها بالبايت في صورتها غير المضغوطة.Any
UInt64
أمثلة
مثال على الاستخدام
Query
Response
Query
Response
colorOKLABToSRGB
أُضيفت في: v26.2.0 تحوّل لونًا من فضاء الألوان الإدراكي OKLab إلى فضاء الألوان sRGB. يُحدَّد لون الإدخال في فضاء الألوان OKLab. إذا كانت قيم الإدخال خارج نطاقات OKLab المعتادة، فتُحدَّد النتيجة وفقًا للتنفيذ. يستخدم OKLab ثلاثة مكوّنات:- L: الإضاءة الإدراكية (عادةً في النطاق [0..1])
- a: المحور التقابلي الأخضر-الأحمر
- b: المحور التقابلي الأزرق-الأصفر
- التحويل من OKLab إلى Linear sRGB.
- التحويل من Linear sRGB إلى sRGB مُرمَّز بالغاما.
tuple— قيمةTupleتتألف من ثلاث قيم رقمية هيLوaوb، حيث تقعLضمن النطاق[0...1].Tuple(Float64, Float64, Float64)gamma— اختياري. الأسّ المستخدم لتحويل Linear sRGB مرة أخرى إلى sRGB عبر تطبيق(x ^ (1 / gamma)) * 255على كل قناةx. القيمة الافتراضية هي2.2.Float64
Tuple بالشكل (R, G, B) تمثل قيم ألوان sRGB. Tuple(Float64, Float64, Float64)
أمثلة
تحويل OKLAB إلى sRGB (Float)
Query
Response
Query
Response
colorOKLCHToSRGB
أُضيف في: v25.7.0 يحوّل لونًا من فضاء الألوان الإدراكي OKLCH إلى فضاء الألوان sRGB المألوف. إذا كانتL خارج النطاق [0...1]، أو كانت C سالبة، أو كانت H خارج النطاق [0...360]، فإن النتيجة تكون مُعرَّفة بحسب التنفيذ.
OKLCH هو نسخة أسطوانية من فضاء الألوان OKLab.
إحداثياته الثلاث هي
L (السطوع ضمن النطاق [0...1])، وC (الكروما >= 0)، وH (تدرّج اللون بالدرجات ضمن [0...360]).
صُمّم OKLab/OKLCH ليكون متجانسًا إدراكيًا مع بقائه منخفض الكلفة حسابيًا.colorSRGBToOKLCH:
- من OKLCH إلى OKLab.
- من OKLab إلى Linear sRGB
- من Linear sRGB إلى sRGB
tuple— قيمة من النوعTupleتتألف من ثلاث قيم رقميةLوCوH، حيث تكونLضمن النطاق[0...1]، وC >= 0، وHضمن النطاق[0...360].Tuple(Float64, Float64, Float64)gamma— اختياري. الأسّ المستخدم لتحويل Linear sRGB إلى sRGB مرة أخرى، وذلك بتطبيق(x ^ (1 / gamma)) * 255على كل قناةx. القيمة الافتراضية هي2.2.Float64
Tuple (R, G, B) تمثل قيم ألوان sRGB. Tuple(Float64, Float64, Float64)
أمثلة
تحويل OKLCH إلى sRGB
Query
Response
Query
Response
colorSRGBToOKLAB
أُضيف في: v26.2.0 يحوّل لونًا مُرمَّزًا في فضاء الألوان sRGB إلى فضاء الألوان OKLAB المتجانس إدراكيًا. إذا كانت أي قناة إدخال خارج[0...255] أو كانت قيمة gamma غير موجبة، فإن السلوك يعتمد على التنفيذ.
OKLAB هو فضاء ألوان متجانس إدراكيًا.
إحداثياته الثلاث هي
L (السطوع ضمن النطاق [0...1]) وa (Green-Red axis) وb (Blue-Yellow axis).
صُمّم OKLab ليكون متجانسًا إدراكيًا مع الحفاظ على انخفاض الكلفة الحسابية.- sRGB إلى Linear sRGB
- Linear sRGB إلى OKLab
tuple— قيمة Tuple تتكوّن من ثلاث قيم: R وG وB ضمن النطاق[0...255].Tuple(UInt8, UInt8, UInt8)gamma— اختياري. الأسّ المستخدَم لجعل sRGB خطيًا عبر تطبيق(x / 255)^gammaعلى كل قناةx. القيمة الافتراضية هي2.2.Float64
Tuple(Float64, Float64, Float64)
أمثلة
تحويل sRGB إلى OKLAB
Query
Response
colorSRGBToOKLCH
أُضيف في: v25.7.0 يحوّل لونًا مُرمَّزًا في فضاء الألوان sRGB إلى فضاء الألوان OKLCH المتجانس إدراكيًا. إذا كانت أي قناة إدخال خارج النطاق[0...255] أو كانت قيمة gamma غير موجبة، فإن السلوك يعتمد على التنفيذ.
OKLCH هو نسخة أسطوانية من فضاء الألوان OKLab.
إحداثياته الثلاث هي
L (السطوع ضمن النطاق [0...1])، وC (الكروما >= 0) وH (تدرّج اللون بالدرجات ضمن [0...360]).
صُمِّم OKLab/OKLCH ليكون متجانسًا إدراكيًا مع بقائه منخفض الكلفة حسابيًا.- من sRGB إلى Linear sRGB
- من Linear sRGB إلى OKLab
- من OKLab إلى OKLCH.
tuple— قيمة من النوعTupleتتكوّن من ثلاث قيم R وG وB ضمن النطاق[0...255].Tuple(UInt8, UInt8, UInt8)gamma— اختياري. الأسّ المُستخدم لتحويل sRGB إلى تمثيل خطي عبر تطبيق(x / 255)^gammaعلى كل قناةx. القيمة الافتراضية هي2.2.Float64
Tuple(Float64, Float64, Float64)
أمثلة
تحويل sRGB إلى OKLCH
Query
Response
connectionId
أُضيفت في: v21.3.0 تعيد معرّف الاتصال للعميل الذي أرسل الاستعلام الحالي. تكون هذه الدالة مفيدة بشكل خاص في سيناريوهات تصحيح الأخطاء. أُنشئت للتوافق مع الدالةCONNECTION_ID في MySQL.
ولا تُستخدم عادةً في استعلامات الإنتاج.
هذه الدالة غير حتمية: يمكن أن تُرجِع نتائج مختلفة للمعاملات نفسها.
- لا يوجد.
UInt64
أمثلة
مثال على الاستخدام
Query
Response
countDigits
أُضيفت في: v20.8.0 تعيد عدد الخانات اللازمة لتمثيل قيمة بالصيغة العشرية.تأخذ هذه الدالة في الحسبان مقياس القيم العشرية، أي إنها تحسب النتيجة استنادًا إلى نوع العدد الصحيح الأساسي، وهو
(value * scale).على سبيل المثال:countDigits(42) = 2countDigits(42.000) = 5countDigits(0.04200) = 4
x. UInt8
أمثلة
مثال للاستخدام
Query
Response
currentDatabase
أُضيف في: v1.1.0 يُرجع اسم قاعدة البيانات الحالية. ويفيد ذلك في معاملات محرك الجدول ضمن استعلاماتCREATE TABLE عندما تحتاج إلى تحديد قاعدة البيانات.
راجع أيضًا عبارة SET.
هذه الدالة غير حتمية: إذ يمكن أن تُرجع نتائج مختلفة للمعاملات نفسها.
current_database, DATABASE, SCHEMA
المعاملات
- لا شيء.
String
أمثلة
مثال على الاستخدام
Query
Response
Query
Response
currentHandler
أُضيف في: v26.6.0 يعيد اسم معالج HTTP المعرّف بلغة SQL (والمنشأ باستخدامCREATE HANDLER) الذي استدعى الاستعلام.
يعيد سلسلة فارغة إذا لم يُستدعَ الاستعلام عبر معالج من هذا النوع.
يفيد في تخصيص سلوك الاستعلام بحسب المعالج الذي استدعاه.
هذه الدالة غير حتمية: قد تعيد نتائج مختلفة للوسائط نفسها.
- لا شيء.
String
أمثلة
مثال على الاستخدام
Query
currentProfiles
قُدِّم في: v21.9.0 يعيد مصفوفة من ملفات تعريف الإعدادات الخاصة بالمستخدم الحالي.هذه الدالة غير حتمية: قد تُرجِع نتائج مختلفة للوسائط نفسها.
- لا توجد.
Array(String)
أمثلة
مثال على الاستخدام
Query
Response
currentQueryID
قُدِّم في: v25.2.0 يعيد معرّف الاستعلام الحالي.هذه الدالة غير حتمية: يمكن أن تُرجع نتائج مختلفة للوسائط نفسها.
current_query_id
الوسائط
- لا يوجد.
Query
Response
currentRequestURL
أُضيف في: v26.6.0 تعيد URL لطلب HTTP (المسار وسلسلة الاستعلام) الذي استدعى الاستعلام. تعيد سلسلة فارغة إذا لم يُستدعَ الاستعلام عبر HTTP. تكون مفيدة، بالاقتران مع معالجات HTTP المعرّفة باستخدام SQL (CREATE HANDLER)، لاستخراج المعلمات
المضمّنة في مسار الطلب.
هذه الدالة غير حتمية: قد تُرجع نتائج مختلفة للوسائط نفسها.
- None.
String
أمثلة
مثال على الاستخدام
Query
currentRoles
أُضيفت في: v21.9.0 تُرجِع مصفوفة بالأدوار المُعيَّنة للمستخدم الحالي.هذه الدالة غير حتمية: قد تُرجِع نتائج مختلفة للمعاملات نفسها.
- لا يوجد.
Array(String)
أمثلة
مثال على الاستخدام
Query
Response
currentSchemas
أُضيف في: v23.7.0 مماثلة للدالةcurrentDatabase، ولكنها
- تقبل وسيطة من نوع Boolean يتم تجاهلها
- تُرجع اسم قاعدة البيانات في مصفوفة تحتوي على قيمة واحدة.
currentSchemas موجودة فقط للتوافق مع PostgreSQL.
يُرجى استخدام currentDatabase بدلًا منها.
انظر أيضًا إلى عبارة SET.
هذه الدالة غير حتمية: قد تُرجِع نتائج مختلفة للوسائط نفسها.
current_schemas
الوسائط
bool— قيمة منطقية يتم تجاهلها.Bool
Array(String)
أمثلة
مثال على الاستخدام
Query
Response
currentUser
أُضيف في: v20.1.0 يعيد اسم المستخدم الحالي. في حال كان الاستعلام موزعًا، يُعاد اسم المستخدم الذي بدأ الاستعلام.هذه الدالة غير حتمية: قد تعيد نتائج مختلفة للوسائط نفسها.
session_user, current_user, user
الوسائط
- لا شيء.
String
أمثلة
مثال على الاستخدام
Query
Response
Query
Response
defaultProfiles
أُضيف في: v21.9.0 يُرجع مصفوفة بأسماء ملفات تعريف الإعدادات الافتراضية للمستخدم الحالي.هذه الدالة غير حتمية: يمكن أن تُرجع نتائج مختلفة للوسيطات نفسها.
- لا شيء.
Array(String)
أمثلة
مثال على الاستخدام
Query
Response
defaultRoles
أُضيف في: v21.9.0 يُرجع مصفوفة من الأدوار الافتراضية للمستخدم الحالي.هذه الدالة غير حتمية: قد تُرجع نتائج مختلفة للوسيطات نفسها.
- لا توجد.
Array(String)
أمثلة
مثال للاستخدام
Query
Response
defaultValueOfArgumentType
تم تقديمه في: v1.1.0 يعيد القيمة الافتراضية لنوع بيانات معيّن. ولا يشمل القيم الافتراضية للأعمدة المخصّصة التي يعيّنها المستخدم. الصيغةexpression— قيمة من أي نوع، أو تعبير يُنتج قيمة من أي نوع.Any
0 للأرقام، أو سلسلة نصية فارغة للسلاسل النصية، أو NULL للأنواع Nullable. UInt8 أو String أو NULL
أمثلة
مثال على الاستخدام
Query
Response
Query
Response
defaultValueOfTypeName
تم تقديمه في: v1.1.0 تعيد القيمة الافتراضية للنوع ذي الاسم المحدد. البنيةtype— سلسلة نصية تمثل اسم نوع.String
0 للأرقام، وسلسلة فارغة للسلاسل النصية، أو NULL في حالة Nullable UInt8 أو String أو NULL
أمثلة
مثال على الاستخدام
Query
Response
Query
Response
digits
أُضيف في: v26.7.0 يعيد الأرقام من العددn بدءًا من الفهرس المحدد offset.
يبدأ العد من 1 وفقًا للمنطق التالي:
- إذا كانت قيمة
offsetهي0، فسيُطرَح استثناء، لأنoffsetيعتمد ترقيمًا يبدأ من 1. - إذا كانت قيمة
offsetسالبة، فيبدأ العد بمقدارoffsetأرقام من نهاية العدد بدلًا من بدايته. - إذا كانت قيمة
offsetأكبر من عدد الأرقام فيn، فستُعاد القيمة0.
length للمنطق التالي:
- إذا كانت قيمة
lengthموجبة، فهذا يعني عدد الأرقام المطلوب أخذها بدءًا منoffset - إذا كانت قيمة
lengthسالبة، فهذا يعني عدد الأرقام التي يجب استبعادها من يمين العدد
substring، التي تنفذ العملية المناظرة على السلاسل النصية.
الصياغة
n— العدد الذي ستُستخرج منه الأرقام.(U)Int8or(U)Int16or(U)Int32or(U)Int64offset— موضع بداية الأرقام فيn.(U)Int8or(U)Int16or(U)Int32or(U)Int64length— اختياري. الطول الأقصى للأرقام.(U)Int8or(U)Int16or(U)Int32or(U)Int64
n، والمفسَّرة على أنها UInt64. تُرجع 0 إذا كان النطاق المحدد فارغًا. لا تُحفَظ الأصفار البادئة. UInt64
أمثلة
إزاحة موجبة
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
displayName
أُضيف في: v22.11.0 يعيد قيمةdisplay_name من config، أو الاسم المؤهل بالكامل للنطاق (FQDN) الخاص بالخادم إذا لم يتم تعيينه.
هذه الدالة غير حتمية: يمكنها إرجاع نتائج مختلفة للوسيطات نفسها.
- لا شيء.
display_name من config، أو FQDN الخاص بالخادم إذا لم تكن مُعيّنة. String
أمثلة
مثال استخدام
Query
Response
dumpColumnStructure
أُضيف في: v1.1.0 يعرض وصفًا تفصيليًا للبنية الداخلية لعمود ونوع بياناته.هذه الدالة غير حتمية: قد تُرجِع نتائج مختلفة للمعاملات نفسها.
x— القيمة المطلوب الحصول على وصف لها.Any
String
أمثلة
مثال على الاستخدام
Query
Response
enabledProfiles
أُضيف في: v21.9.0 يعيد مصفوفة من أسماء ملفات تعريف الإعدادات المُمكّنة للمستخدم الحالي.هذه الدالة غير حتمية: يمكن أن تُرجع نتائج مختلفة للوسائط نفسها.
- لا يوجد.
Array(String)
أمثلة
مثال على الاستخدام
Query
Response
enabledRoles
أُضيفت في: v21.9.0 تعيد مصفوفة من الأدوار المُمكَّنة للمستخدم الحالي.هذه الدالة غير حتمية: قد تعيد نتائج مختلفة للوسيطات نفسها.
- لا شيء.
Array(String)
أمثلة
مثال على الاستخدام
Query
Response
errorCodeToName
أُضيف في: v20.12.0 يُرجع الاسم النصي لرمز خطأ رقمي في ClickHouse. يتوفر الربط بين رموز الخطأ الرقمية وأسماء الأخطاء هنا. البنيةerror_code. String
أمثلة
مثال على الاستخدام
Query
Response
file
قُدِّم في: v21.3.0 يقرأ ملفًا على هيئة سلسلة نصية ويحمّل البيانات إلى العمود المحدد. لا يُفسَّر محتوى الملف. راجع أيضًا دالة الجدولfile.
هذه الدالة غير حتمية: قد تُرجع نتائج مختلفة للوسائط نفسها.
path— مسار الملف بالنسبة إلىuser_files_path. يدعم أحرف البدل*,**,?,{abc,def}و{N..M}، حيث إنNوMعددان، و'abc'و'def'سلسلتان نصيتان.Stringdefault— القيمة المُعادة إذا لم يكن الملف موجودًا أو تعذّر الوصول إليه.StringأوNULL
String
أمثلة
إدراج ملفات في جدول
Query
Response
filesystemAvailable
أُضيف في: v20.1.0 يعيد مقدار المساحة الحرة في نظام الملفات الذي يستضيف التخزين الدائم لقاعدة البيانات. تكون القيمة المعادة دائمًا أقل من إجمالي المساحة الحرة (filesystemUnreserved) لأن بعض المساحة تكون محجوزة لنظام التشغيل.
هذه الدالة غير حتمية: قد تعيد نتائج مختلفة للوسائط نفسها.
disk_name— اختياري. اسم القرص المراد معرفة مقدار المساحة الحرة فيه. إذا لم يُحدَّد، فسيُستخدم القرص default.StringأوFixedString
UInt64
أمثلة
مثال على الاستخدام
Query
Response
filesystemCapacity
أُضيفت في: v20.1.0 تعيد سعة نظام الملفات بالبايت. يتطلب ذلك تهيئة المسار الخاص بدليل البيانات.هذه الدالة غير حتمية: قد تعيد نتائج مختلفة للوسائط نفسها.
disk_name— اختياري. اسم القرص المطلوب الحصول على سعته. إذا لم يتم تحديده، فسيُستخدم القرصdefault.StringأوFixedString
UInt64
أمثلة
مثال على الاستخدام
Query
Response
filesystemUnreserved
قُدِّمت في: v22.12.0 تعيد إجمالي المساحة الحرة على نظام الملفات الذي يستضيف التخزين الدائم لقاعدة البيانات (وكان يُسمى سابقًاfilesystemFree).
انظر أيضًا filesystemAvailable.
هذه الدالة غير حتمية: قد تعيد نتائج مختلفة للوسيطات نفسها.
disk_name— اختياري. اسم القرص المطلوب معرفة إجمالي المساحة الحرة فيه. إذا لم يتم تحديده، فسيُستخدم القرص default.StringأوFixedString
UInt64
أمثلة
مثال على الاستخدام
Query
Response
finalizeAggregation
قُدِّمت في: v1.1.0 عند تمرير حالة تجميع، تُرجِع هذه الدالة نتيجة التجميع (أو الحالة المُنهية عند استخدام المُركِّب -State). الصياغةstate— حالة التجميع.AggregateFunction
Any
أمثلة
مثال على الاستخدام
Query
Response
Query
Response
flipCoordinates
أُضيفت في: v25.11.0 تبدّل هذه الدالة الإحداثيين x وy في الكائنات الهندسية. تؤدي هذه العملية إلى تبديل خط العرض وخط الطول، وهو ما يفيد عند التحويل بين أنظمة إحداثيات مختلفة أو تصحيح ترتيب الإحداثيات. بالنسبة إلى Point، فهي تبدّل الإحداثيين x وy. وبالنسبة إلى الأشكال الهندسية الأكثر تعقيدًا (MultiPoint وLineString وPolygon وMultiPolygon وRing وMultiLineString)، فإنها تطبّق هذا التحويل تكراريًا على كل زوج من الإحداثيات. تدعم الدالة كلاً من الأنواع الهندسية الفردية (Point وMultiPoint وRing وPolygon وMultiPolygon وLineString وMultiLineString) ونوع Geometry المتغاير. الصياغةgeometry— العنصر الهندسي المراد تحويله. الأنواع المدعومة: Point (Tuple(Float64, Float64))، وMultiPoint (Array(Point))، وRing (Array(Point))، وPolygon (Array(Ring))، وMultiPolygon (Array(Polygon))، وLineString (Array(Point))، وMultiLineString (Array(LineString))، أو Geometry (نوع Variant يحتوي على أي من هذه الأنواع).
Point أو MultiPoint أو Ring أو Polygon أو MultiPolygon أو LineString أو MultiLineString أو Geometry
أمثلة
basic_point
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
formatQuery
استُحدثت في: v23.10.0 تعيد نسخة منسّقة من استعلام SQL المُعطى، وقد تكون متعددة الأسطر. وتُطلق استثناءً عند حدوث خطأ في التحليل. [example:multiline] الصيغةquery— استعلام SQL المراد تنسيقه. String
String
أمثلة
متعدد الأسطر
Query
Response
formatQueryFromJSON
متاحة منذ: v26.8.0 تأخذ تمثيل JSON لبنية AST الخاصة باستعلام SQL (كما ينتجهparseQueryToJSON) وتُنسّقه مجددًا كسلسلة استعلام SQL.
باستخدام وسيطة واحدة، تُنتج استعلام SQL بتنسيق معياري.
وباستخدام وسيطتين (json, original_query)، تحافظ، قدر الإمكان، على التعليقات والمسافات البيضاء والإزاحة من الاستعلام الأصلي.
تخضع بنية AST المفككة تسلسليًا لإعدادَي max_ast_depth وmax_ast_elements للجلسة الحالية.
وبالاقتران مع parseQueryToJSON، تتيح هذه الدالة فحص الاستعلامات وتحويلها برمجيًا
عبر تمثيل AST بتنسيق JSON.
الصياغة
json— سلسلة JSON تمثل شجرة AST لاستعلام SQL.Stringoriginal_query— اختياري. استعلام SQL الأصلي للحفاظ على تنسيقه.String
String
أمثلة
تحويل ذهابًا وإيابًا
Query
Response
Query
Response
formatQueryOrNull
أُضيفت في: v23.11.0 تعيد إصدارًا منسقًا، وقد يمتد على عدة أسطر، من استعلام SQL المحدد. وتعيد NULL عند حدوث خطأ في التحليل. [example:multiline] البنيةquery— استعلام SQL المراد تنسيقه. String
String
أمثلة
متعدد الأسطر
Query
Response
formatQuerySingleLine
أُضيف في: v23.10.0 مشابه لـ formatQuery()، لكن السلسلة المنسّقة المُعادة لا تحتوي على فواصل أسطر. ويُظهر خطأً عند حدوث خطأ في التحليل. [example:multiline] الصياغةquery— استعلام SQL المطلوب تنسيقه. String
String
أمثلة
متعدد الأسطر
Query
Response
formatQuerySingleLineOrNull
أُضيف في: v23.11.0 مثل formatQuery()، ولكن السلسلة المنسّقة المُعادة لا تحتوي على فواصل أسطر. ويُرجع NULL في حالة حدوث خطأ في التحليل. [example:multiline] الصيغةquery— استعلام SQL المطلوب تنسيقه.String
String
أمثلة
متعدد الأسطر
Query
Response
formatReadableDecimalSize
أُضيفت في: v22.11.0 عند إعطائها حجمًا معيّنًا (عددًا من البايتات)، تُرجِع هذه الدالة حجمًا مقروءًا ومقرّبًا مع لاحقة (KB وMB وما إلى ذلك) على هيئة سلسلة نصية. العمليات العكسية لهذه الدالة هيparseReadableSize.
الصياغة
value— الحجم بالبايت.Int8أوInt16أوInt32أوInt64أوUInt8أوUInt16أوUInt32أوUInt64أوFloat32أوFloat64أوDecimalprecision— اختياري. عدد الخانات بعد الفاصلة العشرية. القيمة الافتراضية هي 2.const UInt8
String
أمثلة
تنسيق أحجام الملفات
Query
Response
Query
Response
formatReadableQuantity
أُضيفت في: v20.10.0 عند إعطائها رقمًا، تُرجِع هذه الدالة رقمًا مُقرَّبًا مع لاحقة (ألف، مليون، مليار، إلخ) في صورة سلسلة نصية. تقبل هذه الدالة أي نوع رقمي كمدخل، لكنها تحوّله داخليًا إلىFloat64.
قد لا تكون النتائج مثالية مع القيم الكبيرة.
البنية
value— رقم مطلوب تنسيقه.Int8أوInt16أوInt32أوInt64أوUInt8أوUInt16أوUInt32أوUInt64أوFloat32أوFloat64أوDecimalprecision— اختياري. عدد الخانات بعد الفاصلة العشرية. القيمة الافتراضية هي 2.const UInt8
String
أمثلة
تنسيق الأرقام باستخدام لواحق
Query
Response
Query
Response
formatReadableSize
أُضيفت في: v1.1.0 عند إعطائها حجمًا (عددًا من البايتات)، تُرجع هذه الدالة حجمًا مقروءًا ومقربًا مع لاحقة (KiB، MiB، إلخ) على هيئة سلسلة نصية. العمليات العكسية لهذه الدالة هيparseReadableSize، وparseReadableSizeOrZero، وparseReadableSizeOrNull.
تقبل هذه الدالة أي نوع رقمي كمدخل، لكنها تحوّله داخليًا إلى Float64. قد لا تكون النتائج مثالية مع القيم الكبيرة.
الصيغة
FORMAT_BYTES
الوسيطات
value— الحجم بالبايت.Int8أوInt16أوInt32أوInt64أوUInt8أوUInt16أوUInt32أوUInt64أوFloat32أوFloat64أوDecimalprecision— اختياري. عدد الخانات بعد الفاصلة العشرية. القيمة الافتراضية هي 2.const UInt8
String
أمثلة
تنسيق أحجام الملفات
Query
Response
Query
Response
formatReadableTimeDelta
أُضيفت في: v20.12.0 إذا أُعطيت هذه الدالة فترةً زمنية (delta) بالثواني أو تعبيرًا من نوعINTERVAL، فإنها تُرجع فرقًا زمنيًا كسلسلة نصية بصيغة year/month/day/hour/minute/second/millisecond/microsecond/nanosecond.
تقبل هذه الدالة أي نوع رقمي كمدخل، لكنها تحوّله داخليًا إلى Float64. وقد لا تكون النتائج مثالية مع القيم الكبيرة.
عند تمرير تعبير من نوع INTERVAL، تُحوَّل قيمته إلى ثوانٍ. ولا تكون وحدات interval من MONTH فما فوق (MONTH, QUARTER, YEAR) مدعومة، لأنها لا تمثل فترةً ثابتة المقدار بالثواني.
الصياغة
column— عمود يحتوي على فرق زمني رقمي، أو تعبيرINTERVAL. وحداتINTERVALمنMONTHفما فوق غير مدعومة.Float64أوIntervalmaximum_unit— اختياري. أكبر وحدة تُعرض. القيم المقبولة:nanoseconds،microseconds،milliseconds،seconds،minutes،hours،days،months،years. القيمة الافتراضية:years.const Stringminimum_unit— اختياري. أصغر وحدة تُعرض. تُحذف جميع الوحدات الأصغر. القيم المقبولة:nanoseconds،microseconds،milliseconds،seconds،minutes،hours،days،months،years. إذا كانت القيمة المحددة صراحةً أكبر منmaximum_unit، فسيُطلق استثناء. القيمة الافتراضية:secondsإذا كانmaximum_unitيساويsecondsأو أكبر، وإلاnanoseconds.const String
String
أمثلة
مثال على الاستخدام
Query
Response
Query
Response
Query
Response
fuzzQuery
أُضيفت في: v26.2.0 تُحلِّل سلسلة الاستعلام المعطاة وتُطبِّق عليها طفرات عشوائية على AST (التشويش). وتُرجِع الاستعلام الناتج عن التشويش كسلسلة نصية. غير حتمي: قد يُنتِج كل استدعاء نتيجة مختلفة. وتتطلبallow_fuzz_query_functions = 1.
الصيغة
query— استعلام SQL المراد إخضاعه للاختبار العشوائي. String
String
أمثلة
بسيط
Query
generateRandomStructure
أُضيف في: v23.5.0 يولّد بنية جدول عشوائية بالتنسيقcolumn1_name column1_type, column2_name column2_type, ....
هذه الدالة غير حتمية: يمكن أن تُرجع نتائج مختلفة للوسيطات نفسها.
number_of_columns— العدد المطلوب من الأعمدة في بنية الجدول الناتجة. إذا ضُبطت القيمة على 0 أوNull، فسيكون عدد الأعمدة عشوائيًا بين 1 و128. القيمة الافتراضية:Null.UInt64seed— بذرة عشوائية لإنتاج نتائج ثابتة. إذا لم يتم تحديد seed أو ضُبطت قيمته علىNull، فسيتم توليدها عشوائيًا.UInt64
String
أمثلة
مثال على الاستخدام
Query
Response
Query
Response
Query
Response
generateSerialID
أُضيفت في: v25.1.0 تُولِّد هذه الدالة أرقامًا تسلسلية وتُعيدها بدءًا من قيمة العداد السابقة. تأخذ هذه الدالة وسيطًا نصيًا — معرّف السلسلة — وقيمة بدء اختيارية. يجب تهيئة الخادم لاستخدام Keeper. تُخزَّن السلاسل في عُقد Keeper تحت المسار، الذي يمكن تهيئته فيseries_keeper_path ضمن تهيئة الخادم.
هذه الدالة غير حتمية: قد تُرجع نتائج مختلفة للوسائط نفسها.
series_identifier— معرّف السلسلةconst Stringstart_value— اختياري. قيمة بداية العداد. القيمة الافتراضية هي 0. ملاحظة: لا تُستخدم هذه القيمة إلا عند إنشاء سلسلة جديدة، ويجري تجاهلها إذا كانت السلسلة موجودة بالفعلUInt*
UInt64
أمثلة
الاستدعاء الأول
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
getClientHTTPHeader
أُضيفت في: v24.5.0 تجلب قيمة ترويسة HTTP. إذا لم تكن هذه الترويسة موجودة، أو إذا لم يُنفَّذ الطلب الحالي عبر واجهة HTTP، فستُرجِع الدالة سلسلة فارغة. تخضع بعض ترويسات HTTP (مثلAuthorization وAuthentication وX-ClickHouse-*) لقيود.
تتطلب الدالة أن يكون الإعداد
allow_get_client_http_header مفعّلًا.
لا يكون هذا الإعداد مفعّلًا افتراضيًا لأسباب أمنية، لأن بعض الترويسات، مثل Cookie، قد تحتوي على معلومات حساسة.getClientHTTPHeader ترويسات الطلب الحالي، لذلك لا يُرجِع قيمة غير فارغة إلا عندما يُرسَل الاستعلام عبر واجهة HTTP.
على سبيل المثال، مرّر الترويسة مع الطلب ثم اقرأها مجددًا عبر HTTP:
application/x-www-form-urlencoded.
البنية
name— اسم ترويسة HTTP.String
String
أمثلة
مثال على الاستخدام
Query
getMacro
أُضيف في: v20.1.0 يعيد قيمة ماكرو من ملف تهيئة الخادم. تُعرَّف وحدات الماكرو في قسم<macros> من ملف التهيئة، ويمكن استخدامها لتمييز الخوادم بأسماء مناسبة حتى لو كانت أسماء المضيفين الخاصة بها معقدة.
إذا نُفِّذت الدالة في سياق جدول موزّع، فإنها تُنشئ عمودًا عاديًا بقيم مرتبطة بكل shard.
يتطلب صلاحية SELECT على system.macros، تمامًا كما هو الحال عند قراءة ذلك الجدول.
هذه الدالة غير حتمية: قد تُرجِع نتائج مختلفة للمعاملات نفسها.
name— اسم الماكرو المطلوب استرجاعه.const String
String
أمثلة
الاستخدام الأساسي
Query
Response
getMaxTableNameLengthForDatabase
أُضيف في: v25.1.0 يعيد الحد الأقصى لطول اسم الجدول في قاعدة بيانات محددة. البنيةdatabase_name— اسم قاعدة البيانات المحددة.String
Query
Response
getMergeTreeSetting
أُضيفت في: v25.6.0 تُرجع القيمة الحالية لأحد إعدادات MergeTree. تتطلب صلاحيةSELECT على system.merge_tree_settings، تمامًا كما هو الحال عند قراءة ذلك الجدول.
هذه الدالة غير حتمية: يمكنها إرجاع نتائج مختلفة للوسائط نفسها.
setting_name— اسم الإعداد.String
Query
Response
getOSKernelVersion
أُضيفت في: v21.11.0 تُرجع سلسلة نصية تحتوي على إصدار نواة نظام التشغيل.هذه الدالة غير حتمية: يمكن أن تُرجع نتائج مختلفة للوسائط نفسها.
- لا شيء.
String
أمثلة
مثال على الاستخدام
Query
Response
getServerPort
أُضيف في: v21.10.0 يعيد رقم منفذ الخادم للبروتوكول المحدد.هذه الدالة غير حتمية: قد تعيد نتائج مختلفة للمعاملات نفسها.
port_name— اسم المنفذ.String
UInt16
أمثلة
مثال للاستخدام
Query
Response
getServerSetting
أُضيف في: v25.6.0 يعيد القيمة المعينة حاليًا عند تزويده باسم إعداد الخادم. يتطلب صلاحيةSELECT على system.server_settings، تمامًا كما هو الحال عند قراءة ذلك الجدول.
هذه الدالة غير حتمية: يمكن أن تُرجع نتائج مختلفة للوسائط نفسها.
setting_name— اسم إعداد الخادم.String
Any
أمثلة
مثال على الاستخدام
Query
Response
getSetting
أُضيف في: v20.7.0 يُرجع القيمة الحالية للإعداد.هذه الدالة غير حتمية: يمكن أن تُرجع نتائج مختلفة للوسيطات نفسها.
setting_Name— اسم الإعداد.const String
Any
أمثلة
مثال على الاستخدام
Query
Response
getSettingOrDefault
أُضيف في: v24.10.0 تعيد القيمة الحالية لإعداد ما، أو تعيد القيمة الافتراضية المحددة في الوسيطة الثانية إذا لم يكن الإعداد معيّنًا في الملف الشخصي الحالي.هذه الدالة غير حتمية: يمكن أن تُرجِع نتائج مختلفة للوسيطات نفسها.
setting_name— اسم الإعداد.Stringdefault_value— القيمة التي ستُعاد إذا لم يتم تعيين custom_setting. ويمكن أن تكون هذه القيمة من أي نوع بيانات أو Null.
default_value إذا لم يتم تعيين الإعداد.
أمثلة
مثال على الاستخدام
Query
Response
getSizeOfEnumType
أُضيف في: v1.1.0 يعيد عدد الحقول فيEnum المعطى.
البنية
x— قيمة من النوعEnum.Enum
Enum. UInt8/16
أمثلة
مثال على الاستخدام
Query
Response
getSubcolumn
أُضيف في: v23.3.0 يستقبل تعبيرًا أو معرّفًا، بالإضافة إلى سلسلة نصية ثابتة تمثل اسم العمود الفرعي. يعيد العمود الفرعي المطلوب المستخرج من التعبير. البنية- لا شيء.
Query
Response
getTypeSerializationStreams
أُضيف في: v22.6.0 يسرد مسارات التدفق الخاصة بنوع البيانات. هذه الدالة مخصّصة لأغراض التطوير. الصيغةcol— عمود أو تمثيل نصي لنوع بيانات يُكتشف منه نوع البيانات.Any
Array(String)
أمثلة
tuple
Query
Response
Query
Response
globalVariable
قُدِّمت في: v20.5.0 تأخذ وسيطة String ثابتة وتُرجع قيمة المتغير العام الذي يحمل هذا الاسم. هذه الدالة مخصّصة للتوافق مع MySQL، وليست مطلوبة أو مفيدة للتشغيل العادي لـ ClickHouse. لا يوجد سوى عدد قليل من المتغيرات العامة الوهمية المعرَّفة. البنيةname— اسم المتغير العام.String
name. Any
أمثلة
globalVariable
Query
Response
hasColumnInTable
أُضيفت في: v1.1.0 يتحقق مما إذا كان عمود محدد موجودًا في جدول ضمن قاعدة بيانات. وبالنسبة إلى العناصر ضمن بنية بيانات متداخلة، تتحقق الدالة من وجود عمود. أما بنية البيانات المتداخلة نفسها، فتعيد الدالة القيمة0.
تتطلب الدالة صلاحية
SHOW COLUMNS على الجدول الهدف (وهو نفس الامتياز المطلوب للأمرين DESCRIBE وSHOW CREATE TABLE).
وبدونه يفشل الاستدعاء مع ACCESS_DENIED بدلًا من إرجاع 1 أو 0، لذلك لا يمكن التحقق من أسماء الأعمدة من دون صلاحية وصول.هذه الدالة غير حتمية: يمكن أن تُرجع نتائج مختلفة للوسائط نفسها.
database— اسم قاعدة البيانات.const Stringtable— اسم الجدول.const Stringcolumn— اسم العمود.const String
1 إذا كان العمود المحدد موجودًا، وإلا فيعيد 0. UInt8
أمثلة
التحقق من وجود عمود
Query
Response
Query
Response
hasThreadFuzzer
أُضيف في: v20.6.0 يعيد ما إذا كان thread fuzzer مفعّلًا. هذه الدالة مفيدة فقط للاختبار وتصحيح الأخطاء. الصيغة- لا يوجد.
UInt8
أمثلة
التحقق من حالة Thread Fuzzer
Query
Response
highlightQuery
أُضيف في: v26.5.0 يحلّل سلسلة query في ClickHouse SQL ويُرجع Array من النطاقات المميّزة لاستخدامها في تمييز الصياغة. كل نطاق عبارة عن named tuple يتضمن موضع البداية (بالبايتات)، وموضع النهاية، ونوع التمييز. وتصف أنواع التمييز الدور النحوي للمقطع (keyword، أو identifier، أو function، وما إلى ذلك) ويمكن استخدامها لتعيين الألوان في واجهة المستخدم. داخل أنماط السلاسل النصية لـ LIKE وREGEXP، تُميَّز المحارف الفوقية وأحرف الإفلات كلٌّ على حدة. الصياغةquery— سلسلة استعلام في ClickHouse SQL. String.
(begin UInt64, end UInt64, type Enum8(...)) تمثّل النطاقات المميّزة. Array(Tuple(begin UInt64, end UInt64, type Enum8(...)))
أمثلة
بسيط
Query
Response
hostName
أُضيفت في: v20.5.0 تعيد اسم المضيف الذي نُفِّذت عليه هذه الدالة. إذا نُفِّذت الدالة على خادم بعيد (المعالجة الموزعة)، فسيُعاد اسم الخادم البعيد. إذا نُفِّذت الدالة ضمن سياق جدول موزّع، فإنها تُنشئ عمودًا عاديًا بقيم تخص كل جزء. وفي غير ذلك، فإنها تُنتج قيمة ثابتة.هذه الدالة غير حتمية: قد تُرجع نتائج مختلفة للوسائط نفسها.
hostname
الوسيطات
- لا شيء.
String
أمثلة
مثال على الاستخدام
Query
Response
icebergBucket
أُضيف في: v25.5.0 يُنفِّذ المنطق الخاص بـ تحويل bucket في Iceberg البنيةN— عدد الـ buckets، modulo.const (U)Int*value— القيمة المراد تحويلها.(U)Int*أوBoolأوDecimalأوFloat*أوStringأوFixedStringأوUUIDأوDateأوTimeأوDateTime
Int32
أمثلة
مثال
Query
Response
icebergDay
أُضيف في: v26.9.0 يُنفّذ تحويل التقسيمday الخاص بـ Iceberg: عدد الأيام منذ 1970-01-01، محسوبًا بتوقيت UTC.
انظر https://iceberg.apache.org/spec/#partition-transforms.
الصيغة
value— القيمة المراد تحويلها.DateأوDate32أوDateTimeأوDateTime64
Int32
أمثلة
مثال
Query
Response
icebergHour
أُضيف في: v26.9.0 ينفّذ تحويل التقسيمhour الخاص بـ Iceberg: عدد الساعات المنقضية منذ 1970-01-01 00:00:00، محسوبًا بالتوقيت العالمي المنسق (UTC).
انظر https://iceberg.apache.org/spec/#partition-transforms.
الصيغة
value— القيمة المراد تحويلها.DateTimeأوDateTime64
Int32
أمثلة
مثال
Query
Response
icebergMonth
أُضيف في: v26.9.0 يُنفّذ تحويل التقسيمmonth في Iceberg: عدد الأشهر منذ 1970-01-01، محسوبًا بتوقيت UTC.
انظر https://iceberg.apache.org/spec/#partition-transforms.
الصيغة
value— القيمة المراد تحويلها.DateأوDate32أوDateTimeأوDateTime64
Int32
أمثلة
مثال
Query
Response
icebergTruncate
أُضيف في: v25.3.0 يطبّق منطق تحويل truncate في Iceberg: https://iceberg.apache.org/spec/#truncate-transform-details. البنيةQuery
Response
icebergYear
أُضيف في: v26.9.0 ينفّذ تحويل التقسيمyear في Iceberg: عدد السنوات منذ عام 1970، محسوبًا بتوقيت UTC.
انظر https://iceberg.apache.org/spec/#partition-transforms.
الصيغة
value— القيمة المراد تحويلها.DateأوDate32أوDateTimeأوDateTime64
Int32
أمثلة
مثال
Query
Response
identity
أُضيفت في: v1.1.0 تعيد هذه الدالة الوسيطة التي تمرّرها إليها، وهو ما يفيد في تصحيح الأخطاء والاختبار. كما تتيح لك تجاوز استخدام الفهرس لمعاينة أداء المسح الكامل بدلًا من ذلك. ويتجاهل محلل الاستعلام أي شيء داخل دوال identity عند البحث عن الفهارس التي سيستخدمها، كما يعطّل أيضًا طيّ الثوابت. الصياغةx— قيمة الإدخال.Any
Any
أمثلة
مثال للاستخدام
Query
Response
ignore
استُحدث في: v1.1.0 يقبل أي وسيطات ويُرجع0 دائمًا.
الصياغة
x— قيمة إدخال غير مستخدمة، وتُمرَّر فقط لتجنّب حدوث خطأ نحوي.Any
0. UInt8
أمثلة
مثال للاستخدام
Query
Response
indexHint
أُضيف في: v1.1.0 هذه الدالة مخصّصة لأغراض تصحيح الأخطاء والفحص الداخلي. فهي تتجاهل وسيطها وتُرجع دائمًا 1. كما أن الوسائط لا تُقيَّم. أثناء تحليل الفهرس، يُفترَض أن وسيط هذه الدالة ليس مغلّفًا داخلindexHint.
ويتيح لك ذلك تحديد البيانات ضمن نطاقات الفهرس وفقًا للشرط المقابل، ولكن من دون إجراء تصفية إضافية بناءً على هذا الشرط.
وبما أن الفهرس في ClickHouse متناثر، فإن استخدام indexHint سيؤدي إلى إرجاع بيانات أكثر من تحديد الشرط نفسه مباشرةً.
الشرح
الشرح
عندما تُشغِّل:فإن ClickHouse يقوم بأمرين:فإن ClickHouse يقوم بأمر واحد فقط:
- يستخدم الفهرس لتحديد الحبيبات (كتل تضم نحو 8192 صفًا) التي قد تحتوي على
key = 123 - يقرأ تلك الحبيبات ويصفّيها صفًا بصف لإرجاع الصفوف التي يكون فيها
key = 123فقط
indexHint، فعندما تُشغِّل:- يستخدم الفهرس لتحديد الحبيبات التي قد تحتوي على
key = 123ويُرجع جميع الصفوف من تلك الحبيبات من دون تصفية.
key = 456 وkey = 789 وما إلى ذلك. (أي كل ما صادف تخزينه في الحبيبة نفسها.)
إن indexHint() ليس مخصّصًا للأداء، بل لتصحيح الأخطاء وفهم كيفية عمل فهرس ClickHouse:- ما الحبيبات التي يحدّدها الشرط الخاص بي؟
- كم عدد الصفوف الموجودة في تلك الحبيبات؟
- هل يُستخدم الفهرس لديّ بفاعلية؟
indexHint. فالدالة indexHint لا تحسّن الاستعلام، لأنها لا توفّر أي معلومات إضافية لتحليل الاستعلام. كما أن وضع تعبير داخل الدالة indexHint ليس أفضل بأي شكل من عدم استخدام الدالة indexHint. ولا يمكن استخدام الدالة indexHint إلا لأغراض الفحص الداخلي وتصحيح الأخطاء، وهي لا تحسّن الأداء. وإذا رأيت استخدام indexHint من أي جهة غير المساهمين في ClickHouse، فغالبًا ما يكون ذلك خطأً ويجب عليك إزالته.
الصياغة
expression— أي تعبير لاختيار نطاق الفهرس.Expression
1 في جميع الحالات. UInt8
أمثلة
مثال استخدام مع التصفية حسب التاريخ
Query
Response
initialQueryID
أُضيف في: v1.1.0 يُرجع معرّف الاستعلام الحالي الأوّلي. يمكن استخراج المعلمات الأخرى الخاصة بالاستعلام من الحقلinitial_query_id في system.query_log.
بخلاف الدالة queryID، تُرجع initialQueryID النتائج نفسها على الشظايا المختلفة.
هذه الدالة غير حتمية: يمكن أن تُرجع نتائج مختلفة للمعاملات نفسها.
initial_query_id
الوسيطات
- لا شيء.
String
أمثلة
مثال على الاستخدام
Query
Response
initialQueryStartTime
قُدِّم في: v25.4.0 يعيد وقت بدء الاستعلام الحالي الأوّلي. يعيدinitialQueryStartTime النتائج نفسها على مختلف الشظايا.
هذه الدالة غير حتمية: يمكن أن تعيد نتائج مختلفة للمعاملات نفسها.
initial_query_start_time
الوسيطات
- لا يوجد.
DateTime
أمثلة
مثال على الاستخدام
Query
Response
initializeAggregation
أُضيفت في: v20.6.0 تحسب نتيجة دالة تجميعية استنادًا إلى قيمة واحدة. يمكن استخدام هذه الدالة لتهيئة دوال التجميع باستخدام المُركِّب -State. يمكنك إنشاء حالات لدوال التجميع وإدراجها في أعمدة من النوعAggregateFunction، أو استخدام التجميعات المُهيّأة كقيم افتراضية.
البنية
aggregate_function— اسم دالة التجميع المراد تهيئتها.Stringarg1[, arg2, ...]— وسيطات دالة التجميع.Any
initializeAggregation بوصفها الوسيط الأول. Any
أمثلة
الاستخدام الأساسي مع uniqState
Query
Response
Query
Response
isConstant
قُدِّمت في: v20.3.0 تُرجع ما إذا كانت الوسيطة تعبيرًا ثابتًا. والتعبير الثابت هو تعبير تكون نتيجته معروفة أثناء تحليل الاستعلام، أي قبل التنفيذ. على سبيل المثال، تُعدّ التعبيرات المبنية على القيم الحرفية تعبيرات ثابتة. تُستخدم هذه الدالة غالبًا لأغراض التطوير وتصحيح الأخطاء والتوضيح.هذه الدالة غير حتمية: فقد تُرجع نتائج مختلفة للوسائط نفسها.
x— تعبير للتحقق منه.Any
1 إذا كان x ثابتًا، و0 إذا كان x غير ثابت. UInt8
أمثلة
تعبير ثابت
Query
Response
Query
Response
Query
Response
Query
Response
isDecimalOverflow
استُحدثت في: v20.8.0 يتحقق مما إذا كان العدد العشري يحتوي على عدد كبير جدًا من الخانات بحيث لا يمكن تمثيله بشكل صحيح ضمن نوع البيانات Decimal عند دقة محددة. البنيةvalue— قيمة Decimal المطلوب التحقق منها.Decimalprecision— اختياري. دقة النوع Decimal. إذا لم يتم تحديده، تُستخدم الدقة الأصلية للوسيطة الأولى.UInt8
1 إذا كانت قيمة Decimal تحتوي على عدد من الخانات أكبر مما تسمح به دقتها، و0 إذا كانت قيمة Decimal تستوفي الدقة المحددة. UInt8
أمثلة
مثال على الاستخدام
Query
Response
joinGet
أُضيف في: v18.16.0 يتيح لك استخراج البيانات من جدول بالطريقة نفسها كما لو كانت من قاموس. يجلب البيانات من جداول Join باستخدام مفتاح الربط المحدد.يدعم فقط الجداول التي أُنشئت باستخدام
ENGINE = Join(ANY, LEFT, <join_keys>) عبارة.هذه الدالة غير حتمية: يمكن أن تُرجع نتائج مختلفة للوسيطات نفسها.
join_storage_table_name— معرّف يحدّد مكان إجراء البحث. يُبحث عن هذا المعرّف في قاعدة البيانات الافتراضية (راجع المَعلمةdefault_databaseفي ملف الإعدادات). لتجاوز قاعدة البيانات الافتراضية، استخدم الاستعلامUSE database_nameأو حدّد قاعدة البيانات والجدول باستخدام نقطة، مثلdatabase_name.table_name.Stringvalue_column— اسم عمود الجدول الذي يحتوي على البيانات المطلوبة.const Stringjoin_keys— قائمة بمفاتيح الربط.Any
Any
أمثلة
مثال على الاستخدام
Query
Response
Query
Response
Query
Response
joinGetOrNull
قُدِّمت في: v20.4.0 تتيح لك استخراج البيانات من جدول بالطريقة نفسها المتبعة مع القاموس. تجلب البيانات من جداول Join باستخدام مفتاح الربط المحدد. وعلى خلافjoinGet، فإنها تُرجع NULL عندما يكون المفتاح غير موجود.
لا تدعم إلا الجداول المُنشأة باستخدام عبارة
ENGINE = Join(ANY, LEFT, <join_keys>).هذه الدالة غير حتمية: قد تُرجع نتائج مختلفة للمعاملات نفسها.
join_storage_table_name— معرّف يحدّد مكان إجراء البحث. يُجرى البحث عن هذا المعرّف في قاعدة البيانات الافتراضية (راجع المعامل default_database في ملف الإعدادات). لتجاوز قاعدة البيانات الافتراضية، استخدم الاستعلامUSE database_nameأو حدِّد قاعدة البيانات والجدول باستخدام نقطة، مثلdatabase_name.table_name.Stringvalue_column— اسم العمود في الجدول الذي يحتوي على البيانات المطلوبة.const Stringjoin_keys— قائمة بمفاتيح الربط.Any
NULL إذا لم يُعثر على مفتاح. Any
أمثلة
مثال على الاستخدام
Query
Response
lowCardinalityIndices
تمت إضافته في: v18.12.0 تعيد هذه الدالة موضع قيمة في القاموس الخاص بعمود LowCardinality. تبدأ المواضع من 1. ونظرًا لأن LowCardinality يستخدم قواميس لكل جزء، فقد تُرجِع هذه الدالة مواضع مختلفة للقيمة نفسها في أجزاء مختلفة.هذه الدالة غير حتمية: قد تُرجِع نتائج مختلفة للوسائط نفسها.
col— عمود منخفض الكاردينالية.LowCardinality
UInt64
أمثلة
أمثلة الاستخدام
Query
Response
lowCardinalityKeys
أُضيف في: v18.12.0 تُرجع قيم القاموس لعمود LowCardinality. إذا كانت الكتلة أصغر من حجم القاموس أو أكبر منه، فستُقتطع النتيجة أو تُستكمل باستخدام القيم الافتراضية. ونظرًا لأن LowCardinality تستخدم قواميس منفصلة لكل جزء، فقد تُرجع هذه الدالة قيم قاموس مختلفة في الأجزاء المختلفة.هذه الدالة غير حتمية: قد تُرجع نتائج مختلفة للوسائط نفسها.
col— عمود منخفض الكاردينالية.LowCardinality
UInt64
أمثلة
lowCardinalityKeys
Query
Response
materialize
استُحدث في: v1.1.0 يحوِّل قيمة ثابتة إلى عمود كامل يحتوي على قيمة واحدة. تُمثَّل الأعمدة الكاملة والثوابت بصورة مختلفة في الذاكرة. عادةً ما تنفِّذ الدوال شيفرة مختلفة للوسائط العادية والثابتة، رغم أن النتيجة ينبغي في الغالب أن تكون واحدة. يمكن استخدام هذه الدالة لتصحيح هذا السلوك. الصيغةx— ثابت.Any
Any
أمثلة
مثال على الاستخدام
Query
Response
Query
Response
minSampleSizeContinuous
قُدِّمت في: v23.10.0 تحسب الحد الأدنى المطلوب لحجم العينة لاختبار A/B يقارن متوسطات مقياس مستمر بين عينتين. تستخدم الصيغة الموضحة في هذه المقالة. وتفترض تساوي حجمي مجموعتي المعالجة والمجموعة الضابطة. وتُرجع حجم العينة المطلوب لمجموعة واحدة (أي إن حجم العينة المطلوب للتجربة بأكملها يساوي ضعف القيمة المُرجعة). كما تفترض أيضًا تساوي تباين مقياس الاختبار في مجموعتي المعالجة والمجموعة الضابطة. الصيغةminSampleSizeContinous
الوسيطات
baseline— القيمة المرجعية لمقياس.(U)Int*أوFloat*sigma— الانحراف المعياري المرجعي لمقياس.(U)Int*أوFloat*mde— الحد الأدنى للأثر القابل للاكتشاف (MDE) كنسبة مئوية من القيمة المرجعية (على سبيل المثال، إذا كانت القيمة المرجعية 112.25، فإن قيمة MDE البالغة 0.03 تعني تغيرًا متوقعًا إلى 112.25 ± 112.25*0.03).(U)Int*أوFloat*power— القدرة الإحصائية المطلوبة للاختبار (1 - احتمال الخطأ من النوع الثاني).(U)Int*أوFloat*alpha— مستوى الدلالة المطلوب للاختبار (احتمال الخطأ من النوع الأول).(U)Int*أوFloat*
minimum_sample_size و detect_range_lower و detect_range_upper. وتمثل هذه العناصر، على الترتيب: حجم العينة المطلوب، والحد الأدنى لنطاق القيم التي لا يمكن اكتشافها باستخدام حجم العينة المطلوب المُعاد، ويُحسب على النحو baseline * (1 - mde)، والحد الأعلى لنطاق القيم التي لا يمكن اكتشافها باستخدام حجم العينة المطلوب المُعاد، ويُحسب على النحو baseline * (1 + mde) (Float64). Tuple(Float64, Float64, Float64)
أمثلة
minSampleSizeContinuous
Query
Response
minSampleSizeConversion
أُضيف في: v22.6.0 يحسب الحد الأدنى المطلوب لحجم العينة لاختبار A/B يقارن معدلات التحويل (النِّسب) بين عينتين. يستخدم الصيغة الموضحة في هذه المقالة. ويفترض تساوي حجمَي مجموعتي المعالجة والضبط. ويُرجع حجم العينة المطلوب لمجموعة واحدة (أي إن حجم العينة المطلوب للتجربة بأكملها يساوي ضعف القيمة المُعادة). الصيغةbaseline— معدل التحويل الأساسي.Float*mde— الحد الأدنى للأثر القابل للاكتشاف (MDE) بالنقاط المئوية (على سبيل المثال، إذا كان معدل التحويل الأساسي 0.25، فإن قيمة MDE البالغة 0.03 تعني تغيرًا متوقعًا إلى 0.25 ± 0.03).Float*power— القدرة الإحصائية المطلوبة للاختبار (1 - احتمال خطأ من النوع الثاني).Float*alpha— مستوى الدلالة المطلوب للاختبار (احتمال خطأ من النوع الأول).Float*
Tuple مُسمّاة تتكون من 3 عناصر: minimum_sample_size وdetect_range_lower وdetect_range_upper. وتمثل هذه العناصر، على الترتيب: حجم العينة المطلوب، والحد الأدنى لنطاق القيم غير القابلة للاكتشاف باستخدام حجم العينة المطلوب المُعاد، ويُحسب على أنه baseline - mde، والحد الأعلى لنطاق القيم غير القابلة للاكتشاف باستخدام حجم العينة المطلوب المُعاد، ويُحسب على أنه baseline + mde. Tuple(Float64, Float64, Float64)
أمثلة
minSampleSizeConversion
Query
Response
neighbor
أُضيفت في: v20.1.0 تُرجع قيمة من عمود عند إزاحة محددة من الصف الحالي. هذه الدالة مُهملة ومعرّضة للأخطاء لأنها تعمل على الترتيب الفيزيائي لكتل البيانات، الذي قد لا يتوافق مع الترتيب المنطقي الذي يتوقعه المستخدمون. يُنصح باستخدام دوال النافذة المناسبة بدلًا من ذلك. يمكن تمكين هذه الدالة عن طريق تعيينallow_deprecated_error_prone_window_functions = 1.
البنية
column— العمود المصدر.Anyoffset— الإزاحة من الصف الحالي. تشير القيم الموجبة إلى الأمام، وتشير القيم السالبة إلى الخلف.Integerdefault_value— اختياري. القيمة التي تُعاد إذا تجاوزت الإزاحة حدود البيانات. إذا لم يُحدَّد، تُستخدَم القيمة الافتراضية لنوع العمود.Any
Any
أمثلة
مثال على الاستخدام
Query
Response
Query
Response
normalizeQuery
أُضيفت في: v20.8.0 تستبدل القيم الحرفية، وتسلسلات القيم الحرفية، والأسماء المستعارة المعقدة (التي تحتوي على فراغات، أو أكثر من رقمين، أو يبلغ طولها 36 بايتًا على الأقل مثل UUIDs) بالرمز النائب?.
البنية
x— تسلسل من المحارف.String
String
أمثلة
مثال على الاستخدام
Query
Response
normalizeQueryKeepNames
قُدِّمت في: v21.2.0 تستبدل القيم الحرفية وسلاسل القيم الحرفية بالعنصر النائب?، لكنها لا تستبدل الأسماء المستعارة المعقّدة (التي تحتوي على مسافات بيضاء، أو أكثر من رقمين، أو التي يبلغ طولها 36 بايتًا على الأقل، مثل UUIDs).
يساعد ذلك على تحليل سجلات الاستعلام المعقّدة بشكل أفضل.
الصيغة
x— سلسلة من الأحرف.String
String
أمثلة
مثال على الاستخدام
Query
Response
normalizedQueryHash
قُدِّمت في: v20.8.0 تعيد قيم hash متطابقة بطول 64 بت، من دون قيم القيم الحرفية، للاستعلامات المتشابهة. يمكن أن يكون ذلك مفيدًا في تحليل سجلات الاستعلامات. الصيغةx— تسلسل من الأحرف.String
UInt64
أمثلة
مثال على الاستخدام
Query
Response
normalizedQueryHashKeepNames
أُضيفت في: v21.2.0 على غرارnormalizedQueryHash، تُرجِع هذه الدالة قيم hash متطابقة بطول 64 بت للاستعلامات المتشابهة من دون قيم القيم الحرفية، لكنها لا تستبدل الأسماء المستعارة المعقدة (التي تحتوي على مسافات، أو أكثر من رقمين، أو التي يبلغ طولها 36 بايتًا على الأقل مثل UUIDs) بعنصر نائب قبل إجراء hash.
وقد يكون ذلك مفيدًا في تحليل سجلات الاستعلامات.
البنية
x— سلسلة من الأحرف.String
UInt64
أمثلة
مثال على الاستخدام
Query
Response
obfuscateQuery
أُضيف في: v26.4.0 يُموّه استعلام SQL عبر استبدال المعرّفات بكلمات عشوائية والقيم الحرفية بقيم عشوائية، مع الحفاظ على بنية الاستعلام. تكون هذه الدالة مفيدة لإخفاء هوية الاستعلامات قبل تسجيلها أو مشاركتها لأغراض تصحيح الأخطاء. وستنتج الصفوف المختلفة نتائج تمويه مختلفة حتى مع استعلام الإدخال نفسه، مما يساعد في الحفاظ على الخصوصية عند العمل مع عدة استعلامات. تمنع المعلَمة الاختياريةtag إزالة التعبيرات الفرعية المشتركة عندما يُستخدم استدعاء الدالة نفسه
عدة مرات في استعلام. ويضمن ذلك أن ينتج كل استدعاء نتيجة تمويه مختلفة.
الميزات:
- يستبدل أسماء الجداول وأسماء الأعمدة والأسماء المستعارة بكلمات عشوائية
- يستبدل القيم الحرفية الرقمية والنصية بقيم عشوائية
- يحافظ على البنية العامة للاستعلام وصياغة SQL
- ينتج نتائج مختلفة لصفوف مختلفة
هذه الدالة غير حتمية: قد تُرجع نتائج مختلفة للوسيطات نفسها.
query— استعلام SQL المطلوب تمويهه.Stringtag— اختياري. قيمة لمنع إزالة التعبيرات الفرعية المشتركة عند استخدام استدعاء الدالة نفسه عدة مرات.
String
أمثلة
الاستخدام الأساسي
Query
Response
Query
Response
Query
Response
obfuscateQueryWithSeed
أُضيف في: v26.4.0 يُموّه استعلام SQL باستخدام قيمة seed محددة للحصول على نتائج حتمية. بخلافobfuscateQuery(), تُنتج هذه الدالة نتائج حتمية عند تزويدها بالقيمة نفسها من seed.
ويكون ذلك مفيدًا عندما تحتاج إلى تمويه متسق عبر عمليات تشغيل متعددة، أو عندما تريد
إعادة إنتاج الاستعلام المُموَّه نفسه لأغراض الاختبار أو تصحيح الأخطاء.
الميزات:
- تمويه حتمي استنادًا إلى قيمة seed المقدمة
- تؤدي قيمة seed نفسها دائمًا إلى النتيجة المُموَّهة نفسها
- تؤدي قيم seed المختلفة إلى نتائج مختلفة
- يحافظ على بنية الاستعلام مثل
obfuscateQuery()
- حالات اختبار قابلة لإعادة الإنتاج
- إخفاء هوية متسق عبر عمليات تشغيل متعددة
- تصحيح الأخطاء باستخدام استعلامات مُموَّهة متسقة
query— استعلام SQL المراد تمويهه.Stringseed— قيمة البذرة للتمويه. تؤدي البذرة نفسها إلى نتائج حتمية.IntegerأوString
String
أمثلة
تمويه حتمي باستخدام بذرة من نوع عدد صحيح
Query
Response
Query
Response
Query
Response
parseISO8601Duration
أُضيف في: v26.9.0 يحلّل سلسلة نصية تمثّل مدة ISO 8601 ويُرجع عدد الثواني. تبدأ المدة بالحرفP، تليه مكوّنات تاريخ اختيارية، ثم قسم زمني اختياري يُستهل بالحرف T:
W- الأسابيعD- الأيامT- يبدأ القسم الزمنيH- الساعاتM- الدقائق، بعدTفقطS- الثواني
PT0.5H صالحة وتُرجع 1800.
يجب أن تظهر الرموز الدالة بالترتيب المذكور أعلاه، ويجوز أن يظهر كل منها مرة واحدة على الأكثر. ويمكن دمج رمز الأسبوع مع بقية الرموز، خلافًا لمعيار ISO 8601:2004 الذي يجعله حصريًا.
يُرفض رمز السنة (Y) ورمز الشهر (M) الواقع قبل T، إذ ليس للسنة ولا للشهر طول ثابت بالثواني. وبدلًا من ذلك، حوّل مثل هذه المدد بالاستناد إلى تاريخ مرجعي.
هناك صيغتان يسمح بهما المعيار وامتداداته لكنهما غير مقبولتين هنا:
- الفاصلة كفاصل عشري، كما في
PT1,5S- استخدم النقطة - إشارة في البداية، كما في
-PT1S، وهي مأخوذة من RFC 3339 وXML Schema لا من القواعد الأساسية
duration— سلسلة نصية تمثل مدة بصيغة ISO 8601.String
Float64
أمثلة
مثال على الاستخدام
Query
Response
Query
Response
parseQueryToJSON
متاح منذ: v26.8.0 يحلّل سلسلة استعلام SQL إلى AST (شجرة البنية المجرّدة) ويُرجع تمثيلًا بصيغة JSON لهذه الشجرة. يمكن تمرير JSON الناتج إلىformatQueryFromJSON لإعادة تكوين استعلام SQL، أو إرساله مباشرةً
إلى الخادم باستخدام القيمة clickhouse_json لإعداد dialect (المشروط بـ enable_json_ast_dialect).
يفيد ذلك الأدوات التي تحتاج إلى فحص الاستعلامات أو تحويلها برمجيًا دون الرجوع إلى
قواعد SQL النحوية.
لا يمتلك كل استعلام SQL تمثيلًا مطابقًا تمامًا بصيغة JSON. تُرفض الاستعلامات التي تتضمن بيانات لا يمكن لصيغة JSON
إعادة إنتاجها (مثل بيانات INSERT ... VALUES / INSERT ... FORMAT المضمّنة) وأنواع عُقد AST التي لم
تدعم بعد تسلسل JSON، ويُرجع الخطأ BAD_ARGUMENTS بدلًا من إنتاج JSON لا يمكن لـ
formatQueryFromJSON قراءته مجددًا.
تُؤخذ حدود التحليل (max_query_size وmax_parser_depth وmax_parser_backtracks) من
إعدادات الجلسة الحالية.
صيغة
sql— سلسلة استعلام SQL لتحليلها.String
String
أمثلة
عبارة SELECT بسيطة
Query
Response
parseReadableSize
أُضيفت في: v24.6.0 إذا أُعطيت هذه الدالة سلسلة نصية تحتوي على حجم بالبايت مع وحدة مثلB أو KiB أو KB أو MiB أو MB وما إلى ذلك (أي ISO/IEC 80000-13 أو وحدة بايت عشرية)، فستُرجع عدد البايتات المقابل.
إذا تعذّر على الدالة تحليل قيمة الإدخال، فإنها تُطلق استثناءً.
العمليات العكسية لهذه الدالة هي formatReadableSize وformatReadableDecimalSize.
البنية
x— حجم بصيغة مقروءة مع وحدة ISO/IEC 80000-13 أو وحدة بايت عشرية.String
UInt64
أمثلة
مثال على الاستخدام
Query
Response
parseReadableSizeOrNull
أُضيف في: v24.6.0 إذا أُعطيت هذه الدالة سلسلة نصية تتضمن حجم بايت ووحدة مثلB أو KiB أو KB أو MiB أو MB وما إلى ذلك (أي ISO/IEC 80000-13 أو وحدة بايت عشرية)، فإنها تُرجع عدد البايتات المقابل.
إذا تعذّر على الدالة تحليل قيمة الإدخال، فإنها تُرجع NULL.
العمليات العكسية لهذه الدالة هي formatReadableSize وformatReadableDecimalSize.
الصياغة
x— حجم بصيغة مقروءة باستخدام ISO/IEC 80000-13 أو وحدة بايت عشرية.String
NULL إذا تعذّر تحليل الإدخال Nullable(UInt64)
أمثلة
مثال على الاستخدام
Query
Response
parseReadableSizeOrZero
أُضيفت في: v24.6.0 إذا كانت لديك سلسلة نصية تحتوي على حجم بالبايت ووحدة مثلB أو KiB أو KB أو MiB أو MB وما إلى ذلك (أي ISO/IEC 80000-13 أو وحدة البايت العشرية)، فستُرجع هذه الدالة عدد البايتات المقابل.
إذا تعذّر على الدالة تحليل قيمة الإدخال، فستُرجع 0.
العمليتان العكسيتان لهذه الدالة هما formatReadableSize وformatReadableDecimalSize.
الصياغة
x— حجم بصيغة مقروءة وفق ISO/IEC 80000-13 أو بوحدة بايت عشرية.String
0 إذا تعذّر تحليل المُدخل. UInt64
أمثلة
مثال على الاستخدام
Query
Response
parseTimeDelta
أُضيف في: v22.7.0 يحلّل تسلسلًا من الأرقام يتبعه ما يشبه وحدة زمنية. تستخدم سلسلة الفاصل الزمني هذه مواصفات وحدات الزمن التالية:years,year,yr,ymonths,month,moweeks,week,wdays,day,dhours,hour,hr,hminutes,minute,min,mseconds,second,sec,smilliseconds,millisecond,millisec,msmicroseconds,microsecond,microsec,μs,µs,usnanoseconds,nanosecond,nanosec,ns
;، -، +، ,، :).
أطوال السنوات والأشهر تقريبية: السنة 365 يومًا، والشهر 30.5 يومًا.
الصيغة
timestr— سلسلة من الأرقام يتبعها ما يشبه وحدة زمنية.String
Float64
أمثلة
مثال على الاستخدام
Query
Response
Query
Response
partitionId
قُدِّمت في: v21.4.0 تحسب معرّف التقسيم.هذه الدالة بطيئة، ويجب عدم استدعائها لأعداد كبيرة من الصفوف.
partitionID
الوسيطات
column1, column2, ...— العمود الذي سيُعاد معرّف القسم الخاص به.
String
أمثلة
مثال على الاستخدام
Query
Response
pgGetUserById
أُضيف في: v26.8.0 دالة توافقية لبروتوكول الاتصال PostgreSQL، وهي مماثلة لـpg_catalog.pg_get_userbyid.
يستخدمها عملاء PostgreSQL (مثل الأمر \d في psql) لعرض مالك الجدول.
لا يتتبع ClickHouse ملكية الجداول، لذا تتجاهل الدالة الوسيطة وتُرجع اسم المستخدم الحالي.
هذه الدالة غير حتمية: قد تُرجع نتائج مختلفة للوسيطات نفسها.
pg_get_userbyid
الوسيطات
oid— معرّف كائن الدور. تُتجاهل القيمة.UInt32
String
أمثلة
مثال على الاستخدام
Query
Response
pgTableIsVisible
أُضيف في: v26.8.0 دالة توافق مع بروتوكول الاتصال PostgreSQL، وهي نظير للدالةpg_catalog.pg_table_is_visible.
تستخدمها عميل PostgreSQL (مثل الأمر \d في psql) لتصفية الجداول الظاهرة في مسار البحث.
ونظرًا لأن العرض pg_class الذي يحاكيه ClickHouse لا يكشف إلا عن جداول قاعدة البيانات الحالية، وجميعها ظاهرة، فإن الدالة تُرجع دائمًا 1.
الصياغة
pg_table_is_visible
الوسيطات
oid— معرّف كائن الجدول، كما هو معروض في طريقة العرض المحاكيةpg_class. تُتجاهل القيمة.UInt32
1. UInt8
أمثلة
مثال على الاستخدام
Query
Response
queryID
قُدِّمت في: v21.9.0 يُرجع معرّف الاستعلام الحالي. يمكن استخراج المعلمات الأخرى للاستعلام من الحقلquery_id في الجدول system.query_log.
بخلاف الدالة initialQueryID، قد تُرجع queryID نتائج مختلفة على المقاطع المختلفة.
هذه الدالة غير حتمية: قد تُرجع نتائج مختلفة للمعاملات نفسها.
query_id
المعاملات
- لا شيء.
String
أمثلة
مثال على الاستخدام
Query
Response
revision
قُدِّم في: v22.7.0 يُرجع رقم مراجعة خادم ClickHouse الحالي.هذه الدالة غير حتمية: قد تُرجع نتائج مختلفة للوسائط نفسها.
- لا شيء.
UInt32
أمثلة
مثال على الاستخدام
Query
Response
rowNumberInAllBlocks
أُضيف في: v1.1.0 يعيد رقم صف فريدًا لكل صف مُعالَج.هذه الدالة غير حتمية: قد تُرجع نتائج مختلفة للوسائط نفسها.
- لا شيء.
0. UInt64
أمثلة
مثال على الاستخدام
Query
Response
rowNumberInBlock
أُضيف في: v1.1.0 بالنسبة إلى كل كتلة يعالجهاrowNumberInBlock، تُرجِع الدالة رقم الصف الحالي.
يبدأ الرقم المُعاد من 0 في كل كتلة.
هذه الدالة غير حتمية: قد تُرجِع نتائج مختلفة للمعاملات نفسها.
- لا شيء.
0. UInt64
أمثلة
مثال على الاستخدام
Query
Response
runningAccumulate
أُضيفت في: v1.1.0 تُراكم حالات دالة تجميع لكل صف ضمن كتلة بيانات. الصيغةagg_state— حالة الدالة التجميعية.AggregateFunctiongrouping— اختياري. مفتاح التجميع. تُعاد تهيئة حالة الدالة إذا تغيّرت قيمةgrouping. ويمكن أن يكون من أيٍّ من أنواع البيانات المدعومة التي يكون فيها عامل المساواة معرّفًا.Any
Any
أمثلة
مثال على الاستخدام مع initializeAggregation
Query
Response
runningConcurrency
أُضيف: v21.3.0 يحسب عدد الأحداث المتزامنة. لكل حدث وقت بداية ووقت نهاية. يُحتسب وقت البداية ضمن الحدث، بينما لا يُحتسب وقت النهاية. يجب أن تكون الأعمدة التي تتضمن وقت بداية ووقت نهاية من نوع البيانات نفسه. تحسب الدالة العدد الإجمالي للأحداث النشطة (المتزامنة) لكل وقت بداية حدث.هذه الدالة غير حتمية: يمكن أن تعيد نتائج مختلفة للوسائط نفسها.
start— عمود يحتوي على وقت بدء الأحداث.DateأوDateTimeأوDateTime64end— عمود يحتوي على وقت انتهاء الأحداث.DateأوDateTimeأوDateTime64
UInt32
أمثلة
مثال على الاستخدام
Query
Response
runningDifference
أُضيف في: v1.1.0 تحسب الفرق بين قيمتَي صفّين متتاليين داخل كتلة البيانات. وتُرجِع0 للصف الأول، أما الصفوف اللاحقة فتُرجِع الفرق مقارنةً بالصف السابق.
تعتمد نتيجة الدالة على كتل البيانات المعنية وترتيب البيانات داخل الكتلة.
وقد يختلف ترتيب الصفوف أثناء حساب runningDifference() عن ترتيب الصفوف المُعادة إلى المستخدم.
ولتجنّب ذلك، يمكنك إنشاء استعلام فرعي باستخدام ORDER BY ثم استدعاء الدالة من خارج هذا الاستعلام الفرعي.
يرجى ملاحظة أن حجم الكتلة يؤثر في النتيجة.
تُعاد تهيئة الحالة الداخلية للدالة runningDifference مع كل كتلة جديدة.
الصيغة
x— العمود الذي يُحسب له الفرق التراكمي.Any
Query
Response
Query
Response
runningDifferenceStartingWithFirstValue
أُضيفت في: v1.1.0 تحسب الفرق بين قيم الصفوف المتتالية في كتلة بيانات، ولكن بخلافrunningDifference، فإنها تُرجع القيمة الفعلية للصف الأول بدلًا من 0.
الصيغة
x— العمود المراد حساب الفرق التراكمي له.Any
Any
أمثلة
مثال على الاستخدام
Query
Response
serverUUID
أُضيف في: v20.1.0 يعيد معرّف UUID (v4) عشوائيًا وفريدًا يُولَّد عند بدء تشغيل الخادم لأول مرة. ويُحفَظ هذا المعرّف، أي إن تشغيل الخادم للمرة الثانية أو الثالثة أو ما بعدها يعيد معرّف UUID نفسه.هذه الدالة غير حتمية: يمكن أن تُرجع نتائج مختلفة للوسائط نفسها.
- لا توجد.
UUID
أمثلة
مثال على الاستخدام
Query
Response
shardCount
استُحدث في: v21.9.0 يعيد العدد الإجمالي للشظايا في الاستعلام الموزع. إذا لم يكن الاستعلام موزعًا، فستُعاد القيمة الثابتة0.
هذه الدالة غير حتمية: قد تُرجع نتائج مختلفة للوسائط نفسها.
- لا شيء.
0. UInt32
أمثلة
مثال على الاستخدام
Query
Response
shardNum
تم تقديمه في: v21.9.0 يعيد فهرس الشظية التي تعالج جزءًا من البيانات في استعلام موزّع. تبدأ الفهارس من1.
إذا لم يكن الاستعلام موزّعًا، فستُعاد قيمة ثابتة هي 0.
هذه الدالة غير حتمية: قد تُرجِع نتائج مختلفة للمعاملات نفسها.
- لا يوجد.
0. UInt32
أمثلة
مثال على الاستخدام
Query
Response
showCertificate
أُضيف في: v22.6.0 يعرض معلومات عن شهادة SSL الخاصة بالخادم الحالي إذا كانت مُهيّأة. تُعاد خريطة فارغة إذا لم تكن لدى الخادم شهادة، على سبيل المثال، عندما تُوفَّر الشهادة باستخدام ACME ولم تُصدر بعد. راجع إعداد TLS لمزيد من المعلومات حول كيفية إعداد ClickHouse لاستخدام شهادات OpenSSL للتحقق من الاتصالات.هذه الدالة غير حتمية: قد تعيد نتائج مختلفة للوسيطات نفسها.
- لا شيء.
Map(String, String)
أمثلة
مثال على الاستخدام
Query
Response
sleep
قُدِّمت في: v1.1.0 توقف تنفيذ الاستعلام مؤقتًا لمدة عدد الثواني المحدد. تُستخدم هذه الدالة أساسًا لأغراض الاختبار واستكشاف الأخطاء وإصلاحها. بوجه عام، لا ينبغي استخدام الدالةsleep() في بيئات production، لأنها قد تؤثر سلبًا في أداء الاستعلام واستجابة النظام.
ومع ذلك، قد تكون مفيدة في السيناريوهات التالية:
- الاختبار: عند اختبار ClickHouse أو إجراء benchmarking له، قد ترغب في محاكاة حالات تأخير أو إدخال توقفات مؤقتة لملاحظة كيفية تصرف النظام في ظروف معينة.
- استكشاف الأخطاء وإصلاحها: إذا كنت بحاجة إلى فحص حالة النظام أو تنفيذ استعلام عند نقطة زمنية محددة، فيمكنك استخدام
sleep()لإدخال توقف مؤقت، مما يتيح لك فحص المعلومات ذات الصلة أو جمعها. - المحاكاة: في بعض الحالات، قد ترغب في محاكاة سيناريوهات واقعية تحدث فيها حالات تأخير أو توقفات مؤقتة، مثل كمون الشبكة أو اعتماديات الأنظمة الخارجية.
allow_sleep).
الصيغة
seconds— عدد الثواني المطلوب إيقاف تنفيذ الاستعلام مؤقتًا خلالها، بحد أقصى 3 ثوانٍ. ويمكن أن تكون قيمة ذات فاصلة عائمة لتحديد أجزاء من الثانية.const UInt*أوconst Float*
0. UInt8
أمثلة
مثال على الاستخدام
Query
Response
sleepEachRow
أُضيفت في: v1.1.0 توقف تنفيذ الاستعلام لعدد محدد من الثواني لكل صف في مجموعة النتائج. تُستخدم الدالةsleepEachRow() بشكل أساسي لأغراض الاختبار وتصحيح الأخطاء، على غرار الدالة sleep().
وتتيح لك محاكاة حالات التأخير أو إدخال توقفات مؤقتة أثناء معالجة كل صف، مما قد يكون مفيدًا في سيناريوهات مثل:
- الاختبار: عند اختبار أداء ClickHouse أو إجراء اختبارات قياس الأداء له في ظل ظروف محددة، يمكنك استخدام
sleepEachRow()لمحاكاة حالات التأخير أو إدخال توقفات مؤقتة لكل صف تتم معالجته. - تصحيح الأخطاء: إذا كنت بحاجة إلى فحص حالة النظام أو تنفيذ الاستعلام لكل صف تتم معالجته، فيمكنك استخدام
sleepEachRow()لإدخال توقفات مؤقتة، مما يتيح لك فحص المعلومات ذات الصلة أو جمعها. - المحاكاة: في بعض الحالات، قد ترغب في محاكاة سيناريوهات واقعية تحدث فيها حالات تأخير أو توقفات مؤقتة لكل صف تتم معالجته، مثل عند التعامل مع أنظمة خارجية أو زمن الاستجابة على الشبكة.
seconds— عدد الثواني التي يُوقَف فيها تنفيذ الاستعلام مؤقتًا لكل صف في مجموعة النتائج، بحد أقصى 3 ثوانٍ. ويمكن أن تكون قيمة فاصلة عائمة لتحديد أجزاء من الثانية.const UInt*أوconst Float*
0 لكل صف. UInt8
أمثلة
مثال على الاستخدام
Query
Response
structureToCapnProtoSchema
أُضيفت في: v23.8.0 دالة تُحوِّل بنية جدول ClickHouse إلى مخطط schema بتنسيق CapnProto الصيغة- لا شيء.
Query
Response
structureToProtobufSchema
أُضيفت في: v23.8.0 تحوّل بنية جدول ClickHouse إلى مخطط بتنسيق Protobuf. تأخذ هذه الدالة تعريف بنية جدول ClickHouse وتحوله إلى تعريف مخطط Protocol Buffers (Protobuf) بصياغة proto3. وهذا مفيد لإنشاء مخططات Protobuf تتوافق مع بُنى جداول ClickHouse لتبادل البيانات. الصيغةstructure— تعريف بنية جدول ClickHouse كسلسلة نصية (على سبيل المثال: ‘column1 Type1, column2 Type2’).Stringmessage_name— اسم نوع رسالة Protobuf في المخطط المُنشأ.String
String
أمثلة
تحويل بنية ClickHouse إلى مخطط Protobuf
Query
Response
tcpPort
أُضيفت في: v20.12.0 تعيد رقم منفذ TCP الخاص بـ الواجهة الأصلية الذي يستمع عليه الخادم. إذا نُفِّذت في سياق جدول موزّع، فستُنشئ هذه الدالة عمودًا عاديًا بقيم مرتبطة بكل شظية. وإلا، فإنها تُنتج قيمة ثابتة.هذه الدالة غير حتمية: قد تُرجع نتائج مختلفة للمعاملات نفسها.
- لا توجد.
UInt16
أمثلة
مثال على الاستخدام
Query
Response
throwIf
قُدِّمت في: v1.1.0 يطرح استثناءً إذا كانت الوسيطة x تساوي true. لاستخدام الوسيطةerror_code، يجب تمكين معلمة الإعداد allow_custom_error_code_in_throw.
الصيغة
x— الشرط المطلوب التحقق منه.Anymessage— اختياري. رسالة خطأ مخصّصة.const Stringerror_code— اختياري. رمز خطأ مخصّص.const Int8/16/32
0 إذا كان الشرط false، ويُطلق استثناءً إذا كان الشرط true. UInt8
أمثلة
مثال على الاستخدام
Query
Response
toColumnTypeName
أُضيف في: v1.1.0 يعيد الاسم الداخلي لنوع بيانات القيمة المحددة. وعلى خلاف الدالةtoTypeName، قد يشمل نوع البيانات المُعاد أعمدة مُغلِّفة داخلية مثل Const وLowCardinality.
هذه الدالة غير حتمية: فقد تُرجع نتائج مختلفة للمعاملات نفسها.
value— القيمة التي يُراد إرجاع نوع البيانات الداخلي الخاص بها.Any
String
أمثلة
مثال على الاستخدام
Query
Response
toTypeName
قُدِّم في: v1.1.0 يعيد اسم النوع للوسيطة المُمرَّرة. إذا تم تمريرNULL، فستُعيد الدالة النوع Nullable(Nothing)، وهو ما يقابل التمثيل الداخلي للقيمة NULL في ClickHouse.
البنية
x— قيمة من أي نوع.Any
String
أمثلة
مثال على الاستخدام
Query
Response
tokenizeQuery
استُحدث في: v26.5.0 يُجزِّئ سلسلة استعلام ClickHouse SQL إلى رموز ويُعيد مصفوفة من الرموز. كل رمز عبارة عن named tuple يتضمن موضع البداية (بالبايت)، وموضع النهاية، ونوع الرمز. البنيةquery— سلسلة استعلام في ClickHouse SQL. String.
(begin UInt64, end UInt64, type Enum8(...)) تمثل توكنات الاستعلام. Array(Tuple(begin UInt64, end UInt64, type Enum8(...)))
أمثلة
بسيط
Query
Response
transactionID
أُضيف في: v22.6.0 تُرجِع معرّف المعاملة.هذه الدالة جزء من مجموعة ميزات تجريبية.
فعِّل دعم المعاملات التجريبي بإضافة هذا الإعداد إلى التهيئة:لمزيد من المعلومات، راجع صفحة دعم المعاملات (ACID).
هذه الدالة غير حتمية: يمكن أن تُرجِع نتائج مختلفة للوسيطة نفسها.
- لا شيء.
Tuple تتكوّن من start_csn وlocal_tid وhost_id وsession_node_version.
start_csn: رقم تسلسلي عام، وهو أحدث طابع زمني لعملية commit تمت ملاحظته عند بدء هذه المعاملة.local_tid: رقم تسلسلي محلي فريد لكل معاملة يبدأها هذا المضيف ضمنstart_csnمحدد.host_id: معرّف UUID للمضيف الذي بدأ هذه المعاملة.session_node_version: إصدار عقدة znode لجلسة المضيف عند بدء المعاملة؛ يتيح للنظراء اكتشاف TID لجلسة ميتة عبر النسخ المتماثلة.Tuple(UInt64, UInt64, UUID, Int64)
Query
Response
transactionLatestSnapshot
أُضيف في: v22.6.0 تعيد أحدث لقطة (Commit Sequence Number) لـ معاملة المتاحة للقراءة.هذه الدالة جزء من مجموعة ميزات تجريبية. فعِّل دعم المعاملات التجريبي بإضافة هذا الإعداد إلى التهيئة:لمزيد من المعلومات، راجع صفحة دعم المعاملات (ACID).
- لا شيء.
UInt64
أمثلة
مثال على الاستخدام
Query
Response
transactionOldestSnapshot
تم تقديمه في: v22.6.0 تُرجع أقدم لقطة (Commit Sequence Number) تكون مرئية لإحدى المعاملات الجارية.هذه الدالة جزء من مجموعة ميزات تجريبية. فعِّل دعم المعاملات التجريبي بإضافة هذا الإعداد إلى التهيئة الخاصة بك:لمزيد من المعلومات، راجع صفحة دعم المعاملات (ACID).
- لا شيء.
UInt64
أمثلة
مثال على الاستخدام
Query
Response
transform
قُدِّمت في: v1.1.0 تحوِّل قيمةً وفق تعيين مُعرَّف صراحةً لبعض العناصر إلى عناصر أخرى. لهذه الدالة صيغتان:transform(x, array_from, array_to, default)- تحوِّلxباستخدام مصفوفتَي تعيين مع قيمةdefaultللعناصر غير المتطابقةtransform(x, array_from, array_to)- التحويل نفسه، لكنها تعيدxالأصلي إذا لم يُعثر على أي تطابق
x في array_from وتعيد العنصر المقابل من array_to عند الفهرس نفسه.
إذا لم يُعثر على x في array_from، فإنها تعيد إما قيمة default (في نسخة المعاملات الأربعة) أو x الأصلي (في نسخة المعاملات الثلاثة).
إذا وُجدت عدة عناصر متطابقة في array_from، فإنها تعيد العنصر المقابل لأول تطابق.
المتطلبات:
- يجب أن يحتوي
array_fromوarray_toعلى العدد نفسه من العناصر - لنسخة المعاملات الأربعة:
transform(T, Array(T), Array(U), U) -> Uحيث يمكن أن يكونTوUنوعين مختلفين لكن متوافقين - لنسخة المعاملات الثلاثة:
transform(T, Array(T), Array(T)) -> Tحيث يجب أن تكون جميع الأنواع متماثلة
x— القيمة المطلوب تحويلها.(U)Int*أوDecimalأوFloat*أوStringأوDateأوDateTimearray_from— مصفوفة ثابتة من القيم للبحث عن القيم المطابقة فيها.Array((U)Int*)أوArray(Decimal)أوArray(Float*)أوArray(String)أوArray(Date)أوArray(DateTime)array_to— مصفوفة ثابتة من القيم لإرجاع القيم المناظرة للعناصر المطابقة فيarray_from.Array((U)Int*)أوArray(Decimal)أوArray(Float*)أوArray(String)أوArray(Date)أوArray(DateTime)default— اختياري. القيمة التي تُعاد إذا لم يتم العثور علىxفيarray_from. إذا لم يتم تحديده، فستُعادxكما هي.(U)Int*أوDecimalأوFloat*أوStringأوDateأوDateTime
array_to إذا كانت x تطابق عنصرًا في array_from، وإلا فتُعيد default (إذا تم تحديده) أو x (إذا لم يتم تحديد default). Any
أمثلة
transform(T, Array(T), Array(U), U) -> U
Query
Response
Query
Response
uniqThetaIntersect
طُرح في: v22.9.0 يُستخدم كائنان من نوع uniqThetaSketch لإجراء عملية التقاطع (عملية المجموعات ∩)، وتكون النتيجة كائن uniqThetaSketch جديدًا. الصيغةuniqThetaSketch— كائن uniqThetaSketch.TupleأوArrayأوDateأوDateTimeأوStringأو(U)Int*أوFloat*أوDecimal
UInt64
أمثلة
مثال على الاستخدام
Query
Response
uniqThetaNot
قُدِّم في: v22.9.0 كائنان من نوع uniqThetaSketch لإجراء العملية الحسابية a_not_b (عملية على المجموعات ×)، وتكون النتيجة كائن uniqThetaSketch جديدًا. الصيغةuniqThetaSketch— كائن uniqThetaSketch.TupleأوArrayأوDateأوDateTimeأوStringأو(U)Int*أوFloat*أوDecimal
UInt64
أمثلة
مثال للاستخدام
Query
Response
uniqThetaUnion
أُضيف في: v22.9.0 كائنان من نوعuniqThetaSketch لإجراء عملية الاتحاد (عملية مجموعات ∪)، وتكون النتيجة uniqThetaSketch جديدًا.
الصيغة
uniqThetaSketch— كائن uniqThetaSketch.TupleأوArrayأوDateأوDateTimeأوStringأو(U)Int*أوFloat*أوDecimal
UInt64
أمثلة
مثال على الاستخدام
Query
Response
مدة التشغيل
أُضيف في: v1.1.0 يعيد مدة تشغيل الخادم بالثواني. إذا نُفِّذت هذه الدالة في سياق جدول موزّع، فإنها تُنشئ عمودًا عاديًا بقيم مرتبطة بكل جزء. أما خلاف ذلك، فتنتج قيمة ثابتة.هذه الدالة غير حتمية: يمكن أن تُرجع نتائج مختلفة للوسائط نفسها.
- لا يوجد.
UInt32
أمثلة
مثال على الاستخدام
Query
Response
variantElement
أُضيفت في: v25.2.0 تستخرج عمودًا من النوع المحدد من عمودVariant.
البنية
variant— عمود Variant.Varianttype_name— اسم نوع Variant المراد استخراجه.Stringdefault_value— القيمة الافتراضية التي ستُستخدم إذا لم يتضمّنvariantنوع Variant المحدد. يمكن أن تكون من أي نوع. اختياري.Any
Any
أمثلة
مثال على الاستخدام
Query
Response
variantType
قُدِّم في: v24.2.0 يعيد اسم النوع المتغيّر لكل صف في عمودVariant. وإذا احتوى الصف على NULL، فستُعاد له القيمة ‘None’.
الصيغة
variant— عمود Variant.Variant
Enum
أمثلة
مثال على الاستخدام
Query
Response
version
أُضيف في الإصدار: v1.1.0 تعيد الإصدار الحالي من ClickHouse كسلسلة نصية بالصيغة:major_version.minor_version.patch_version.number_of_commits_since_the_previous_stable_release.
إذا نُفِّذت في سياق جدول موزّع، فستُنشئ هذه الدالة عمودًا عاديًا بقيم خاصة بكل جزء.
وبخلاف ذلك، فإنها تُنتج قيمة ثابتة.
هذه الدالة غير حتمية: قد تُرجع نتائج مختلفة للمعاملات نفسها.
- لا شيء.
String
أمثلة
مثال للاستخدام
Query
Response
visibleWidth
ظهر لأول مرة في: v1.1.0 يحسب العرض التقريبي عند إخراج القيم إلى الطرفية بتنسيق نصي (مفصول بعلامات الجدولة). تُستخدم هذه الدالة من قِبل النظام لتنفيذ تنسيقات Pretty. تُمثَّلNULL كسلسلة نصية تقابل NULL في تنسيقات Pretty.
الصيغة
x— قيمة من أي نوع بيانات.Any
UInt64
أمثلة
حساب العرض المرئي لـ NULL
Query
Response
zookeeperSessionUptime
أُضيف في: v21.11.0 تعيد مدة تشغيل جلسة ZooKeeper الحالية بالثواني.هذه الدالة غير حتمية: يمكن أن تُرجع نتائج مختلفة للوسائط نفسها.
- لا شيء.
UInt32
أمثلة
مثال على الاستخدام
Query
Response