الانتقال إلى المحتوى الرئيسي
يمكن استخدام دوال التجزئة لإعادة خلط العناصر بطريقة شبه عشوائية وحتمية. Simhash هي دالة hash تُرجع قيم hash متقاربة للوسيطات المتقاربة (المتشابهة). تقبل معظم دوال التجزئة أي عدد من الوسيطات، مهما كانت أنواعها.
قيمة hash لـ NULL هي NULL. للحصول على قيمة hash غير NULL لعمود من النوع Nullable، لفّه داخل tuple:
SELECT cityHash64(tuple(NULL))
لحساب قيمة hash لكامل محتويات table، استخدم sum(cityHash64(tuple(*))) (أو أي دالة hash أخرى). تضمن tuple عدم تخطي الصفوف التي تحتوي على قيم NULL. وتضمن sum ألّا يؤثر ترتيب الصفوف.

BLAKE3

قُدِّم في: v22.10.0 يحسب سلسلة تجزئة BLAKE3 ويُرجِع مجموعة البايتات الناتجة على هيئة FixedString. دُمجت دالة التجزئة التشفيرية هذه في ClickHouse باستخدام مكتبة BLAKE3 بلغة Rust. تتميز هذه الدالة بسرعة كبيرة نسبيًا، إذ تقدم أداءً أسرع بنحو الضعف مقارنةً بـ SHA-2، مع توليد قيم تجزئة بالطول نفسه مثل SHA-256. وتُرجِع دالة BLAKE3 قيمة تجزئة كمصفوفة بايتات من النوع FixedString(32). الصيغة
BLAKE3(message)
المعاملات
  • message — سلسلة الإدخال المطلوب تجزئتها. String
القيمة المُعادة تُرجع تجزئة BLAKE3 بطول 32 بايت لسلسلة الإدخال، على هيئة سلسلة نصية ثابتة الطول. FixedString(32) أمثلة hash
Query
SELECT hex(BLAKE3('ABC'))
Response
┌─hex(BLAKE3('ABC'))───────────────────────────────────────────────┐
│ D1717274597CF0289694F75D96D444B992A096F1AFD8E7BBFA6EBB1D360FEDFC │
└──────────────────────────────────────────────────────────────────┘

MD4

أُضيف في: v21.11.0 يحسب تجزئة MD4 للسلسلة النصية المعطاة. الصيغة
MD4(s)
الوسائط
  • s — سلسلة الإدخال المطلوب حساب قيمة hash لها. String
القيمة المُعادة تُرجع قيمة hash ‏MD4 لسلسلة الإدخال المحددة كسلسلة ثابتة الطول. FixedString(16) أمثلة مثال على الاستخدام
Query
SELECT HEX(MD4('abc'));
Response
┌─hex(MD4('abc'))──────────────────┐
│ A448017AAF21D8525FC10AE87AA6729D │
└──────────────────────────────────┘

MD5

أُضيف في: v1.1.0 يحسب قيمة hash ‏MD5 للسلسلة النصية المُعطاة. الصيغة
MD5(s)
الوسيطات
  • s — سلسلة الإدخال النصية المطلوب تجزئتها. String
القيمة المعادة يعيد قيمة تجزئة MD5 لسلسلة الإدخال المحددة على هيئة سلسلة نصية ثابتة الطول. FixedString(16) أمثلة مثال على الاستخدام
Query
SELECT HEX(MD5('abc'));
Response
┌─hex(MD5('abc'))──────────────────┐
│ 900150983CD24FB0D6963F7D28E17F72 │
└──────────────────────────────────┘

RIPEMD160

أُضيف في: v24.10.0 يحسب قيمة RIPEMD-160 hash للسلسلة النصية المُعطاة. البنية
RIPEMD160(s)
الوسائط
  • s — سلسلة الإدخال المطلوب تجزئتها. String
القيمة المُعادة تُرجع قيمة RIPEMD160 لسلسلة الإدخال المحددة على هيئة سلسلة ثابتة الطول. FixedString(20) أمثلة مثال على الاستخدام
Query
SELECT HEX(RIPEMD160('The quick brown fox jumps over the lazy dog'));
Response
┌─HEX(RIPEMD160('The quick brown fox jumps over the lazy dog'))─┐
│ 37F332F68DB77BD9D7EDD4969571AD671CF9DD3B                      │
└───────────────────────────────────────────────────────────────┘

SHA1

أُضيفت في: v1.1.0 تحسب قيمة تجزئة SHA1 للسلسلة النصية المُعطاة. الصيغة
SHA1(s)
الوسائط
  • s — سلسلة الإدخال النصية المراد تجزئتها String
القيمة المُعادة يُرجع تجزئة SHA1 لسلسلة الإدخال النصية المحددة على شكل سلسلة نصية ثابتة الطول. FixedString(20) أمثلة مثال على الاستخدام
Query
SELECT HEX(SHA1('abc'));
Response
┌─hex(SHA1('abc'))─────────────────────────┐
│ A9993E364706816ABA3E25717850C26C9CD0D89D │
└──────────────────────────────────────────┘

SHA224

أُضيف في: v1.1.0 يحسب قيمة SHA224 hash للسلسلة النصية المُعطاة. الصيغة
SHA224(s)
الوسائط
  • s — قيمة الإدخال المراد تجزئتها. String
القيمة المُعادة تُرجع قيمة تجزئة SHA224 لسلسلة الإدخال المعطاة في صورة سلسلة ثابتة الطول. FixedString(28) أمثلة مثال على الاستخدام
Query
SELECT HEX(SHA224('abc'));
Response
┌─hex(SHA224('abc'))───────────────────────────────────────┐
│ 23097D223405D8228642A477BDA255B32AADBCE4BDA0B3F7E36C9DA7 │
└──────────────────────────────────────────────────────────┘

SHA256

أُضيف في: v1.1.0 يحسب تجزئة SHA256 للسلسلة النصية المُعطاة. الصيغة
SHA256(s)
المعاملات
  • s — سلسلة الإدخال المطلوب تجزئتها. String
القيمة المُعادة تعيد تجزئة SHA256 لسلسلة الإدخال المحددة على هيئة سلسلة ثابتة الطول. FixedString(32) أمثلة مثال على الاستخدام
Query
SELECT HEX(SHA256('abc'));
Response
┌─hex(SHA256('abc'))───────────────────────────────────────────────┐
│ BA7816BF8F01CFEA414140DE5DAE2223B00361A396177A9CB410FF61F20015AD │
└──────────────────────────────────────────────────────────────────┘

SHA384

أُضيفت في: v1.1.0 تحسب قيمة تجزئة SHA384 للسلسلة النصية المحددة. البنية
SHA384(s)
الوسائط
  • s — سلسلة الإدخال المطلوب تجزئتها. String
القيمة المعادة يعيد قيمة تجزئة SHA384 لسلسلة الإدخال المحددة على هيئة سلسلة ثابتة الطول. FixedString(48) أمثلة مثال على الاستخدام
Query
SELECT HEX(SHA384('abc'));
Response
┌─hex(SHA384('abc'))───────────────────────────────────────────────────────────────────────────────┐
│ CB00753F45A35E8BB5A03D699AC65007272C32AB0EDED1631A8B605A43FF5BED8086072BA1E7CC2358BAECA134C825A7 │
└──────────────────────────────────────────────────────────────────────────────────────────────────┘

SHA512

أُضيف في: v1.1.0 يحسب تجزئة SHA512 للسلسلة النصية المُعطاة. الصيغة
SHA512(s)
المعاملات
  • s — سلسلة الإدخال المطلوب تطبيق دالة التجزئة عليها String
القيمة المُعادة تعيد دالة SHA512 قيمة تجزئة SHA512 لسلسلة الإدخال المحددة على شكل سلسلة نصية ثابتة الطول. FixedString(64) أمثلة مثال على الاستخدام
Query
SELECT HEX(SHA512('abc'));
Response
┌─hex(SHA512('abc'))───────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ DDAF35A193617ABACC417349AE20413112E6FA4E89A97EA20A9EEEE64B55D39A2192992A274FC1A836BA3C23A3FEEBBD454D4423643CE80E2A9AC94FA54CA49F │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

SHA512_256

أُضيف في: v1.1.0 يحسب قيمة hash ‏SHA512_256 للسلسلة النصية المُعطاة. البنية
SHA512_256(s)
الوسيطات
  • s — سلسلة الإدخال المطلوب تجزئتها. String
القيمة المُعادة تُرجع دالة SHA512_256 قيمة تجزئة سلسلة الإدخال المحددة على هيئة سلسلة ذات طول ثابت. FixedString(32) أمثلة مثال على الاستخدام
Query
SELECT HEX(SHA512_256('abc'));
Response
┌─hex(SHA512_256('abc'))───────────────────────────────────────────┐
│ 53048E2681941EF99B2E29B76B4C7DABE4C2D0C634FC6D46E0E2F13107E7AF23 │
└──────────────────────────────────────────────────────────────────┘

URLHash

أُضيفت في: v1.1.0 دالة hash سريعة وذات جودة مقبولة وغير مخصّصة للتشفير، تُحسب لسلسلة نصية مُستخرجة من URL باستخدام نوع من التطبيع. لهذه الدالة hash وضعان:
الوضعالوصف
URLHash(url)تحسب قيمة hash لسلسلة نصية بعد إزالة أحد الرموز الختامية / أو ? أو # من النهاية، إذا كان موجودًا.
URLHash(url, N)تحسب قيمة hash لسلسلة نصية حتى المستوى N في التسلسل الهرمي لـ URL، بعد إزالة أحد الرموز الختامية / أو ? أو # من النهاية، إذا كان موجودًا. المستويات هي نفسها كما في URLHierarchy.
الصياغة
URLHash(url[, N])
المعاملات
  • url — سلسلة URL المراد تجزئتها. String
  • N — اختياري. المستوى في البنية الهرمية لـ URL. (U)Int*
القيمة المُعادة يعيد قيمة التجزئة المحسوبة لـ url. UInt64 أمثلة مثال على الاستخدام
Query
SELECT URLHash('https://www.clickhouse.com')
Response
┌─URLHash('htt⋯house.com')─┐
│     13614512636072854701 │
└──────────────────────────┘
قيمة تجزئة URL عند المستوى المحدد
Query
SELECT URLHash('https://www.clickhouse.com/docs', 0);
SELECT URLHash('https://www.clickhouse.com/docs', 1);
Response
-- hash of https://www.clickhouse.com
┌─URLHash('htt⋯m/docs', 0)─┐
│     13614512636072854701 │
└──────────────────────────┘
-- hash of https://www.clickhouse.com/docs
┌─URLHash('htt⋯m/docs', 1)─┐
│     13167253331440520598 │
└──────────────────────────┘

cityHash64

أُضيف في: v1.1.0 ينتج قيمة تجزئة CityHash بطول 64 بت. هذه دالة تجزئة سريعة وغير مشفّرة. تستخدم خوارزمية CityHash مع معاملات السلاسل النصية، وتستخدم دالة تجزئة سريعة وغير مشفّرة خاصة بالتنفيذ مع المعاملات ذات أنواع البيانات الأخرى. تستخدم الدالة combinator الخاص بـ CityHash للحصول على النتائج النهائية.
غيّرت Google خوارزمية CityHash بعد إضافتها إلى ClickHouse. وبعبارة أخرى، ينتج cityHash64 في ClickHouse وCityHash الأصلي من Google الآن نتائج مختلفة. يتوافق cityHash64 في ClickHouse مع CityHash v1.0.2.
قد تتساوى قيم التجزئة المحسوبة لقيم الإدخال نفسها رغم اختلاف أنواع المعاملات. وينطبق ذلك، على سبيل المثال، على أنواع الأعداد الصحيحة ذات الأحجام المختلفة، وTuple المسمّاة وغير المسمّاة التي تحتوي على البيانات نفسها، وMap ونوع Array(Tuple(key, value)) المقابل الذي يحتوي على البيانات نفسها.
البنية
cityHash64(arg1[, arg2, ...])
الوسائط
  • arg1[, arg2, ...] — عدد متغيّر من وسائط الإدخال المطلوب حساب قيمة التجزئة لها. Any
القيمة المعادة تعيد قيمة التجزئة المحسوبة لوسائط الإدخال. UInt64 أمثلة مثال على الاستدعاء
Query
SELECT cityHash64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS CityHash, toTypeName(CityHash) AS type;
Response
┌─────────────CityHash─┬─type───┐
│ 12072650598913549138 │ UInt64 │
└──────────────────────┴────────┘
حساب المجموع الاختباري للجدول بالكامل مع مراعاة ترتيب الصفوف
Query
CREATE TABLE users (
    id UInt32,
    name String,
    age UInt8,
    city String
)
ENGINE = MergeTree
ORDER BY tuple();

INSERT INTO users VALUES
(1, 'Alice', 25, 'New York'),
(2, 'Bob', 30, 'London'),
(3, 'Charlie', 35, 'Tokyo');

SELECT groupBitXor(cityHash64(*)) FROM users;
Response
┌─groupBitXor(⋯age, city))─┐
│     11639977218258521182 │
└──────────────────────────┘

farmFingerprint64

أُضيف في: v20.12.0 يُنتج قيمة FarmHash من 64 بت باستخدام الطريقة Fingerprint64.
يُفضَّل farmFingerprint64 للحصول على قيمة ثابتة وقابلة للنقل بدلًا من farmHash64.
قد تتطابق قيم hash المحسوبة لقيم الإدخال نفسها رغم اختلاف أنواع الوسائط. وينطبق ذلك، على سبيل المثال، على أنواع الأعداد الصحيحة ذات الأحجام المختلفة، وTuple المسمّاة وغير المسمّاة التي تحتوي على البيانات نفسها، وMap ونوع Array(Tuple(key, value)) المقابل الذي يحتوي على البيانات نفسها.
الصيغة
farmFingerprint64(arg1[, arg2, ...])
الوسيطات
  • arg1[, arg2, ...] — عدد متغيّر من وسيطات الإدخال المطلوب حساب قيمة التجزئة لها. Any
القيمة المُعادة تُعيد قيمة التجزئة المحسوبة لوسيطات الإدخال. UInt64 أمثلة مثال على الاستخدام
Query
SELECT farmFingerprint64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS FarmFingerprint, toTypeName(FarmFingerprint) AS type;
Response
┌─────FarmFingerprint─┬─type───┐
│ 5752020380710916328 │ UInt64 │
└─────────────────────┴────────┘

farmHash64

أُضيف في: v1.1.0 ينتج قيمة FarmHash بطول 64 بت باستخدام الطريقة Hash64.
يُفضَّل استخدام farmFingerprint64 للحصول على قيمة مستقرة وقابلة للنقل.
قد تتطابق قيم التجزئة المحسوبة لقيم الإدخال نفسها حتى مع اختلاف أنواع الوسيطات. وينطبق ذلك، على سبيل المثال، على أنواع الأعداد الصحيحة ذات الأحجام المختلفة، وTuple المسمّاة وغير المسمّاة التي تحتوي على البيانات نفسها، وMap ونوع Array(Tuple(key, value)) المقابل الذي يحتوي على البيانات نفسها.
البنية
farmHash64(arg1[, arg2, ...])
الوسيطات
  • arg1[, arg2, ...] — عدد متغيّر من وسيطات الإدخال المراد حساب قيمة التجزئة لها. Any
القيمة المعادة تُرجِع قيمة التجزئة المحسوبة لوسيطات الإدخال. UInt64 أمثلة مثال على الاستخدام
Query
SELECT farmHash64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS FarmHash, toTypeName(FarmHash) AS type;
Response
┌─────────────FarmHash─┬─type───┐
│ 18125596431186471178 │ UInt64 │
└──────────────────────┴────────┘

gccMurmurHash

أُضيف في: v20.1.0 يحسب تجزئة MurmurHash2‎‏ ذات 64 بت لقيمة الإدخال باستخدام البذرة نفسها المستخدمة في GCC. وهو قابل للنقل بين إصدارات البناء الخاصة بـ Clang وGCC. الصياغة
gccMurmurHash(arg1[, arg2, ...])
المعاملات
  • arg1[, arg2, ...] — عدد متغير من المعاملات المطلوب حساب قيمة التجزئة لها. Any
القيمة المُعادة تعيد قيمة التجزئة المحسوبة لمعاملات الإدخال. UInt64 أمثلة مثال على الاستخدام
Query
SELECT
    gccMurmurHash(1, 2, 3) AS res1,
    gccMurmurHash(('a', [1, 2, 3], 4, (4, ['foo', 'bar'], 1, (1, 2)))) AS res2
Response
┌─────────────────res1─┬────────────────res2─┐
│ 12384823029245979431 │ 1188926775431157506 │
└──────────────────────┴─────────────────────┘

halfMD5

أُضيفت في: v1.1.0 تقوم بإعادة تفسير جميع معلمات الإدخال على أنها سلاسل نصية، وتحسب قيمة هاش MD5 لكل منها. ثم تدمج قيم الهاش، وتأخذ أول 8 بايت من هاش السلسلة الناتجة، وتعيد تفسيرها على أنها UInt64 بترتيب البايتات big-endian. هذه الدالة بطيئة نسبيًا (5 ملايين سلسلة قصيرة في الثانية لكل نواة معالج). يُفضَّل استخدام الدالة sipHash64 بدلًا منها. تأخذ الدالة عددًا متغيرًا من معلمات الإدخال. يمكن أن تكون الوسائط من أي من أنواع البيانات المدعومة. بالنسبة إلى بعض أنواع البيانات، قد تتطابق القيمة المحسوبة لدالة الهاش للقيم نفسها حتى إذا اختلفت أنواع الوسائط (الأعداد الصحيحة ذات الأحجام المختلفة، وTuple المسمّاة وغير المسمّاة التي تحتوي على البيانات نفسها، وMap ونوع Array(Tuple(key, value)) المقابل الذي يحتوي على البيانات نفسها). الصياغة
halfMD5(arg1[, arg2, ..., argN])
الوسائط
  • arg1[, arg2, ..., argN] — عدد متغيّر من الوسائط المطلوب حساب قيمة التجزئة لها. Any
القيمة المعادة تعيد نصف قيمة تجزئة MD5 المحسوبة لمعاملات الإدخال المحددة، وتُعاد على هيئة UInt64 بترتيب البايتات big-endian. UInt64 أمثلة مثال على الاستخدام
Query
SELECT HEX(halfMD5('abc', 'cde', 'fgh'));
Response
┌─hex(halfMD5('abc', 'cde', 'fgh'))─┐
│ 2C9506B7374CFAF4                  │
└───────────────────────────────────┘

hiveHash

قُدِّم في: v20.1.0 يحسب قيمة “HiveHash” من سلسلة نصية. وهو ببساطة JavaHash مع تصفير بتات الإشارة. تُستخدم هذه الدالة في Apache Hive للإصدارات السابقة لـ 3.0.
دالة hash هذه منخفضة الأداء. استخدمها فقط إذا كانت هذه الخوارزمية مستخدمة بالفعل في نظام آخر وكنت بحاجة إلى حساب النتيجة نفسها.
الصياغة
hiveHash(arg)
الوسائط
  • arg — سلسلة الإدخال المراد حساب hash لها. String
القيمة المُعادة تُرجع قيمة “hive hash” المحسوبة لسلسلة الإدخال. Int32 أمثلة مثال على الاستخدام
Query
SELECT hiveHash('Hello, world!');
Response
┌─hiveHash('Hello, world!')─┐
│                 267439093 │
└───────────────────────────┘

icebergHash

أُضيفت في: v25.5.0 ينفّذ منطق تحويل التجزئة في Iceberg البنية
icebergHash(value)
الوسائط القيمة المُعادة تعيد قيمة تجزئة Murmur3 بطول 32 بت، بإصدار x86، وببذرة قدرها 0 من النوع Int32 أمثلة مثال
Query
SELECT icebergHash(1.0 :: Float32)
Response
-142385009

intHash32

أُضيف في: v1.1.0 يحسب قيمة hash من 32 بتًا لعدد صحيح. دالة الـ hash سريعة نسبيًا، لكنها ليست دالة hash تشفيرية. البنية
intHash32(arg)
الوسائط
  • arg — عدد صحيح يُراد تجزئته. (U)Int*
القيمة المعادة يعيد رمز التجزئة المحسوب بطول 32 بت للعدد الصحيح المُدخل UInt32 أمثلة مثال على الاستخدام
Query
SELECT intHash32(42);
Response
┌─intHash32(42)─┐
│    1228623923 │
└───────────────┘

intHash64

أُضيف في: v1.1.0 يحسب قيمة hash من نوع 64-bit لعدد صحيح. تُعد دالة hash هذه سريعة نسبيًا (وأسرع حتى من intHash32)، لكنها ليست دالة hash تشفيرية. الصياغة
intHash64(int)
المعاملات
  • int — عدد صحيح لإجراء التجزئة عليه. (U)Int*
القيمة المعادة قيمة تجزئة بطول 64 بت. UInt64 أمثلة مثال على الاستخدام
Query
SELECT intHash64(42);
Response
┌────────intHash64(42)─┐
│ 11490350930367293593 │
└──────────────────────┘

javaHash

أُضيف في: v20.1.0 يحسب قيمة JavaHash لـ:
دالة hash هذه ضعيفة الأداء. استخدمها فقط إذا كانت هذه الخوارزمية مستخدمة بالفعل في نظام آخر وكنت بحاجة إلى حساب النتيجة نفسها.
لا تدعم Java سوى حساب hash للأعداد الصحيحة الموقعة، لذا إذا أردت حساب hash للأعداد الصحيحة غير الموقعة، فيجب تحويلها إلى أنواع ClickHouse الموقعة المناسبة.
الصياغة
javaHash(arg)
الوسيطات
  • arg — قيمة الإدخال المطلوب تجزئتها. Any
القيمة المعادة يعيد قيمة التجزئة المحسوبة لـ arg Int32 أمثلة مثال استخدام 1
Query
SELECT javaHash(toInt32(123));
Response
┌─javaHash(toInt32(123))─┐
│               123      │
└────────────────────────┘
مثال استخدام 2
Query
SELECT javaHash('Hello, world!');
Response
┌─javaHash('Hello, world!')─┐
│               -1880044555 │
└───────────────────────────┘

javaHashUTF16LE

أُضيفت في: v20.1.0 يحسب JavaHash من سلسلة نصية، بافتراض أنها تتضمن بايتات تمثل سلسلة نصية بترميز UTF-16LE. الصيغة
javaHashUTF16LE(arg)
الوسائط
  • arg — سلسلة بترميز UTF-16LE. String
القيمة المُعادة تعيد قيمة التجزئة المحسوبة للسلسلة المرمّزة بترميز UTF-16LE. Int32 أمثلة مثال استخدام
Query
SELECT javaHashUTF16LE(convertCharset('test', 'utf-8', 'utf-16le'));
Response
┌─javaHashUTF16LE(convertCharset('test', 'utf-8', 'utf-16le'))─┐
│                                                      3556498 │
└──────────────────────────────────────────────────────────────┘

jumpConsistentHash

أُضيفت في: v1.1.0 يحسب التجزئة المتسقة بالقفز لعدد صحيح. الصيغة
jumpConsistentHash(key, buckets)
الوسيطات
  • key — مفتاح الإدخال. UInt64
  • buckets — عدد الخانات. Int32
القيمة المعادة يعيد قيمة التجزئة المحسوبة. Int32 أمثلة مثال على الاستخدام
Query
SELECT jumpConsistentHash(256, 4)
Response
┌─jumpConsistentHash(256, 4)─┐
│                          3 │
└────────────────────────────┘

kafkaMurmurHash

أُضيف في: v23.4.0 يحسب تجزئة MurmurHash2‏ ذات 32 بت لقيمة الإدخال باستخدام نفس seed المستخدم في Kafka، ومن دون أعلى بت، ليكون متوافقًا مع Default Partitioner. الصيغة
kafkaMurmurHash(arg1[, arg2, ...])
الوسيطات
  • arg1[, arg2, ...] — عدد متغيّر من المعاملات المطلوب حساب قيمة التجزئة لها. Any
القيمة المُعادة تُرجع قيمة التجزئة المحسوبة لمعاملات الإدخال. UInt32 أمثلة مثال على الاستخدام
Query
SELECT
    kafkaMurmurHash('foobar') AS res1,
    kafkaMurmurHash(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS res2
Response
┌───────res1─┬─────res2─┐
│ 1357151166 │ 85479775 │
└────────────┴──────────┘

keccak256

أُضيف في: v25.4.0 يحسب التجزئة التشفيرية Keccak-256 للسلسلة النصية المعطاة. تُستخدم دالة التجزئة هذه على نطاق واسع في تطبيقات البلوك تشين، وخصوصًا Ethereum. الصياغة
keccak256(message)
الوسائط
  • message — سلسلة الإدخال المطلوب حساب hash لها. String
القيمة المُعادة تُرجع قيمة hash ‏Keccak-256 بطول 32 بايت لسلسلة الإدخال على هيئة سلسلة ثابتة الطول. FixedString(32) أمثلة مثال استخدام
Query
SELECT hex(keccak256('hello'))
Response
┌─hex(keccak256('hello'))──────────────────────────────────────────┐
│ 1C8AFF950685C2ED4BC3174F3472287B56D9517B9C948127319A09A7A36DEAC8 │
└──────────────────────────────────────────────────────────────────┘

kostikConsistentHash

أُضيف في: v22.6.0 خوارزمية تجزئة متسقة بزمن ومساحة O(1) طوّرها Konstantin ‘Kostik’ Oblakov. تكون فعّالة فقط عندما يكون n <= 32768. الصياغة
kostikConsistentHash(input, n)
الأسماء البديلة: yandexConsistentHash المعاملات
  • input — مفتاح من نوع عدد صحيح. UInt64
  • n — عدد الحاويات. UInt16
القيمة المُعادة يعيد قيمة التجزئة المحسوبة. UInt16 أمثلة مثال على الاستخدام
Query
SELECT kostikConsistentHash(16045690984833335023, 2);
Response
┌─kostikConsistentHash(16045690984833335023, 2)─┐
│                                             1 │
└───────────────────────────────────────────────┘

metroHash64

أُضيف في: v1.1.0 ينتج قيمة hash‏ من MetroHash بطول 64 بت.
قد تتطابق قيم hash المحسوبة لقيم الإدخال نفسها حتى مع اختلاف أنواع argument. وينطبق ذلك، على سبيل المثال، على أنواع الأعداد الصحيحة ذات الأحجام المختلفة، وTuple المسمّى وغير المسمّى الذي يحتوي على البيانات نفسها، وMap والنوع المناظر له Array(Tuple(key, value)) الذي يحتوي على البيانات نفسها.
البنية
metroHash64(arg1[, arg2, ...])
الوسيطات
  • arg1[, arg2, ...] — عدد متغير من وسيطات الإدخال المراد حساب قيمة التجزئة لها. Any
القيمة المعادة يعيد قيمة التجزئة المحسوبة لوسيطات الإدخال. UInt64 أمثلة مثال على الاستخدام
Query
SELECT metroHash64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS MetroHash, toTypeName(MetroHash) AS type;
Response
┌────────────MetroHash─┬─type───┐
│ 14235658766382344533 │ UInt64 │
└──────────────────────┴────────┘

murmurHash2_32

أُضيف في: v18.5.0 يحسب قيمة تجزئة MurmurHash2 لقيمة الإدخال.
قد تتطابق قيم التجزئة المحسوبة لقيم الإدخال نفسها رغم اختلاف أنواع المعاملات. ينطبق ذلك، على سبيل المثال، على أنواع الأعداد الصحيحة ذات الأحجام المختلفة، وTuple المسمّاة وغير المسمّاة التي تحتوي على البيانات نفسها، وMap والنوع المقابل Array(Tuple(key, value)) الذي يحتوي على البيانات نفسها.
البنية
murmurHash2_32(arg1[, arg2, ...])
الوسيطات
  • arg1[, arg2, ...] — عدد متغيّر من وسيطات الإدخال المطلوب حساب قيمة التجزئة لها. Any
القيمة المُعادة تعيد قيمة التجزئة المحسوبة لوسيطات الإدخال. UInt32 أمثلة مثال على الاستخدام
Query
SELECT murmurHash2_32(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS MurmurHash2, toTypeName(MurmurHash2) AS type;
Response
┌─MurmurHash2─┬─type───┐
│  3681770635 │ UInt32 │
└─────────────┴────────┘

murmurHash2_64

أُضيف في: v18.10.0 يحسب قيمة التجزئة MurmurHash2 لقيمة الإدخال.
قد تتطابق قيم التجزئة المحسوبة لقيم الإدخال نفسها رغم اختلاف أنواع الوسيطات. وينطبق ذلك، على سبيل المثال، على أنواع الأعداد الصحيحة ذات الأحجام المختلفة، وTuple المسمّى وغير المسمّى التي تحتوي على البيانات نفسها، وMap ونوع Array(Tuple(key, value)) المقابل له الذي يحتوي على البيانات نفسها.
البنية
murmurHash2_64(arg1[, arg2, ...])
الوسيطات
  • arg1[, arg2, ...] — عدد متغير من وسيطات الإدخال التي تُحسب لها قيمة التجزئة. Any
القيمة المُعادة تعيد قيمة التجزئة المحسوبة لوسيطات الإدخال. UInt64 أمثلة مثال على الاستخدام
Query
SELECT murmurHash2_64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS MurmurHash2, toTypeName(MurmurHash2) AS type;
Response
┌──────────MurmurHash2─┬─type───┐
│ 11832096901709403633 │ UInt64 │
└──────────────────────┴────────┘

murmurHash3_128

أُضيف في: v18.10.0 يحسب قيمة تجزئة MurmurHash3 بطول 128 بت لقيمة الإدخال. الصيغة
murmurHash3_128(arg1[, arg2, ...])
الوسائط
  • arg1[, arg2, ...] — عدد متغيّر من وسائط الإدخال المطلوب حساب قيمة التجزئة لها. Any
القيمة المُعادة تُعيد قيمة تجزئة MurmurHash3 المحسوبة بطول 128 بت لوسائط الإدخال. FixedString(16) أمثلة مثال للاستخدام
Query
SELECT hex(murmurHash3_128('foo', 'foo', 'foo'));
Response
┌─hex(murmurHash3_128('foo', 'foo', 'foo'))─┐
│ F8F7AD9B6CD4CF117A71E277E2EC2931          │
└───────────────────────────────────────────┘

murmurHash3_32

تم تقديمه في: v18.10.0 ينتج قيمة تجزئة MurmurHash3.
قد تتطابق قيم التجزئة المحسوبة لقيم الإدخال نفسها مع أنواع وسيطات مختلفة. وينطبق ذلك، على سبيل المثال، على أنواع الأعداد الصحيحة ذات الأحجام المختلفة، وTuple المسمّاة وغير المسمّاة التي تحتوي على البيانات نفسها، وMap ونوع Array(Tuple(key, value)) المقابل الذي يحتوي على البيانات نفسها.
البنية
murmurHash3_32(arg1[, arg2, ...])
الوسيطات
  • arg1[, arg2, ...] — عدد متغيّر من وسائط الإدخال التي تُحسب لها قيمة التجزئة. Any
القيمة المُعادة تعيد قيمة التجزئة المحسوبة لوسائط الإدخال. UInt32 أمثلة مثال على الاستخدام
Query
SELECT murmurHash3_32(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS MurmurHash3, toTypeName(MurmurHash3) AS type;
Response
┌─MurmurHash3─┬─type───┐
│     2152717 │ UInt32 │
└─────────────┴────────┘

murmurHash3_64

أُضيفت في: v18.10.0 تحسب تجزئة MurmurHash3 لقيمة الإدخال.
قد تتساوى قيم التجزئة المحسوبة لقيم الإدخال نفسها لأنواع وسائط مختلفة. يؤثر هذا، على سبيل المثال، في أنواع الأعداد الصحيحة ذات الأحجام المختلفة، وTuple المسمّى وغير المسمّى التي تحتوي على البيانات نفسها، وMap ونوع Array(Tuple(key, value)) المقابل الذي يحتوي على البيانات نفسها.
البنية
murmurHash3_64(arg1[, arg2, ...])
الوسيطات
  • arg1[, arg2, ...] — عدد متغير من وسيطات الإدخال التي تُحسب لها قيمة التجزئة. Any
القيمة المعادة تُرجع قيمة التجزئة المحسوبة لوسيطات الإدخال. UInt64 أمثلة مثال على الاستخدام
Query
SELECT murmurHash3_64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS MurmurHash3, toTypeName(MurmurHash3) AS type;
Response
┌──────────MurmurHash3─┬─type───┐
│ 11832096901709403633 │ UInt64 │
└──────────────────────┴────────┘

ngramMinHash

قُدِّمت في: v21.1.0 تُقسِّم سلسلة ASCII إلى مقاطع n-gram تتكوّن من ngramsize رموز، وتحسب قيم hash لكل n-gram، ثم تُرجع tuple يحتوي على هذه القيم. وتستخدم hashnum من أصغر قيم hash لحساب أقل hash، وhashnum من أكبر قيم hash لحساب أكبر hash. وهي تراعي حالة الأحرف. يمكن استخدامها لاكتشاف السلاسل شبه المتطابقة باستخدام tupleHammingDistance. وبالنسبة إلى سلسلتين، إذا كانت قيم hash المُرجعة متطابقة في كلتيهما، فإن هاتين السلسلتين متطابقتان. الصياغة
ngramMinHash(string[, ngramsize, hashnum])
الوسيطات
  • string — السلسلة النصية التي تُحسب لها قيمة hash. String
  • ngramsize — اختياري. حجم n-gram، وأي قيمة من 1 إلى 25. القيمة الافتراضية هي 3. UInt8
  • hashnum — اختياري. عدد قيم hash الدنيا والعليا المستخدمة لحساب النتيجة، وأي قيمة من 1 إلى 25. القيمة الافتراضية هي 6. UInt8
القيمة المعادة يُرجع قيمة Tuple تحتوي على قيمتي hash — الصغرى والكبرى. Tuple أمثلة مثال على الاستخدام
Query
SELECT ngramMinHash('ClickHouse') AS Tuple;
Response
┌─Tuple──────────────────────────────────────┐
│ (18333312859352735453,9054248444481805918) │
└────────────────────────────────────────────┘

ngramMinHashArg

طُرح في: v21.1.0 يقسّم سلسلة ASCII إلى n-grams من ngramsize رمزًا، ويُرجع n-grams ذات أصغر وأكبر قيم hash، كما تحسبها الدالة ngramMinHash للمدخل نفسه. وهي حساسة لحالة الأحرف. البنية
ngramMinHashArg(string[, ngramsize, hashnum])
الوسائط
  • string — السلسلة المراد حساب قيمة التجزئة لها. String
  • ngramsize — اختياري. حجم n-gram، أي عدد من 1 إلى 25. القيمة الافتراضية هي 3. UInt8
  • hashnum — اختياري. عدد قيم التجزئة الدنيا والعليا المستخدمة لحساب النتيجة، أي عدد من 1 إلى 25. القيمة الافتراضية هي 6. UInt8
القيمة المُعادة يُرجع tuple يحتوي على tupleين، يحتوي كلٌّ منهما على hashnum من n-grams. Tuple(String) أمثلة مثال على الاستخدام
Query
SELECT ngramMinHashArg('ClickHouse') AS Tuple;
Response
┌─Tuple─────────────────────────────────────────────────────────────────────────┐
│ (('ous','ick','lic','Hou','kHo','use'),('Hou','lic','ick','ous','ckH','Cli')) │
└───────────────────────────────────────────────────────────────────────────────┘

ngramMinHashArgCaseInsensitive

أُضيفت في: v21.1.0 تقسم سلسلة ASCII إلى n-grams من ngramsize رموز، وتُرجِع قيم n-grams ذات أصغر وأكبر hash كما تحسبها الدالة ngramMinHashCaseInsensitive للمدخل نفسه. وهي غير حساسة لحالة الأحرف. البنية
ngramMinHashArgCaseInsensitive(string[, ngramsize, hashnum])
المعاملات
  • string — سلسلة نصية يُراد حساب قيمة hash لها. String
  • ngramsize — اختياري. حجم n-gram، أي عدد من 1 إلى 25. القيمة الافتراضية هي 3. UInt8
  • hashnum — اختياري. عدد قيم hash الصغرى والكبرى المستخدمة لحساب النتيجة، أي عدد من 1 إلى 25. القيمة الافتراضية هي 6. UInt8
القيمة المُعادة تعيد قيمة من النوع Tuple تحتوي على قيمتين من النوع Tuple، في كلٍّ منهما hashnum من n-grams. Tuple(Tuple(String)) أمثلة مثال على الاستخدام
Query
SELECT ngramMinHashArgCaseInsensitive('ClickHouse') AS Tuple;
Response
┌─Tuple─────────────────────────────────────────────────────────────────────────┐
│ (('ous','ick','lic','kHo','use','Cli'),('kHo','lic','ick','ous','ckH','Hou')) │
└───────────────────────────────────────────────────────────────────────────────┘

ngramMinHashArgCaseInsensitiveUTF8

أُضيفت في: v21.1.0 تُقسِّم سلسلة UTF-8 إلى مقاطع n-gram من ngramsize رمزًا، وتُرجع مقاطع n-gram ذات قيم hash الصغرى والكبرى، كما تحسبها الدالة ngramMinHashCaseInsensitiveUTF8 باستخدام المُدخل نفسه. وهي غير حساسة لحالة الأحرف. الصيغة
ngramMinHashArgCaseInsensitiveUTF8(string[, ngramsize, hashnum])
المعاملات
  • string — سلسلة نصية يُراد حساب قيمة التجزئة لها. String
  • ngramsize — اختياري. حجم n-gram، ويمكن أن يكون أي عدد من 1 إلى 25. القيمة الافتراضية هي 3. UInt8
  • hashnum — اختياري. عدد قيم التجزئة الصغرى والكبرى المستخدمة لحساب النتيجة، ويمكن أن يكون أي عدد من 1 إلى 25. القيمة الافتراضية هي 6. UInt8
القيمة المُعادة تعيد قيمة من النوع Tuple تحتوي على قيمتي Tuple، تضم كل واحدة منهما hashnum من n-grams. Tuple(Tuple(String)) أمثلة مثال على الاستخدام
Query
SELECT ngramMinHashArgCaseInsensitiveUTF8('ClickHouse') AS Tuple;
Response
┌─Tuple─────────────────────────────────────────────────────────────────────────┐
│ (('ckH','ous','ick','lic','kHo','use'),('kHo','lic','ick','ous','ckH','Hou')) │
└───────────────────────────────────────────────────────────────────────────────┘

ngramMinHashArgUTF8

قُدِّم في: v21.1.0 يقسّم سلسلة UTF-8 إلى n-grams من ngramsize رمزًا، ويُرجع قيم n-grams ذات أدنى وأعلى hash، كما تحسبها الدالة ngramMinHashUTF8 للإدخال نفسه. وهي حساسة لحالة الأحرف. البنية
ngramMinHashArgUTF8(string[, ngramsize, hashnum])
الوسيطات
  • string — السلسلة النصية التي سيتم حساب قيمة التجزئة لها. String
  • ngramsize — اختياري. حجم n-gram، ويمكن أن يكون أي رقم من 1 إلى 25. القيمة الافتراضية هي 3. UInt8
  • hashnum — اختياري. عدد قيم التجزئة الصغرى والكبرى المستخدمة لحساب النتيجة، ويمكن أن يكون أي رقم من 1 إلى 25. القيمة الافتراضية هي 6. UInt8
القيمة المعادة يعيد قيمة من النوع Tuple تحتوي على قيمتَي Tuple، يحتوي كلٌّ منهما على hashnum من n-grams. Tuple(Tuple(String)) أمثلة مثال على الاستخدام
Query
SELECT ngramMinHashArgUTF8('ClickHouse') AS Tuple;
Response
┌─Tuple─────────────────────────────────────────────────────────────────────────┐
│ (('ous','ick','lic','Hou','kHo','use'),('kHo','Hou','lic','ick','ous','ckH')) │
└───────────────────────────────────────────────────────────────────────────────┘

ngramMinHashCaseInsensitive

أُضيفت في: v21.1.0 تُقسِّم سلسلة ASCII إلى n-grams من ngramsize رموز، وتحسب قيم hash لكل n-gram، وتُرجع Tuple بهذه الـ hashes. وتستخدم hashnum من أقل قيم hash لحساب أدنى hash، وhashnum من أكبر قيم hash لحساب أقصى hash. وهي غير حساسة لحالة الأحرف. يمكن استخدامها لاكتشاف السلاسل شبه المتطابقة باستخدام tupleHammingDistance. بالنسبة إلى سلسلتين، إذا كانت الـ hashes المُعادة متطابقة في كلتا السلسلتين، فهذا يعني أن السلسلتين متطابقتان. الصياغة
ngramMinHashCaseInsensitive(string[, ngramsize, hashnum])
الوسيطات
  • string — سلسلة نصية. String. - ngramsize — حجم الـ n-gram. اختياري. القيم الممكنة: أي رقم من 1 إلى 25. القيمة الافتراضية: 3. UInt8. - hashnum — عدد قيمتي hash الصغرى والكبرى المستخدمتين لحساب النتيجة. اختياري. القيم الممكنة: أي رقم من 1 إلى 25. القيمة الافتراضية: 6. UInt8.
القيمة المعادة Tuple تضم قيمتي hash — الصغرى والكبرى. Tuple(UInt64, UInt64). Tuple أمثلة مثال على الاستخدام
Query
SELECT ngramMinHashCaseInsensitive('ClickHouse') AS Tuple;
Response
┌─Tuple──────────────────────────────────────┐
│ (2106263556442004574,13203602793651726206) │
└────────────────────────────────────────────┘

ngramMinHashCaseInsensitiveUTF8

قُدِّمت في: v21.1.0 تُقسِّم سلسلة UTF-8 إلى n-grams من ngramsize رموز، وتحسب قيم hash لكل n-gram، ثم تُرجع Tuple تحتوي على هذه الـ hashes. وتستخدم hashnum من أصغر قيم hash لحساب الحد الأدنى للـ hash، وhashnum من أكبر قيم hash لحساب الحد الأقصى للـ hash. وهي غير حساسة لحالة الأحرف. يمكن استخدامها لاكتشاف السلاسل شبه المتطابقة باستخدام tupleHammingDistance. وبالنسبة إلى سلسلتين، إذا كانت الـ hashes المُعادة متطابقة في كلتا السلسلتين، فإن هاتين السلسلتين متطابقتان. البنية
ngramMinHashCaseInsensitiveUTF8(string [, ngramsize, hashnum])
الوسائط
  • string — سلسلة نصية يُحسَب لها hash. String
  • ngramsize — اختياري. حجم n-gram، أي عدد من 1 إلى 25. القيمة الافتراضية هي 3. UInt8
  • hashnum — اختياري. عدد قيم hash الصغرى والكبرى المستخدمة لحساب النتيجة، أي عدد من 1 إلى 25. القيمة الافتراضية هي 6. UInt8
القيمة المعادة يعيد قيمة من النوع Tuple تحتوي على قيمتي hash — الصغرى والكبرى. أمثلة مثال على الاستخدام
Query
SELECT ngramMinHashCaseInsensitiveUTF8('ClickHouse') AS Tuple;
Response
┌─Tuple───────────────────────────────────────┐
│ (12493625717655877135,13203602793651726206) │
└─────────────────────────────────────────────┘

ngramMinHashUTF8

أُضيفت في: v21.1.0 تُقسِّم سلسلة UTF-8 إلى n-grams مكوّنة من ngramsize رمزًا، وتحسب قيم hash لكل n-gram، ثم تُرجع tuple تحتوي على هذه الـhashes. وتستخدم hashnum من أصغر قيم hash لحساب أقل hash، وhashnum من أكبر قيم hash لحساب أكبر hash. وهي حساسة لحالة الأحرف. يمكن استخدامها لاكتشاف السلاسل شبه المتطابقة باستخدام tupleHammingDistance. وبالنسبة إلى سلسلتين، إذا كانت الـhashes المُرجعة متطابقة في كلتا السلسلتين، فإن هاتين السلسلتين تكونان متطابقتين. البنية
ngramMinHashUTF8(string[, ngramsize, hashnum])
الوسيطات
  • string — السلسلة النصية المطلوب حساب hash لها. String
  • ngramsize — اختياري. حجم n-gram، وأي قيمة من 1 إلى 25. القيمة الافتراضية هي 3. UInt8
  • hashnum — اختياري. عدد قيم hash الصغرى والكبرى المستخدمة لحساب النتيجة، وأي قيمة من 1 إلى 25. القيمة الافتراضية هي 6. UInt8
القيمة المعادة تعيد قيمة من النوع Tuple تحتوي على قيمتي hash — الصغرى والكبرى. Tuple أمثلة مثال استخدام
Query
SELECT ngramMinHashUTF8('ClickHouse') AS Tuple;
Response
┌─Tuple──────────────────────────────────────┐
│ (18333312859352735453,6742163577938632877) │
└────────────────────────────────────────────┘

ngramSimHash

أُضيفت في: v21.1.0 تقسّم سلسلة ASCII إلى مقاطع n-gram مكوّنة من ngramsize رمزًا، وتُرجع قيمة simhash الخاصة بـ n-gram. يمكن استخدامها لاكتشاف السلاسل شبه المتطابقة باستخدام bitHammingDistance. وكلما كانت مسافة هامينغ بين قيم simhashes المحسوبة لسلسلتين أصغر، زاد احتمال أن تكون هاتان السلسلتان متماثلتين. البنية
ngramSimHash(string[, ngramsize])
الوسيطات
  • string — سلسلة نصية يُحسَب لها simhash مع مراعاة حالة الأحرف. String
  • ngramsize — اختياري. حجم n-gram، وأي قيمة من 1 إلى 25. القيمة الافتراضية هي 3. UInt8
القيمة المُعادة يعيد hash المحسوب لسلسلة الإدخال. UInt64 أمثلة مثال على الاستخدام
Query
SELECT ngramSimHash('ClickHouse') AS Hash;
Response
┌───────Hash─┐
│ 1627567969 │
└────────────┘

ngramSimHashCaseInsensitive

أُضيفت في: v21.1.0 تقسّم سلسلة ASCII إلى n-grams مكوّنة من ngramsize رموز وتُرجع قيمة simhash الخاصة بها. وهي غير حساسة لحالة الأحرف. يمكن استخدامها لاكتشاف السلاسل شبه المتطابقة باستخدام bitHammingDistance. وكلما صغرت مسافة هامنغ لقيم simhashes المحسوبة لسلسلتين، زاد احتمال أن تكون هاتان السلسلتان متماثلتين. البنية
ngramSimHashCaseInsensitive(string[, ngramsize])
المعاملات
  • string — السلسلة النصية التي يُحسب لها simhash غير الحساس لحالة الأحرف. String
  • ngramsize — اختياري. حجم n-gram، أي عدد من 1 إلى 25. القيمة الافتراضية هي 3. UInt8
القيمة المُعادة قيمة التجزئة. UInt64. UInt64 أمثلة مثال على الاستخدام
Query
SELECT ngramSimHashCaseInsensitive('ClickHouse') AS Hash;
Response
┌──────Hash─┐
│ 562180645 │
└───────────┘

ngramSimHashCaseInsensitiveUTF8

متوفرة منذ: v21.1.0 تُقسِّم سلسلة نصية بتشفير UTF-8 إلى n-grams من رموز ngramsize وتُرجع simhash الخاص بـ n-gram. وهي غير حساسة لحالة الأحرف. يمكن استخدامها لاكتشاف السلاسل شبه المكررة باستخدام bitHammingDistance. وكلما صغرت مسافة Hamming بين قيم simhashes المحسوبة لسلسلتين، زاد احتمال أن تكونا متطابقتين. الصياغة
ngramSimHashCaseInsensitiveUTF8(string[, ngramsize])
المعاملات
  • string — السلسلة النصية المراد حساب قيمة التجزئة لها. String
  • ngramsize — اختياري. حجم n-gram، أي عدد من 1 إلى 25. القيمة الافتراضية هي 3. UInt8
القيمة المُعادة يعيد قيمة التجزئة المحسوبة. UInt64 أمثلة مثال على الاستخدام
Query
SELECT ngramSimHashCaseInsensitiveUTF8('ClickHouse') AS Hash;
Response
┌───────Hash─┐
│ 1636742693 │
└────────────┘

ngramSimHashUTF8

أُضيف في: v21.1.0 يُقسِّم سلسلة مُرمَّزة بترميز UTF-8 إلى وحدات n-gram من ngramsize رمزًا، ويُرجع simhash الخاص بها. وهو حساس لحالة الأحرف. يمكن استخدامه لاكتشاف السلاسل شبه المكررة باستخدام bitHammingDistance. وكلما صغرت مسافة هامينغ بين قيم simhash المحسوبة لسلسلتين، زادت احتمالية أن تكونا متماثلتين. البنية
ngramSimHashUTF8(string[, ngramsize])
المعاملات
  • string — سلسلة نصية يُحسب لها hash. String
  • ngramsize — اختياري. حجم n-gram، وهو أي رقم من 1 إلى 25. القيمة الافتراضية هي 3. UInt8
القيمة المُعادة يرجع قيمة hash المحسوبة. UInt64 أمثلة مثال على الاستخدام
Query
SELECT ngramSimHashUTF8('ClickHouse') AS Hash;
Response
┌───────Hash─┐
│ 1628157797 │
└────────────┘

sipHash128

أُضيف في: v1.1.0 يشبه sipHash64، لكنه يُنتج قيمة hash بطول 128 بت، أي إن حالة xor-folding النهائية تُحسب حتى 128 بت.
استخدم sipHash128Reference في المشاريع الجديدةيختلف هذا المتغير ذو 128 بت عن التنفيذ المرجعي، وهو أضعف. وُجد هذا الإصدار لأنه، وقت كتابته، لم يكن هناك امتداد رسمي لـ SipHash بطول 128 بت. يُنصح في المشاريع الجديدة باستخدام sipHash128Reference.
الصيغة
sipHash128(arg1[, arg2, ...])
الوسيطات
  • arg1[, arg2, ...] — عدد متغيّر من وسيطات الإدخال التي تُحسَب لها قيمة التجزئة. Any
القيمة المعادة يعيد قيمة تجزئة SipHash بطول 128 بت. FixedString(16) أمثلة مثال على الاستخدام
Query
SELECT hex(sipHash128('foo', '\x01', 3));
Response
┌─hex(sipHash128('foo', '', 3))────┐
│ 9DE516A64A414D4B1B609415E4523F24 │
└──────────────────────────────────┘

sipHash128Keyed

أُضيف في: v23.2.0 مماثل لـ sipHash128، لكنه يأخذ أيضًا وسيطة مفتاح محددة صراحةً بدلًا من استخدام مفتاح ثابت.
استخدم sipHash128ReferenceKeyed في المشروعات الجديدةيختلف هذا الإصدار ذو 128 بت عن التنفيذ المرجعي، كما أنه أضعف. وتوجد هذه النسخة لأنه، وقت كتابتها، لم يكن هناك امتداد رسمي لـ SipHash بطول 128 بت. ويُرجَّح أن تستخدم المشروعات الجديدة sipHash128ReferenceKeyed.
الصيغة
sipHash128Keyed((k0, k1), [arg1, arg2, ...])
الوسائط
  • (k0, k1) — زوج مرتب من قيمتَي UInt64 يمثّل المفتاح. Tuple(UInt64, UInt64)
  • arg1[, arg2, ...] — عدد متغيّر من وسائط الإدخال التي تُحسب لها قيمة التجزئة. Any
القيمة المُعادة قيمة تجزئة SipHash بطول 128 بت من النوع FixedString(16). FixedString(16) أمثلة مثال على الاستخدام
Query
SELECT hex(sipHash128Keyed((506097522914230528, 1084818905618843912),'foo', '\x01', 3));
Response
┌─hex(sipHash128Keyed((506097522914230528, 1084818905618843912), 'foo', '', 3))─┐
│ B8467F65C8B4CFD9A5F8BD733917D9BF                                              │
└───────────────────────────────────────────────────────────────────────────────┘

sipHash128Reference

أُضيفت في: v23.2.0 مثل sipHash128، لكنه يطبّق خوارزمية 128 بت الخاصة بالمؤلفين الأصليين لـ SipHash. الصياغة
sipHash128Reference(arg1[, arg2, ...])
المعاملات
  • arg1[, arg2, ...] — عدد متغيّر من معاملات الإدخال التي تُحسب لها قيمة التجزئة. Any
القيمة المُعادة يعيد قيمة تجزئة SipHash محسوبة بطول 128 بت لمعاملات الإدخال. FixedString(16) أمثلة مثال على الاستخدام
Query
SELECT hex(sipHash128Reference('foo', '', 3));
Response
┌─hex(sipHash128Reference('foo', '', 3))─┐
│ 4D1BE1A22D7F5933C0873E1698426260       │
└────────────────────────────────────────┘

sipHash128ReferenceKeyed

أُضيف في: v23.2.0 مماثلة لـ sipHash128Reference، لكنها تأخذ أيضًا وسيطة مفتاح صريحة بدلًا من استخدام مفتاح ثابت. البنية
sipHash128ReferenceKeyed((k0, k1), arg1[, arg2, ...])
المعاملات
  • (k0, k1)Tuple من قيمتين تمثلان المفتاح Tuple(UInt64, UInt64)
  • arg1[, arg2, ...] — عدد متغير من معاملات الإدخال المطلوب حساب التجزئة لها. Any
القيمة المُعادة تُعيد قيمة تجزئة SipHash المحسوبة بطول 128 بت لمعاملات الإدخال. FixedString(16) أمثلة مثال على الاستخدام
Query
SELECT hex(sipHash128Reference('foo', '', 3));
Response
┌─hex(sipHash128Reference('foo', '', 3))─┐
│ 4D1BE1A22D7F5933C0873E1698426260       │
└────────────────────────────────────────┘

sipHash64

أُضيف في: v1.1.0 ينتج قيمة تجزئة SipHash بطول 64 بت. هذه دالة تجزئة تشفيرية. وهي تعمل بسرعة تزيد ثلاث مرات على الأقل عن دالة التجزئة MD5. تتعامل الدالة interprets مع جميع معلمات الإدخال على أنها سلاسل نصية، وتحسب قيمة تجزئة لكل واحدة منها. ثم تدمج قيم التجزئة باستخدام الخوارزمية التالية:
  1. تُدمَج قيمتا التجزئة الأولى والثانية في مصفوفة، ثم تُحسَب لهما قيمة تجزئة.
  2. تُحسَب قيمة التجزئة المحسوبة سابقًا وقيمة تجزئة معلمة الإدخال الثالثة بطريقة مماثلة.
  3. يتكرر هذا الحساب مع جميع قيم التجزئة المتبقية من الإدخال الأصلي.
قد تتساوى قيم التجزئة المحسوبة لقيم الإدخال نفسها رغم اختلاف أنواع الوسائط. ويؤثر ذلك، على سبيل المثال، في أنواع الأعداد الصحيحة ذات الأحجام المختلفة، وTuple المسمّى وغير المسمّى الذي يحتوي على البيانات نفسها، وMap والنوع المقابل Array(Tuple(key, value)) الذي يحتوي على البيانات نفسها.
البنية
sipHash64(arg1[, arg2, ...])
الوسيطات
  • arg1[, arg2, ...] — عدد متغير من وسيطات الإدخال. Any
القيمة المُعادة تعيد قيمة تجزئة محسوبة لوسيطات الإدخال. UInt64 أمثلة مثال على الاستخدام
Query
SELECT sipHash64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS SipHash, toTypeName(SipHash) AS type;
Response
┌──────────────SipHash─┬─type───┐
│ 11400366955626497465 │ UInt64 │
└──────────────────────┴────────┘

sipHash64Keyed

أُضيف في: v23.2.0 يشبه sipHash64، لكنه يأخذ أيضًا وسيطة مفتاح صريحة بدلًا من استخدام مفتاح ثابت. الصيغة
sipHash64Keyed((k0, k1), arg1[,arg2, ...])
الوسيطات
  • (k0, k1) — زوج Tuple من قيمتين يمثّل المفتاح. Tuple(UInt64, UInt64)
  • arg1[,arg2, ...] — عدد متغير من وسيطات الإدخال. Any
القيمة المعادة تعيد قيمة التجزئة المحسوبة لقيم الإدخال. UInt64 أمثلة مثال على الاستخدام
Query
SELECT sipHash64Keyed((506097522914230528, 1084818905618843912), array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS SipHash, toTypeName(SipHash) AS type;
Response
┌─────────────SipHash─┬─type───┐
│ 8017656310194184311 │ UInt64 │
└─────────────────────┴────────┘

wordShingleMinHash

أُضيفت في: v21.1.0 تُقسِّم سلسلة ASCII إلى أجزاء (shingles) تتألف من shinglesize كلمات، وتحسب قيم hash لكل shingle كلمات وتُرجع Tuple بهذه القيم. وتستخدم hashnum من أقل قيم hash لحساب أقل hash، وhashnum من أكبر قيم hash لحساب أكبر hash. وهي حساسة لحالة الأحرف. يمكن استخدامها لاكتشاف السلاسل شبه المتطابقة باستخدام tupleHammingDistance. وبالنسبة إلى سلسلتين، إذا كانت قيم hash المُعادة متطابقة لكلتا السلسلتين، فهذا يعني أن السلسلتين متطابقتان. الصيغة
wordShingleMinHash(string[, shinglesize, hashnum])
الوسائط
  • string — السلسلة النصية المطلوب حساب قيمة hash لها. String
  • shinglesize — اختياري. حجم word shingle، وأي قيمة من 1 إلى 25. القيمة الافتراضية هي 3. UInt8
  • hashnum — اختياري. عدد قيم hash الصغرى والكبرى المستخدمة لحساب النتيجة، وأي قيمة من 1 إلى 25. القيمة الافتراضية هي 6. UInt8
القيمة المعادة يعيد Tuple يحتوي على قيمتي hash — الصغرى والكبرى. Tuple(UInt64, UInt64) أمثلة مثال على الاستخدام
Query
SELECT wordShingleMinHash('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Tuple;
Response
┌─Tuple──────────────────────────────────────┐
│ (16452112859864147620,5844417301642981317) │
└────────────────────────────────────────────┘

wordShingleMinHashArg

أُضيف في: v1.1.0 يقسم سلسلة ASCII إلى أجزاء (shingles)، يتكوّن كل جزء منها من shinglesize كلمات، ويُرجع أجزاء shingles ذات الحد الأدنى والأقصى من قيم hash للكلمات، كما تحتسبها الدالة wordShingleMinHash باستخدام الإدخال نفسه. وهي حساسة لحالة الأحرف. الصيغة
wordShingleMinHashArg(string[, shinglesize, hashnum])
الوسائط
  • string — سلسلة نصية تُحسب لها قيمة التجزئة. String
  • shinglesize — اختياري. حجم مقطع الكلمات، أي رقم من 1 إلى 25. القيمة الافتراضية هي 3. UInt8
  • hashnum — اختياري. عدد قيم التجزئة الدنيا والعليا المستخدمة لحساب النتيجة، أي رقم من 1 إلى 25. القيمة الافتراضية هي 6. UInt8
القيمة المُعادة يعيد Tuple يحتوي على اثنين من Tuple، يحتوي كل منهما على hashnum من مقاطع الكلمات. Tuple(Tuple(String)) أمثلة مثال على الاستخدام
Query
SELECT wordShingleMinHashArg('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).', 1, 3) AS Tuple;
Response
┌─Tuple─────────────────────────────────────────────────────────────────┐
│ (('OLAP','database','analytical'),('online','oriented','processing')) │
└───────────────────────────────────────────────────────────────────────┘

wordShingleMinHashArgCaseInsensitive

أُضيفت في: v21.1.0 تُقسِّم سلسلة ASCII إلى أجزاء (shingles) يتكوّن كل جزء منها من shinglesize كلمات، وتُرجع الـ shingles ذات أقل وأكبر قيم hash للكلمات، كما تحسبها الدالة wordShingleMinHashCaseInsensitive باستخدام الإدخال نفسه. وهي لا تراعي حالة الأحرف. الصيغة
wordShingleMinHashArgCaseInsensitive(string[, shinglesize, hashnum])
الوسيطات
  • string — سلسلة نصية تُحسب لها قيمة التجزئة. String
  • shinglesize — اختياري. حجم شينغل الكلمات، أي رقم من 1 إلى 25. القيمة الافتراضية هي 3. UInt8
  • hashnum — اختياري. عدد أقل وأعلى قيم التجزئة المستخدمة لحساب النتيجة، أي رقم من 1 إلى 25. القيمة الافتراضية هي 6. UInt8
القيمة المُعادة يُرجع قيمة Tuple تحتوي على قيمتَي Tuple، تحتوي كل منهما على hashnum من شينغل الكلمات. Tuple(Tuple(String)) أمثلة مثال على الاستخدام
Query
SELECT wordShingleMinHashArgCaseInsensitive('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).', 1, 3) AS Tuple;
Response
┌─Tuple──────────────────────────────────────────────────────────────────┐
│ (('queries','database','analytical'),('oriented','processing','DBMS')) │
└────────────────────────────────────────────────────────────────────────┘

wordShingleMinHashArgCaseInsensitiveUTF8

أُضيف في: v21.1.0 تقسم سلسلة UTF-8 إلى أجزاء (shingles) يتألف كل منها من shinglesize كلمة، وتُرجع الـ shingles ذات أدنى وأعلى قيم hash للكلمات، كما تحسبها الدالة wordShingleMinHashCaseInsensitiveUTF8 للمدخل نفسه. وهي غير حساسة لحالة الأحرف. البنية
wordShingleMinHashArgCaseInsensitiveUTF8(string[, shinglesize, hashnum])
المعاملات
  • string — سلسلة نصية يُراد حساب قيمة التجزئة لها. String
  • shinglesize — اختياري. حجم تتابع الكلمات، وأي رقم من 1 إلى 25. القيمة الافتراضية هي 3. UInt8
  • hashnum — اختياري. عدد قيم التجزئة الصغرى والكبرى المستخدمة لحساب النتيجة، وأي رقم من 1 إلى 25. القيمة الافتراضية هي 6. UInt8
القيمة المُعادة تعيد tuple تتكوّن من tupleين، يحتوي كلٌّ منهما على hashnum من تتابعات الكلمات. Tuple(Tuple(String)) أمثلة مثال على الاستخدام
Query
SELECT wordShingleMinHashArgCaseInsensitiveUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).', 1, 3) AS Tuple;
Response
┌─Tuple──────────────────────────────────────────────────────────────────┐
│ (('queries','database','analytical'),('oriented','processing','DBMS')) │
└────────────────────────────────────────────────────────────────────────┘

wordShingleMinHashArgUTF8

أُضيف في: v21.1.0 يقسّم سلسلة UTF-8 إلى مقاطع (shingles)، يتألف كل منها من shinglesize كلمات، ويُرجع الـ shingles ذات أصغر وأكبر hash للكلمات، كما تحسبها الدالة wordShingleMinHashUTF8 باستخدام المُدخل نفسه. وهي حساسة لحالة الأحرف. الصياغة
wordShingleMinHashArgUTF8(string[, shinglesize, hashnum])
الوسيطات
  • string — سلسلة نصية يُحسب لها hash. String
  • shinglesize — اختياري. حجم شينغل الكلمات، أي عدد من 1 إلى 25. القيمة الافتراضية هي 3. UInt8
  • hashnum — اختياري. عدد قيم hash الصغرى والكبرى المستخدمة لحساب النتيجة، أي عدد من 1 إلى 25. القيمة الافتراضية هي 6. UInt8
القيمة المُعادة تُرجِع قيمة من النوع Tuple تحتوي على Tupleين، يضم كلٌّ منهما hashnum من شينغل الكلمات. Tuple(Tuple(String)) أمثلة مثال على الاستخدام
Query
SELECT wordShingleMinHashArgUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).', 1, 3) AS Tuple;
Response
┌─Tuple─────────────────────────────────────────────────────────────────┐
│ (('OLAP','database','analytical'),('online','oriented','processing')) │
└───────────────────────────────────────────────────────────────────────┘

wordShingleMinHashCaseInsensitive

أُضيفت في: v21.1.0 تُقسِّم سلسلة ASCII إلى أجزاء (shingles) من shinglesize كلمات، وتحسب قيم hash لكل word shingle وتُرجع tuple بهذه القيم. وتستخدم أقل hashnum من قيم hash لحساب قيمة hash الدنيا، وأعلى hashnum من قيم hash لحساب قيمة hash القصوى. وهي غير حساسة لحالة الأحرف. يمكن استخدامها لاكتشاف السلاسل شبه المكررة باستخدام tupleHammingDistance. وبالنسبة إلى سلسلتين، إذا كانت قيم hash المُعادة متطابقة لكلتا السلسلتين، فإن هاتين السلسلتين متطابقتان. البنية
wordShingleMinHashCaseInsensitive(string[, shinglesize, hashnum])
المعاملات
  • string — سلسلة نصية يُحسَب لها hash. String
  • shinglesize — اختياري. حجم word shingle، أي عدد من 1 إلى 25. القيمة الافتراضية هي 3. UInt8
  • hashnum — اختياري. عدد قيم hash الصغرى والكبرى المستخدمة في حساب النتيجة، أي عدد من 1 إلى 25. القيمة الافتراضية هي 6. UInt8
القيمة المُعادة تعيد قيمة Tuple تضم قيمتي hash — الصغرى والكبرى. Tuple(UInt64, UInt64) أمثلة مثال على الاستخدام
Query
SELECT wordShingleMinHashCaseInsensitive('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Tuple;
Response
┌─Tuple─────────────────────────────────────┐
│ (3065874883688416519,1634050779997673240) │
└───────────────────────────────────────────┘

wordShingleMinHashCaseInsensitiveUTF8

أُضيفت في: v21.1.0 تقسّم سلسلة UTF-8 إلى أجزاء (shingles) يتكوّن كل منها من shinglesize كلمات، وتحسب قيم hash لكل word shingle وتُرجع Tuple يحتوي على هذه القيم. وتستخدم hashnum من أصغر قيم hash لحساب الحد الأدنى للـhash، وhashnum من أكبر قيم hash لحساب الحد الأقصى للـhash. وهي غير حساسة لحالة الأحرف. يمكن استخدامها لاكتشاف السلاسل شبه المتطابقة باستخدام tupleHammingDistance. وبالنسبة إلى سلسلتين، إذا كانت قيم hash المُعادة متطابقة لكليهما، فإن هاتين السلسلتين متطابقتان. البنية
wordShingleMinHashCaseInsensitiveUTF8(string[, shinglesize, hashnum])
الوسيطات
  • string — قيمة String يُراد حساب hash لها. String
  • shinglesize — اختياري. حجم word shingle، وهو أي رقم من 1 إلى 25. القيمة الافتراضية هي 3. UInt8
  • hashnum — اختياري. عدد قيم hash الصغرى والكبرى المستخدمة لحساب النتيجة، وهو أي رقم من 1 إلى 25. القيمة الافتراضية هي 6. UInt8
القيمة المُعادة يعيد قيمة Tuple تحتوي على قيمتي hash — الصغرى والكبرى. Tuple(UInt64, UInt64) أمثلة مثال على الاستخدام
Query
SELECT wordShingleMinHashCaseInsensitiveUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Tuple;
Response
┌─Tuple─────────────────────────────────────┐
│ (3065874883688416519,1634050779997673240) │
└───────────────────────────────────────────┘

wordShingleMinHashUTF8

أُضيف في: v21.1.0 يُقسِّم سلسلة UTF-8 إلى مقاطع (shingles) تتكوّن من shinglesize كلمات، ويحسب قيم hash لكل word shingle ويُرجع tuple يحتوي على قيم hash هذه. ويستخدم أصغر hashnum من قيم hash لحساب الحد الأدنى لـ hash، وأكبر hashnum من قيم hash لحساب الحد الأقصى لـ hash. وهو حسّاس لحالة الأحرف. يمكن استخدامه لاكتشاف السلاسل شبه المتطابقة باستخدام tupleHammingDistance. بالنسبة إلى سلسلتين، إذا كانت قيم hash المُعادة متطابقة لكليهما، فهذا يعني أن السلسلتين متطابقتان. البنية
wordShingleMinHashUTF8(string[, shinglesize, hashnum])
المعاملات
  • string — سلسلة نصية يُحسَب لها hash. String
  • shinglesize — اختياري. حجم word shingle، أي عدد من 1 إلى 25. القيمة الافتراضية هي 3. UInt8
  • hashnum — اختياري. عدد قيم hash الدنيا والعليا المستخدمة لحساب النتيجة، أي عدد من 1 إلى 25. القيمة الافتراضية هي 6. UInt8
القيمة المُعادة يعيد Tuple يحتوي على قيمتي hash — الدنيا والعليا. Tuple(UInt64, UInt64) أمثلة مثال على الاستخدام
Query
SELECT wordShingleMinHashUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Tuple;
Response
┌─Tuple──────────────────────────────────────┐
│ (16452112859864147620,5844417301642981317) │
└────────────────────────────────────────────┘

wordShingleSimHash

أُضيفت في: v21.1.0 تُقسِّم سلسلة ASCII إلى مقاطع (shingles) من shinglesize كلمات وتُرجع simhash لشينغل الكلمات. وهي حساسة لحالة الأحرف. يمكن استخدامها لاكتشاف السلاسل شبه المتطابقة باستخدام bitHammingDistance. كلما صغرت مسافة هامينغ بين قيم simhash المحسوبة لسلسلتين، زاد احتمال أن تكون هاتان السلسلتان متماثلتين. الصيغة
wordShingleSimHash(string[, shinglesize])
المعاملات
  • string — سلسلة تُحسب لها قيمة التجزئة. String
  • shinglesize — اختياري. حجم مجموعة كلمات متجاورة، أي قيمة من 1 إلى 25. القيمة الافتراضية هي 3. UInt8
القيمة المعادة تعيد قيمة التجزئة المحسوبة. UInt64 أمثلة مثال على الاستخدام
Query
SELECT wordShingleSimHash('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Hash;
Response
┌───────Hash─┐
│ 2328277067 │
└────────────┘

wordShingleSimHashCaseInsensitive

قُدِّمت في: v21.1.0 تقسّم سلسلة ASCII إلى أجزاء (shingles)، يتكوّن كل منها من shinglesize كلمات، وتُرجع قيمة simhash الخاصة بـ word shingle. وهي غير حساسة لحالة الأحرف. يمكن استخدامها لاكتشاف السلاسل شبه المتطابقة باستخدام bitHammingDistance. وكلما صغرت مسافة هامنغ بين قيم simhashes المحسوبة لسلسلتين، زاد احتمال أن تكونا متماثلتين. الصياغة
wordShingleSimHashCaseInsensitive(string[, shinglesize])
الوسيطات
  • string — السلسلة النصية المراد حساب قيمة التجزئة لها. String
  • shinglesize — اختياري. حجم word shingle، ويمكن أن يكون أي رقم من 1 إلى 25. القيمة الافتراضية هي 3. UInt8
القيمة المُعادة تُرجع قيمة التجزئة المحسوبة. UInt64 أمثلة مثال على الاستخدام
Query
SELECT wordShingleSimHashCaseInsensitive('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Hash;
Response
┌───────Hash─┐
│ 2194812424 │
└────────────┘

wordShingleSimHashCaseInsensitiveUTF8

أُضيفت في: v1.1.0 تقسّم سلسلة نصية بترميز UTF-8 إلى أجزاء (shingles) من shinglesize كلمات، وتُرجع simhash لـ word shingle. وهي غير حساسة لحالة الأحرف. يمكن استخدامها لاكتشاف السلاسل شبه المتطابقة باستخدام bitHammingDistance. وكلما صغرت مسافة Hamming المحسوبة لـ simhashes الخاصتين بسلسلتين، زاد احتمال أن تكون هاتان السلسلتان متطابقتين. الصيغة
wordShingleSimHashCaseInsensitiveUTF8(string[, shinglesize])
الوسيطات
  • string — السلسلة النصية المراد حساب قيمة التجزئة لها. String
  • shinglesize — اختياري. حجم تسلسل الكلمات المتجاورة، أي عدد من 1 إلى 25. القيمة الافتراضية هي 3. UInt8
القيمة المعادة تُرجِع قيمة التجزئة المحسوبة. UInt64 أمثلة مثال على الاستخدام
Query
SELECT wordShingleSimHashCaseInsensitiveUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Hash;
Response
┌───────Hash─┐
│ 2194812424 │
└────────────┘

wordShingleSimHashUTF8

أُضيفت في: v21.1.0 تقسّم سلسلة UTF-8 إلى أجزاء (shingles) مكوّنة من shinglesize كلمات، وتُرجع simhash لـ word shingle. وهي case sensitive. يمكن استخدامها لاكتشاف semi-duplicate strings باستخدام bitHammingDistance. وكلما صغرت Hamming distance لقيم simhashes المحسوبة لسلسلتين، زاد احتمال أن تكون هاتان السلسلتان متماثلتين. الصيغة
wordShingleSimHashUTF8(string[, shinglesize])
الوسائط
  • string — السلسلة النصية المطلوب حساب قيمة التجزئة لها. String
  • shinglesize — اختياري. حجم مجموعة كلمات متجاورة، أي رقم من 1 إلى 25. القيمة الافتراضية هي 3. UInt8
القيمة المُعادة يعيد قيمة التجزئة المحسوبة. UInt64 أمثلة مثال على الاستخدام
Query
SELECT wordShingleSimHashUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Hash;
Response
┌───────Hash─┐
│ 2328277067 │
└────────────┘

wyHash64

أُضيف في: v22.7.0 يحسب قيمة هاش 64 بت باستخدام wyHash64. الصيغة
wyHash64(arg)
الوسيطات
  • arg — وسيط من النوع String تُحسَب له قيمة hash. String
القيمة المُعادة يعيد قيمة hash محسوبة بطول 64 بت من النوع UInt64 أمثلة مثال على الاستخدام
Query
SELECT wyHash64('ClickHouse') AS Hash;
Response
12336419557878201794

xxHash32

قُدِّمت في: v20.1.0 تحسب قيمة xxHash من سلسلة نصية. للاطلاع على الإصدار ذي 64 بت، راجع xxHash64 البنية
xxHash32(arg)
الوسيطات
  • arg — سلسلة الإدخال المطلوب تجزئتها. String
القيمة المُعادة يعيد قيمة التجزئة المحسوبة المكوّنة من 32 بت لسلسلة الإدخال. UInt32 أمثلة مثال على الاستخدام
Query
SELECT xxHash32('Hello, world!');
Response
┌─xxHash32('Hello, world!')─┐
│                 834093149 │
└───────────────────────────┘

xxHash64

أُضيف في: v20.1.0 يحسب قيمة xxHash من سلسلة نصية. للاطلاع على الإصدار ذي 32 بت، انظر xxHash32 البنية
xxHash64(arg)
الوسيطات
  • arg — سلسلة الإدخال المراد تجزئتها. String
القيمة المعادة تعيد قيمة التجزئة المحسوبة لسلسلة الإدخال بطول 64 بت. UInt64 أمثلة مثال على الاستخدام
Query
SELECT xxHash64('Hello, world!');
Response
┌─xxHash64('Hello, world!')─┐
│      17691043854468224118 │
└───────────────────────────┘

xxh3

استُحدثت في: v22.12.0 تحسب قيمة تجزئة XXH3 بطول 64 بت. البنية
xxh3(expr)
الوسائط
  • expr — قائمة من التعبيرات من أي نوع بيانات. Any
القيمة المُعادة تعيد قيمة التجزئة xxh3 المحسوبة ذات 64 بت UInt64 أمثلة مثال على الاستخدام
Query
SELECT xxh3('ClickHouse')
Response
18009318874338624809

xxh3_128

استُحدث في: v26.2.0 يحسب قيمة تجزئة XXH3 بطول 128 بت. الصيغة
xxh3_128(expr)
الوسيطات
  • expr — قائمة بالتعبيرات من أي نوع بيانات. Any
القيمة المعادة يعيد قيمة التجزئة xxh3 المحسوبة بطول 128 بت UInt128 أمثلة مثال على الاستخدام
Query
SELECT hex(xxh3_128('ClickHouse'))
Response
3A038784C52804B4DBA43A038784C528
آخر تعديل في ٢٥ يونيو ٢٠٢٦