يمكن استخدام دوال التجزئة لإعادة خلط العناصر بطريقة شبه عشوائية وحتمية.
Simhash هي دالة hash تُرجع قيم hash متقاربة للوسيطات المتقاربة (المتشابهة).
تقبل معظم دوال التجزئة أي عدد من الوسيطات، مهما كانت أنواعها.
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
SELECT hex(BLAKE3('ABC'))┌─hex(BLAKE3('ABC'))───────────────────────────────────────────────┐
│ D1717274597CF0289694F75D96D444B992A096F1AFD8E7BBFA6EBB1D360FEDFC │
└──────────────────────────────────────────────────────────────────┘MD4
أُضيف في: v21.11.0
يحسب تجزئة MD4 للسلسلة النصية المعطاة.
الصيغة
MD4(s)الوسائط
s— سلسلة الإدخال المطلوب حساب قيمة hash لها.String
القيمة المُعادة
تُرجع قيمة hash MD4 لسلسلة الإدخال المحددة كسلسلة ثابتة الطول. FixedString(16)
أمثلة
مثال على الاستخدام
SELECT HEX(MD4('abc'));┌─HEX(MD4('abc'))──────────────────┐
│ A448017AAF21D8525FC10AE87AA6729D │
└──────────────────────────────────┘MD5
أُضيف في: v1.1.0
يحسب قيمة hash MD5 للسلسلة النصية المُعطاة.
الصيغة
MD5(s)الوسيطات
s— سلسلة الإدخال النصية المطلوب تجزئتها.String
القيمة المعادة
يعيد قيمة تجزئة MD5 لسلسلة الإدخال المحددة على هيئة سلسلة نصية ثابتة الطول. FixedString(16)
أمثلة
مثال على الاستخدام
SELECT HEX(MD5('abc'));┌─HEX(MD5('abc'))──────────────────┐
│ 900150983CD24FB0D6963F7D28E17F72 │
└──────────────────────────────────┘RIPEMD160
أُضيف في: v24.10.0
يحسب قيمة RIPEMD-160 hash للسلسلة النصية المُعطاة.
البنية
RIPEMD160(s)الوسائط
s— سلسلة الإدخال المطلوب تجزئتها.String
القيمة المُعادة
تُرجع قيمة RIPEMD160 لسلسلة الإدخال المحددة على هيئة سلسلة ثابتة الطول. FixedString(20)
أمثلة
مثال على الاستخدام
SELECT HEX(RIPEMD160('The quick brown fox jumps over the lazy dog'));┌─HEX(RIPEMD160('The quick brown fox jumps over the lazy dog'))─┐
│ 37F332F68DB77BD9D7EDD4969571AD671CF9DD3B │
└───────────────────────────────────────────────────────────────┘SHA1
أُضيفت في: v1.1.0
تحسب قيمة تجزئة SHA1 للسلسلة النصية المُعطاة.
الصيغة
SHA1(s)الوسائط
s— سلسلة الإدخال النصية المراد تجزئتهاString
القيمة المُعادة
يُرجع تجزئة SHA1 لسلسلة الإدخال النصية المحددة على شكل سلسلة نصية ثابتة الطول. FixedString(20)
أمثلة
مثال على الاستخدام
SELECT HEX(SHA1('abc'));┌─HEX(SHA1('abc'))─────────────────────────┐
│ A9993E364706816ABA3E25717850C26C9CD0D89D │
└──────────────────────────────────────────┘SHA224
أُضيف في: v1.1.0
يحسب قيمة SHA224 hash للسلسلة النصية المُعطاة.
الصيغة
SHA224(s)الوسائط
s— قيمة الإدخال المراد تجزئتها.String
القيمة المُعادة
تُرجع قيمة تجزئة SHA224 لسلسلة الإدخال المعطاة في صورة سلسلة ثابتة الطول. FixedString(28)
أمثلة
مثال على الاستخدام
SELECT HEX(SHA224('abc'));┌─HEX(SHA224('abc'))───────────────────────────────────────┐
│ 23097D223405D8228642A477BDA255B32AADBCE4BDA0B3F7E36C9DA7 │
└──────────────────────────────────────────────────────────┘SHA256
أُضيف في: v1.1.0
يحسب تجزئة SHA256 للسلسلة النصية المُعطاة.
الصيغة
SHA256(s)المعاملات
s— سلسلة الإدخال المطلوب تجزئتها.String
القيمة المُعادة
تعيد تجزئة SHA256 لسلسلة الإدخال المحددة على هيئة سلسلة ثابتة الطول. FixedString(32)
أمثلة
مثال على الاستخدام
SELECT HEX(SHA256('abc'));┌─HEX(SHA256('abc'))───────────────────────────────────────────────┐
│ BA7816BF8F01CFEA414140DE5DAE2223B00361A396177A9CB410FF61F20015AD │
└──────────────────────────────────────────────────────────────────┘SHA384
أُضيفت في: v1.1.0
تحسب قيمة تجزئة SHA384 للسلسلة النصية المحددة.
البنية
SHA384(s)الوسائط
s— سلسلة الإدخال المطلوب تجزئتها.String
القيمة المعادة
يعيد قيمة تجزئة SHA384 لسلسلة الإدخال المحددة على هيئة سلسلة ثابتة الطول. FixedString(48)
أمثلة
مثال على الاستخدام
SELECT HEX(SHA384('abc'));┌─HEX(SHA384('abc'))───────────────────────────────────────────────────────────────────────────────┐
│ CB00753F45A35E8BB5A03D699AC65007272C32AB0EDED1631A8B605A43FF5BED8086072BA1E7CC2358BAECA134C825A7 │
└──────────────────────────────────────────────────────────────────────────────────────────────────┘SHA512
أُضيف في: v1.1.0
يحسب تجزئة SHA512 للسلسلة النصية المُعطاة.
الصيغة
SHA512(s)المعاملات
s— سلسلة الإدخال المطلوب تطبيق دالة التجزئة عليهاString
القيمة المُعادة
تعيد دالة SHA512 قيمة تجزئة SHA512 لسلسلة الإدخال المحددة على شكل سلسلة نصية ثابتة الطول. FixedString(64)
أمثلة
مثال على الاستخدام
SELECT HEX(SHA512('abc'));┌─HEX(SHA512('abc'))───────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ DDAF35A193617ABACC417349AE20413112E6FA4E89A97EA20A9EEEE64B55D39A2192992A274FC1A836BA3C23A3FEEBBD454D4423643CE80E2A9AC94FA54CA49F │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘SHA512_256
أُضيف في: v1.1.0
يحسب قيمة hash SHA512_256 للسلسلة النصية المُعطاة.
البنية
SHA512_256(s)الوسيطات
s— سلسلة الإدخال المطلوب تجزئتها.String
القيمة المُعادة
تُرجع دالة SHA512_256 قيمة تجزئة سلسلة الإدخال المحددة على هيئة سلسلة ذات طول ثابت. FixedString(32)
أمثلة
مثال على الاستخدام
SELECT HEX(SHA512_256('abc'));┌─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. UInt64
أمثلة
مثال على الاستخدام
SELECT URLHash('https://www.clickhouse.com')┌─URLHash('https://www.clickhouse.com')─┐
│ 13614512636072854701 │
└───────────────────────────────────────┘قيمة تجزئة URL عند المستوى المحدد
SELECT URLHash('https://www.clickhouse.com/docs', 0);
SELECT URLHash('https://www.clickhouse.com/docs', 1);13614512636072854701
13167253331440520598cityHash64
أُضيف في: v1.1.0
ينتج قيمة تجزئة CityHash بطول 64 بت.
هذه دالة تجزئة سريعة وغير مشفّرة. تستخدم خوارزمية CityHash مع معاملات السلاسل النصية، وتستخدم دالة تجزئة سريعة وغير مشفّرة خاصة بالتنفيذ مع المعاملات ذات أنواع البيانات الأخرى. تستخدم الدالة combinator الخاص بـ CityHash للحصول على النتائج النهائية.
البنية
cityHash64(arg1[, arg2, ...])الوسائط
arg1[, arg2, ...]— عدد متغيّر من وسائط الإدخال المطلوب حساب قيمة التجزئة لها.Any
القيمة المعادة
تعيد قيمة التجزئة المحسوبة لوسائط الإدخال. UInt64
أمثلة
مثال على الاستدعاء
SELECT cityHash64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS CityHash, toTypeName(CityHash) AS type;┌─────────────CityHash─┬─type───┐
│ 17177535963988450974 │ UInt64 │
└──────────────────────┴────────┘حساب المجموع الاختباري للجدول بالكامل مع مراعاة ترتيب الصفوف
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;┌─groupBitXor(cityHash64(id, name, age, city))─┐
│ 11639977218258521182 │
└──────────────────────────────────────────────┘farmFingerprint64
أُضيف في: v20.12.0
يُنتج قيمة FarmHash من 64 بت باستخدام الطريقة Fingerprint64.
الصيغة
farmFingerprint64(arg1[, arg2, ...])الوسيطات
arg1[, arg2, ...]— عدد متغيّر من وسيطات الإدخال المطلوب حساب قيمة التجزئة لها.Any
القيمة المُعادة
تُعيد قيمة التجزئة المحسوبة لوسيطات الإدخال. UInt64
أمثلة
مثال على الاستخدام
SELECT farmFingerprint64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS FarmFingerprint, toTypeName(FarmFingerprint) AS type;┌──────FarmFingerprint─┬─type───┐
│ 16673609057812504858 │ UInt64 │
└──────────────────────┴────────┘farmHash64
أُضيف في: v1.1.0
ينتج قيمة FarmHash بطول 64 بت باستخدام الطريقة Hash64.
البنية
farmHash64(arg1[, arg2, ...])الوسيطات
arg1[, arg2, ...]— عدد متغيّر من وسيطات الإدخال المراد حساب قيمة التجزئة لها.Any
القيمة المعادة
تُرجِع قيمة التجزئة المحسوبة لوسيطات الإدخال. UInt64
أمثلة
مثال على الاستخدام
SELECT farmHash64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS FarmHash, toTypeName(FarmHash) AS type;┌────────────FarmHash─┬─type───┐
│ 2663412879246289891 │ UInt64 │
└─────────────────────┴────────┘gccMurmurHash
أُضيف في: v20.1.0
يحسب تجزئة MurmurHash2 ذات 64 بت لقيمة الإدخال باستخدام البذرة نفسها المستخدمة في GCC.
وهو قابل للنقل بين إصدارات البناء الخاصة بـ Clang وGCC.
الصياغة
gccMurmurHash(arg1[, arg2, ...])المعاملات
arg1[, arg2, ...]— عدد متغير من المعاملات المطلوب حساب قيمة التجزئة لها.Any
القيمة المُعادة
تعيد قيمة التجزئة المحسوبة لمعاملات الإدخال. UInt64
أمثلة
مثال على الاستخدام
SELECT
gccMurmurHash(1, 2, 3) AS res1,
gccMurmurHash(('a', [1, 2, 3], 4, (4, ['foo', 'bar'], 1, (1, 2)))) AS res2┌─────────────────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
أمثلة
مثال على الاستخدام
SELECT HEX(halfMD5('abc', 'cde', 'fgh'));┌─HEX(halfMD5('abc', 'cde', 'fgh'))─┐
│ 2C9506B7374CFAF4 │
└───────────────────────────────────┘hiveHash
قُدِّم في: v20.1.0
يحسب قيمة "HiveHash" من سلسلة نصية.
وهو ببساطة JavaHash مع تصفير بتات الإشارة.
تُستخدم هذه الدالة في Apache Hive للإصدارات السابقة لـ 3.0.
الصياغة
hiveHash(arg)الوسائط
arg— سلسلة الإدخال المراد حساب hash لها.String
القيمة المُعادة
تُرجع قيمة "hive hash" المحسوبة لسلسلة الإدخال. Int32
أمثلة
مثال على الاستخدام
SELECT hiveHash('Hello, world!');┌─hiveHash('Hello, world!')─┐
│ 267439093 │
└───────────────────────────┘icebergHash
أُضيفت في: v25.5.0
ينفّذ منطق تحويل التجزئة في Iceberg
البنية
icebergHash(value)الوسائط
value— القيمة المصدر المطلوب حساب تجزئتها من النوعIntegerأوBoolأوDecimalأوFloat*أوStringأوFixedStringأوUUIDأوDateأوTimeأوDateTime
القيمة المُعادة
تعيد قيمة تجزئة Murmur3 بطول 32 بت، بإصدار x86، وببذرة قدرها 0 من النوع Int32
أمثلة
مثال
SELECT icebergHash(1.0 :: Float32)-142385009intHash32
أُضيف في: v1.1.0
يحسب قيمة hash من 32 بتًا لعدد صحيح.
دالة الـ hash سريعة نسبيًا، لكنها ليست دالة hash تشفيرية.
البنية
intHash32(arg)الوسائط
arg— عدد صحيح يُراد تجزئته.(U)Int*
القيمة المعادة
يعيد رمز التجزئة المحسوب بطول 32 بت للعدد الصحيح المُدخل UInt32
أمثلة
مثال على الاستخدام
SELECT intHash32(42);┌─intHash32(42)─┐
│ 1228623923 │
└───────────────┘intHash64
أُضيف في: v1.1.0
يحسب قيمة hash من نوع 64-bit لعدد صحيح.
تُعد دالة hash هذه سريعة نسبيًا (وأسرع حتى من intHash32)، لكنها ليست دالة hash تشفيرية.
الصياغة
intHash64(int)المعاملات
int— عدد صحيح لإجراء التجزئة عليه.(U)Int*
القيمة المعادة
قيمة تجزئة بطول 64 بت. UInt64
أمثلة
مثال على الاستخدام
SELECT intHash64(42);┌────────intHash64(42)─┐
│ 11490350930367293593 │
└──────────────────────┘javaHash
أُضيف في: v20.1.0
يحسب قيمة JavaHash لـ:
الصياغة
javaHash(arg)الوسيطات
arg— قيمة الإدخال المطلوب تجزئتها.Any
القيمة المعادة
يعيد قيمة التجزئة المحسوبة لـ arg Int32
أمثلة
مثال استخدام 1
SELECT javaHash(toInt32(123));┌─javaHash(toInt32(123))─┐
│ 123 │
└────────────────────────┘مثال استخدام 2
SELECT javaHash('Hello, world!');┌─javaHash('Hello, world!')─┐
│ -1880044555 │
└───────────────────────────┘javaHashUTF16LE
أُضيفت في: v20.1.0
يحسب JavaHash من سلسلة نصية، بافتراض أنها تتضمن بايتات تمثل سلسلة نصية بترميز UTF-16LE.
الصيغة
javaHashUTF16LE(arg)الوسائط
arg— سلسلة بترميز UTF-16LE.String
القيمة المُعادة
تعيد قيمة التجزئة المحسوبة للسلسلة المرمّزة بترميز UTF-16LE. Int32
أمثلة
مثال استخدام
SELECT javaHashUTF16LE(convertCharset('test', 'utf-8', 'utf-16le'));┌─javaHashUTF16LE(convertCharset('test', 'utf-8', 'utf-16le'))─┐
│ 3556498 │
└──────────────────────────────────────────────────────────────┘jumpConsistentHash
أُضيفت في: v1.1.0
يحسب التجزئة المتسقة بالقفز لعدد صحيح.
الصيغة
jumpConsistentHash(key, buckets)الوسيطات
القيمة المعادة
يعيد قيمة التجزئة المحسوبة. Int32
أمثلة
مثال على الاستخدام
SELECT jumpConsistentHash(256, 4)┌─jumpConsistentHash(256, 4)─┐
│ 3 │
└────────────────────────────┘kafkaMurmurHash
أُضيف في: v23.4.0
يحسب تجزئة MurmurHash2 ذات 32 بت لقيمة الإدخال باستخدام نفس seed المستخدم في Kafka، ومن دون أعلى بت، ليكون متوافقًا مع Default Partitioner.
الصيغة
kafkaMurmurHash(arg1[, arg2, ...])الوسيطات
arg1[, arg2, ...]— عدد متغيّر من المعاملات المطلوب حساب قيمة التجزئة لها.Any
القيمة المُعادة
تُرجع قيمة التجزئة المحسوبة لمعاملات الإدخال. UInt32
أمثلة
مثال على الاستخدام
SELECT
kafkaMurmurHash('foobar') AS res1,
kafkaMurmurHash(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS res2┌───────res1─┬─────res2─┐
│ 1357151166 │ 85479775 │
└────────────┴──────────┘keccak256
أُضيف في: v25.4.0
يحسب التجزئة التشفيرية Keccak-256 للسلسلة النصية المعطاة. تُستخدم دالة التجزئة هذه على نطاق واسع في تطبيقات البلوك تشين، وخصوصًا Ethereum.
الصياغة
keccak256(message)الوسائط
message— سلسلة الإدخال المطلوب حساب hash لها.String
القيمة المُعادة
تُرجع قيمة hash Keccak-256 بطول 32 بايت لسلسلة الإدخال على هيئة سلسلة ثابتة الطول. FixedString(32)
أمثلة
مثال استخدام
SELECT hex(keccak256('hello'))┌─hex(keccak256('hello'))──────────────────────────────────────────┐
│ 1C8AFF950685C2ED4BC3174F3472287B56D9517B9C948127319A09A7A36DEAC8 │
└──────────────────────────────────────────────────────────────────┘kostikConsistentHash
أُضيف في: v22.6.0
خوارزمية تجزئة متسقة بزمن ومساحة O(1) طوّرها Konstantin 'Kostik' Oblakov.
تكون فعّالة فقط عندما يكون n <= 32768.
الصياغة
kostikConsistentHash(input, n)الأسماء البديلة: yandexConsistentHash
المعاملات
القيمة المُعادة
يعيد قيمة التجزئة المحسوبة. UInt16
أمثلة
مثال على الاستخدام
SELECT kostikConsistentHash(16045690984833335023, 2);┌─kostikConsistentHash(16045690984833335023, 2)─┐
│ 1 │
└───────────────────────────────────────────────┘metroHash64
أُضيف في: v1.1.0
ينتج قيمة hash من MetroHash بطول 64 بت.
البنية
metroHash64(arg1[, arg2, ...])الوسيطات
arg1[, arg2, ...]— عدد متغير من وسيطات الإدخال المراد حساب قيمة التجزئة لها.Any
القيمة المعادة
يعيد قيمة التجزئة المحسوبة لوسيطات الإدخال. UInt64
أمثلة
مثال على الاستخدام
SELECT metroHash64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS MetroHash, toTypeName(MetroHash) AS type;┌────────────MetroHash─┬─type───┐
│ 16292826582821303855 │ UInt64 │
└──────────────────────┴────────┘murmurHash2_32
أُضيف في: v18.5.0
يحسب قيمة تجزئة MurmurHash2 لقيمة الإدخال.
البنية
murmurHash2_32(arg1[, arg2, ...])الوسيطات
arg1[, arg2, ...]— عدد متغيّر من وسيطات الإدخال المطلوب حساب قيمة التجزئة لها.Any
القيمة المُعادة
تعيد قيمة التجزئة المحسوبة لوسيطات الإدخال. UInt32
أمثلة
مثال على الاستخدام
SELECT murmurHash2_32(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS MurmurHash2, toTypeName(MurmurHash2) AS type;┌─MurmurHash2─┬─type───┐
│ 2947095100 │ UInt32 │
└─────────────┴────────┘murmurHash2_64
أُضيف في: v18.10.0
يحسب قيمة التجزئة MurmurHash2 لقيمة الإدخال.
البنية
murmurHash2_64(arg1[, arg2, ...])الوسيطات
arg1[, arg2, ...]— عدد متغير من وسيطات الإدخال التي تُحسب لها قيمة التجزئة.Any
القيمة المُعادة
تعيد قيمة التجزئة المحسوبة لوسيطات الإدخال. UInt64
أمثلة
مثال على الاستخدام
SELECT murmurHash2_64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS MurmurHash2, toTypeName(MurmurHash2) AS type;┌──────────MurmurHash2─┬─type───┐
│ 16479669305841206229 │ UInt64 │
└──────────────────────┴────────┘murmurHash3_128
أُضيف في: v18.10.0
يحسب قيمة تجزئة MurmurHash3 بطول 128 بت لقيمة الإدخال.
الصيغة
murmurHash3_128(arg1[, arg2, ...])الوسائط
arg1[, arg2, ...]— عدد متغيّر من وسائط الإدخال المطلوب حساب قيمة التجزئة لها.Any
القيمة المُعادة
تُعيد قيمة تجزئة MurmurHash3 المحسوبة بطول 128 بت لوسائط الإدخال. FixedString(16)
أمثلة
مثال للاستخدام
SELECT hex(murmurHash3_128('foo', 'foo', 'foo'));┌─hex(murmurHash3_128('foo', 'foo', 'foo'))─┐
│ F8F7AD9B6CD4CF117A71E277E2EC2931 │
└───────────────────────────────────────────┘murmurHash3_32
تم تقديمه في: v18.10.0
ينتج قيمة تجزئة MurmurHash3.
البنية
murmurHash3_32(arg1[, arg2, ...])الوسيطات
arg1[, arg2, ...]— عدد متغيّر من وسائط الإدخال التي تُحسب لها قيمة التجزئة.Any
القيمة المُعادة
تعيد قيمة التجزئة المحسوبة لوسائط الإدخال. UInt32
أمثلة
مثال على الاستخدام
SELECT murmurHash3_32(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS MurmurHash3, toTypeName(MurmurHash3) AS type;┌─MurmurHash3─┬─type───┐
│ 317985299 │ UInt32 │
└─────────────┴────────┘murmurHash3_64
أُضيفت في: v18.10.0
تحسب تجزئة MurmurHash3 لقيمة الإدخال.
البنية
murmurHash3_64(arg1[, arg2, ...])الوسيطات
arg1[, arg2, ...]— عدد متغير من وسيطات الإدخال التي تُحسب لها قيمة التجزئة.Any
القيمة المعادة
تُرجع قيمة التجزئة المحسوبة لوسيطات الإدخال. UInt64
أمثلة
مثال على الاستخدام
SELECT murmurHash3_64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS MurmurHash3, toTypeName(MurmurHash3) AS type;┌──────────MurmurHash3─┬─type───┐
│ 11285022984631508790 │ 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.Stringngramsize— اختياري. حجمn-gram، وأي قيمة من1إلى25. القيمة الافتراضية هي3.UInt8hashnum— اختياري. عدد قيمhashالدنيا والعليا المستخدمة لحساب النتيجة، وأي قيمة من1إلى25. القيمة الافتراضية هي6.UInt8
القيمة المعادة
يُرجع قيمة Tuple تحتوي على قيمتي hash — الصغرى والكبرى. Tuple
أمثلة
مثال على الاستخدام
SELECT ngramMinHash('ClickHouse') AS Tuple;┌─Tuple──────────────────────────────────────┐
│ (18333312859352735453,9054248444481805918) │
└────────────────────────────────────────────┘ngramMinHashArg
طُرح في: v21.1.0
يقسّم سلسلة ASCII إلى n-grams من ngramsize رمزًا، ويُرجع n-grams ذات أصغر وأكبر قيم hash، كما تحسبها الدالة ngramMinHash للمدخل نفسه.
وهي حساسة لحالة الأحرف.
البنية
ngramMinHashArg(string[, ngramsize, hashnum])الوسائط
string— السلسلة المراد حساب قيمة التجزئة لها.Stringngramsize— اختياري. حجمn-gram، أي عدد من1إلى25. القيمة الافتراضية هي3.UInt8hashnum— اختياري. عدد قيم التجزئة الدنيا والعليا المستخدمة لحساب النتيجة، أي عدد من1إلى25. القيمة الافتراضية هي6.UInt8
القيمة المُعادة
يُرجع tuple يحتوي على tupleين، يحتوي كلٌّ منهما على hashnum من n-grams. Tuple(String)
أمثلة
مثال على الاستخدام
SELECT ngramMinHashArg('ClickHouse') AS Tuple;┌─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لها.Stringngramsize— اختياري. حجمn-gram، أي عدد من1إلى25. القيمة الافتراضية هي3.UInt8hashnum— اختياري. عدد قيمhashالصغرى والكبرى المستخدمة لحساب النتيجة، أي عدد من1إلى25. القيمة الافتراضية هي6.UInt8
القيمة المُعادة
تعيد قيمة من النوع Tuple تحتوي على قيمتين من النوع Tuple، في كلٍّ منهما hashnum من n-grams. Tuple(Tuple(String))
أمثلة
مثال على الاستخدام
SELECT ngramMinHashArgCaseInsensitive('ClickHouse') AS Tuple;┌─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— سلسلة نصية يُراد حساب قيمة التجزئة لها.Stringngramsize— اختياري. حجمn-gram، ويمكن أن يكون أي عدد من1إلى25. القيمة الافتراضية هي3.UInt8hashnum— اختياري. عدد قيم التجزئة الصغرى والكبرى المستخدمة لحساب النتيجة، ويمكن أن يكون أي عدد من1إلى25. القيمة الافتراضية هي6.UInt8
القيمة المُعادة
تعيد قيمة من النوع Tuple تحتوي على قيمتي Tuple، تضم كل واحدة منهما hashnum من n-grams. Tuple(Tuple(String))
أمثلة
مثال على الاستخدام
SELECT ngramMinHashArgCaseInsensitiveUTF8('ClickHouse') AS Tuple;┌─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— السلسلة النصية التي سيتم حساب قيمة التجزئة لها.Stringngramsize— اختياري. حجمn-gram، ويمكن أن يكون أي رقم من1إلى25. القيمة الافتراضية هي3.UInt8hashnum— اختياري. عدد قيم التجزئة الصغرى والكبرى المستخدمة لحساب النتيجة، ويمكن أن يكون أي رقم من1إلى25. القيمة الافتراضية هي6.UInt8
القيمة المعادة
يعيد قيمة من النوع Tuple تحتوي على قيمتَي Tuple، يحتوي كلٌّ منهما على hashnum من n-grams. Tuple(Tuple(String))
أمثلة
مثال على الاستخدام
SELECT ngramMinHashArgUTF8('ClickHouse') AS Tuple;┌─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
أمثلة
مثال على الاستخدام
SELECT ngramMinHashCaseInsensitive('ClickHouse') AS Tuple;┌─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.Stringngramsize— اختياري. حجمn-gram، أي عدد من1إلى25. القيمة الافتراضية هي3.UInt8hashnum— اختياري. عدد قيم hash الصغرى والكبرى المستخدمة لحساب النتيجة، أي عدد من1إلى25. القيمة الافتراضية هي6.UInt8
القيمة المعادة
يعيد قيمة من النوع Tuple تحتوي على قيمتي hash — الصغرى والكبرى.
أمثلة
مثال على الاستخدام
SELECT ngramMinHashCaseInsensitiveUTF8('ClickHouse') AS Tuple;┌─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لها.Stringngramsize— اختياري. حجمn-gram، وأي قيمة من1إلى25. القيمة الافتراضية هي3.UInt8hashnum— اختياري. عدد قيمhashالصغرى والكبرى المستخدمة لحساب النتيجة، وأي قيمة من1إلى25. القيمة الافتراضية هي6.UInt8
القيمة المعادة
تعيد قيمة من النوع Tuple تحتوي على قيمتي hash — الصغرى والكبرى. Tuple
أمثلة
مثال استخدام
SELECT ngramMinHashUTF8('ClickHouse') AS Tuple;┌─Tuple──────────────────────────────────────┐
│ (18333312859352735453,6742163577938632877) │
└────────────────────────────────────────────┘ngramSimHash
أُضيفت في: v21.1.0
تقسّم سلسلة ASCII إلى مقاطع n-gram مكوّنة من ngramsize رمزًا، وتُرجع قيمة simhash الخاصة بـ n-gram.
يمكن استخدامها لاكتشاف السلاسل شبه المتطابقة باستخدام bitHammingDistance.
وكلما كانت مسافة هامينغ بين قيم simhashes المحسوبة لسلسلتين أصغر، زاد احتمال أن تكون هاتان السلسلتان متماثلتين.
البنية
ngramSimHash(string[, ngramsize])الوسيطات
string— سلسلة نصية يُحسَب لهاsimhashمع مراعاة حالة الأحرف.Stringngramsize— اختياري. حجمn-gram، وأي قيمة من1إلى25. القيمة الافتراضية هي3.UInt8
القيمة المُعادة
يعيد hash المحسوب لسلسلة الإدخال. UInt64
أمثلة
مثال على الاستخدام
SELECT ngramSimHash('ClickHouse') AS Hash;┌───────Hash─┐
│ 1627567969 │
└────────────┘ngramSimHashCaseInsensitive
أُضيفت في: v21.1.0
تقسّم سلسلة ASCII إلى n-grams مكوّنة من ngramsize رموز وتُرجع قيمة simhash الخاصة بها.
وهي غير حساسة لحالة الأحرف.
يمكن استخدامها لاكتشاف السلاسل شبه المتطابقة باستخدام bitHammingDistance.
وكلما صغرت مسافة هامنغ لقيم simhashes المحسوبة لسلسلتين، زاد احتمال أن تكون هاتان السلسلتان متماثلتين.
البنية
ngramSimHashCaseInsensitive(string[, ngramsize])المعاملات
string— السلسلة النصية التي يُحسب لهاsimhashغير الحساس لحالة الأحرف.Stringngramsize— اختياري. حجمn-gram، أي عدد من1إلى25. القيمة الافتراضية هي3.UInt8
القيمة المُعادة
أمثلة
مثال على الاستخدام
SELECT ngramSimHashCaseInsensitive('ClickHouse') AS Hash;┌──────Hash─┐
│ 562180645 │
└───────────┘ngramSimHashCaseInsensitiveUTF8
متوفرة منذ: v21.1.0
تُقسِّم سلسلة نصية بتشفير UTF-8 إلى n-grams من رموز ngramsize وتُرجع simhash الخاص بـ n-gram.
وهي غير حساسة لحالة الأحرف.
يمكن استخدامها لاكتشاف السلاسل شبه المكررة باستخدام bitHammingDistance. وكلما صغرت مسافة Hamming بين قيم simhashes المحسوبة لسلسلتين، زاد احتمال أن تكونا متطابقتين.
الصياغة
ngramSimHashCaseInsensitiveUTF8(string[, ngramsize])المعاملات
string— السلسلة النصية المراد حساب قيمة التجزئة لها.Stringngramsize— اختياري. حجمn-gram، أي عدد من1إلى25. القيمة الافتراضية هي3.UInt8
القيمة المُعادة
يعيد قيمة التجزئة المحسوبة. UInt64
أمثلة
مثال على الاستخدام
SELECT ngramSimHashCaseInsensitiveUTF8('ClickHouse') AS Hash;┌───────Hash─┐
│ 1636742693 │
└────────────┘ngramSimHashUTF8
أُضيف في: v21.1.0
يُقسِّم سلسلة مُرمَّزة بترميز UTF-8 إلى وحدات n-gram من ngramsize رمزًا، ويُرجع simhash الخاص بها.
وهو حساس لحالة الأحرف.
يمكن استخدامه لاكتشاف السلاسل شبه المكررة باستخدام bitHammingDistance.
وكلما صغرت مسافة هامينغ بين قيم simhash المحسوبة لسلسلتين، زادت احتمالية أن تكونا متماثلتين.
البنية
ngramSimHashUTF8(string[, ngramsize])المعاملات
string— سلسلة نصية يُحسب لهاhash.Stringngramsize— اختياري. حجمn-gram، وهو أي رقم من1إلى25. القيمة الافتراضية هي3.UInt8
القيمة المُعادة
يرجع قيمة hash المحسوبة. UInt64
أمثلة
مثال على الاستخدام
SELECT ngramSimHashUTF8('ClickHouse') AS Hash;┌───────Hash─┐
│ 1628157797 │
└────────────┘sipHash128
أُضيف في: v1.1.0
يشبه sipHash64، لكنه يُنتج قيمة hash بطول 128 بت، أي إن حالة xor-folding النهائية تُحسب حتى 128 بت.
الصيغة
sipHash128(arg1[, arg2, ...])الوسيطات
arg1[, arg2, ...]— عدد متغيّر من وسيطات الإدخال التي تُحسَب لها قيمة التجزئة.Any
القيمة المعادة
يعيد قيمة تجزئة SipHash بطول 128 بت. FixedString(16)
أمثلة
مثال على الاستخدام
SELECT hex(sipHash128('foo', '\x01', 3)) AS res;┌─res──────────────────────────────┐
│ 9DE516A64A414D4B1B609415E4523F24 │
└──────────────────────────────────┘sipHash128Keyed
أُضيف في: v23.2.0
مماثل لـ sipHash128، لكنه يأخذ أيضًا وسيطة مفتاح صريحة بدلًا من استخدام مفتاح ثابت.
الصيغة
sipHash128Keyed((k0, k1), [arg1, arg2, ...])الوسائط
(k0, k1)— Tuple من قيمتَي UInt64 يمثّل المفتاح.Tuple(UInt64, UInt64)arg1[, arg2, ...]— عدد متغيّر من وسيطات الإدخال التي تُحسب لها قيمة التجزئة.Any
القيمة المُعادة
قيمة تجزئة SipHash بطول 128 بت من النوع FixedString(16). FixedString(16)
أمثلة
مثال على الاستخدام
SELECT hex(sipHash128Keyed((506097522914230528, 1084818905618843912), 'foo', '\x01', 3)) AS res;┌─res──────────────────────────────┐
│ B8467F65C8B4CFD9A5F8BD733917D9BF │
└──────────────────────────────────┘sipHash128Reference
أُضيفت في: v23.2.0
مثل sipHash128، لكنه يطبّق خوارزمية 128 بت الخاصة بالمؤلفين الأصليين لـ SipHash.
الصياغة
sipHash128Reference(arg1[, arg2, ...])المعاملات
arg1[, arg2, ...]— عدد متغيّر من معاملات الإدخال التي تُحسب لها قيمة التجزئة.Any
القيمة المُعادة
يعيد قيمة تجزئة SipHash محسوبة بطول 128 بت لمعاملات الإدخال. FixedString(16)
أمثلة
مثال على الاستخدام
SELECT hex(sipHash128Reference('foo', '\x01', 3)) AS res;┌─res──────────────────────────────┐
│ C3AA2F3C06A14DBE3742E9107AA9765D │
└──────────────────────────────────┘sipHash128ReferenceKeyed
أُضيف في: v23.2.0
مماثلة لـ sipHash128Reference، لكنها تأخذ أيضًا وسيطة مفتاح صريحة بدلًا من استخدام مفتاح ثابت.
البنية
sipHash128ReferenceKeyed((k0, k1), arg1[, arg2, ...])المعاملات
(k0, k1)—Tupleمن قيمتين تمثلان المفتاحTuple(UInt64, UInt64)arg1[, arg2, ...]— عدد متغير من معاملات الإدخال المطلوب حساب التجزئة لها.Any
القيمة المُعادة
تُعيد قيمة تجزئة SipHash المحسوبة بطول 128 بت لمعاملات الإدخال. FixedString(16)
أمثلة
مثال على الاستخدام
SELECT hex(sipHash128ReferenceKeyed((506097522914230528, 1084818905618843912), 'foo', '\x01', 3)) AS res;┌─res──────────────────────────────┐
│ 1D010CC83FB5460C25B556CE40992E61 │
└──────────────────────────────────┘sipHash64
أُضيف في: v1.1.0
ينتج قيمة تجزئة SipHash بطول 64 بت.
هذه دالة تجزئة تشفيرية. وهي تعمل بسرعة تزيد ثلاث مرات على الأقل عن دالة التجزئة MD5.
تتعامل الدالة interprets مع جميع معلمات الإدخال على أنها سلاسل نصية، وتحسب قيمة تجزئة لكل واحدة منها. ثم تدمج قيم التجزئة باستخدام الخوارزمية التالية:
- تُدمَج قيمتا التجزئة الأولى والثانية في مصفوفة، ثم تُحسَب لهما قيمة تجزئة.
- تُحسَب قيمة التجزئة المحسوبة سابقًا وقيمة تجزئة معلمة الإدخال الثالثة بطريقة مماثلة.
- يتكرر هذا الحساب مع جميع قيم التجزئة المتبقية من الإدخال الأصلي.
البنية
sipHash64(arg1[, arg2, ...])الوسيطات
arg1[, arg2, ...]— عدد متغير من وسيطات الإدخال.Any
القيمة المُعادة
تعيد قيمة تجزئة محسوبة لوسيطات الإدخال. UInt64
أمثلة
مثال على الاستخدام
SELECT sipHash64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS SipHash, toTypeName(SipHash) AS type;┌──────────────SipHash─┬─type───┐
│ 11348918044846389429 │ UInt64 │
└──────────────────────┴────────┘sipHash64Keyed
أُضيف في: v23.2.0
يشبه sipHash64، لكنه يأخذ أيضًا وسيطة مفتاح صريحة بدلًا من استخدام مفتاح ثابت.
الصيغة
sipHash64Keyed((k0, k1), arg1[,arg2, ...])الوسيطات
(k0, k1)— زوجTupleمن قيمتين يمثّل المفتاح.Tuple(UInt64, UInt64)arg1[,arg2, ...]— عدد متغير من وسيطات الإدخال.Any
القيمة المعادة
تعيد قيمة التجزئة المحسوبة لقيم الإدخال. UInt64
أمثلة
مثال على الاستخدام
SELECT sipHash64Keyed((506097522914230528, 1084818905618843912), array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS SipHash, toTypeName(SipHash) AS type;┌─────────────SipHash─┬─type───┐
│ 8194087499447867747 │ 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لها.Stringshinglesize— اختياري. حجمword shingle، وأي قيمة من1إلى25. القيمة الافتراضية هي3.UInt8hashnum— اختياري. عدد قيمhashالصغرى والكبرى المستخدمة لحساب النتيجة، وأي قيمة من1إلى25. القيمة الافتراضية هي6.UInt8
القيمة المعادة
يعيد Tuple يحتوي على قيمتي hash — الصغرى والكبرى. Tuple(UInt64, UInt64)
أمثلة
مثال على الاستخدام
SELECT wordShingleMinHash('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Tuple;┌─Tuple──────────────────────────────────────┐
│ (16452112859864147620,5844417301642981317) │
└────────────────────────────────────────────┘wordShingleMinHashArg
أُضيف في: v1.1.0
يقسم سلسلة ASCII إلى أجزاء (shingles)، يتكوّن كل جزء منها من shinglesize كلمات، ويُرجع أجزاء shingles ذات الحد الأدنى والأقصى من قيم hash للكلمات، كما تحتسبها الدالة wordShingleMinHash باستخدام الإدخال نفسه.
وهي حساسة لحالة الأحرف.
الصيغة
wordShingleMinHashArg(string[, shinglesize, hashnum])الوسائط
string— سلسلة نصية تُحسب لها قيمة التجزئة.Stringshinglesize— اختياري. حجم مقطع الكلمات، أي رقم من1إلى25. القيمة الافتراضية هي3.UInt8hashnum— اختياري. عدد قيم التجزئة الدنيا والعليا المستخدمة لحساب النتيجة، أي رقم من1إلى25. القيمة الافتراضية هي6.UInt8
القيمة المُعادة
يعيد Tuple يحتوي على اثنين من Tuple، يحتوي كل منهما على hashnum من مقاطع الكلمات. Tuple(Tuple(String))
أمثلة
مثال على الاستخدام
SELECT wordShingleMinHashArg('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).', 1, 3) AS Tuple;┌─Tuple─────────────────────────────────────────────────────────────────┐
│ (('OLAP','database','analytical'),('online','oriented','processing')) │
└───────────────────────────────────────────────────────────────────────┘wordShingleMinHashArgCaseInsensitive
أُضيفت في: v21.1.0
تُقسِّم سلسلة ASCII إلى أجزاء (shingles) يتكوّن كل جزء منها من shinglesize كلمات، وتُرجع الـ shingles ذات أقل وأكبر قيم hash للكلمات، كما تحسبها الدالة wordShingleMinHashCaseInsensitive باستخدام الإدخال نفسه.
وهي لا تراعي حالة الأحرف.
الصيغة
wordShingleMinHashArgCaseInsensitive(string[, shinglesize, hashnum])الوسيطات
string— سلسلة نصية تُحسب لها قيمة التجزئة.Stringshinglesize— اختياري. حجم شينغل الكلمات، أي رقم من1إلى25. القيمة الافتراضية هي3.UInt8hashnum— اختياري. عدد أقل وأعلى قيم التجزئة المستخدمة لحساب النتيجة، أي رقم من1إلى25. القيمة الافتراضية هي6.UInt8
القيمة المُعادة
يُرجع قيمة Tuple تحتوي على قيمتَي Tuple، تحتوي كل منهما على hashnum من شينغل الكلمات. Tuple(Tuple(String))
أمثلة
مثال على الاستخدام
SELECT wordShingleMinHashArgCaseInsensitive('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).', 1, 3) AS Tuple;┌─Tuple──────────────────────────────────────────────────────────────────┐
│ (('queries','database','analytical'),('oriented','processing','DBMS')) │
└────────────────────────────────────────────────────────────────────────┘wordShingleMinHashArgCaseInsensitiveUTF8
أُضيف في: v21.1.0
تقسم سلسلة UTF-8 إلى أجزاء (shingles) يتألف كل منها من shinglesize كلمة، وتُرجع الـ shingles ذات أدنى وأعلى قيم hash للكلمات، كما تحسبها الدالة wordShingleMinHashCaseInsensitiveUTF8 للمدخل نفسه.
وهي غير حساسة لحالة الأحرف.
البنية
wordShingleMinHashArgCaseInsensitiveUTF8(string[, shinglesize, hashnum])المعاملات
string— سلسلة نصية يُراد حساب قيمة التجزئة لها.Stringshinglesize— اختياري. حجم تتابع الكلمات، وأي رقم من1إلى25. القيمة الافتراضية هي3.UInt8hashnum— اختياري. عدد قيم التجزئة الصغرى والكبرى المستخدمة لحساب النتيجة، وأي رقم من1إلى25. القيمة الافتراضية هي6.UInt8
القيمة المُعادة
تعيد tuple تتكوّن من tupleين، يحتوي كلٌّ منهما على hashnum من تتابعات الكلمات. Tuple(Tuple(String))
أمثلة
مثال على الاستخدام
SELECT wordShingleMinHashArgCaseInsensitiveUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).', 1, 3) AS Tuple;┌─Tuple──────────────────────────────────────────────────────────────────┐
│ (('queries','database','analytical'),('oriented','processing','DBMS')) │
└────────────────────────────────────────────────────────────────────────┘wordShingleMinHashArgUTF8
أُضيف في: v21.1.0
يقسّم سلسلة UTF-8 إلى مقاطع (shingles)، يتألف كل منها من shinglesize كلمات، ويُرجع الـ shingles ذات أصغر وأكبر hash للكلمات، كما تحسبها الدالة wordShingleMinHashUTF8 باستخدام المُدخل نفسه.
وهي حساسة لحالة الأحرف.
الصياغة
wordShingleMinHashArgUTF8(string[, shinglesize, hashnum])الوسيطات
string— سلسلة نصية يُحسب لهاhash.Stringshinglesize— اختياري. حجم شينغل الكلمات، أي عدد من1إلى25. القيمة الافتراضية هي3.UInt8hashnum— اختياري. عدد قيمhashالصغرى والكبرى المستخدمة لحساب النتيجة، أي عدد من1إلى25. القيمة الافتراضية هي6.UInt8
القيمة المُعادة
تُرجِع قيمة من النوع Tuple تحتوي على Tupleين، يضم كلٌّ منهما hashnum من شينغل الكلمات. Tuple(Tuple(String))
أمثلة
مثال على الاستخدام
SELECT wordShingleMinHashArgUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).', 1, 3) AS Tuple;┌─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.Stringshinglesize— اختياري. حجمword shingle، أي عدد من1إلى25. القيمة الافتراضية هي3.UInt8hashnum— اختياري. عدد قيمhashالصغرى والكبرى المستخدمة في حساب النتيجة، أي عدد من1إلى25. القيمة الافتراضية هي6.UInt8
القيمة المُعادة
تعيد قيمة Tuple تضم قيمتي hash — الصغرى والكبرى. Tuple(UInt64, UInt64)
أمثلة
مثال على الاستخدام
SELECT wordShingleMinHashCaseInsensitive('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Tuple;┌─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لها.Stringshinglesize— اختياري. حجمword shingle، وهو أي رقم من1إلى25. القيمة الافتراضية هي3.UInt8hashnum— اختياري. عدد قيمhashالصغرى والكبرى المستخدمة لحساب النتيجة، وهو أي رقم من1إلى25. القيمة الافتراضية هي6.UInt8
القيمة المُعادة
يعيد قيمة Tuple تحتوي على قيمتي hash — الصغرى والكبرى. Tuple(UInt64, UInt64)
أمثلة
مثال على الاستخدام
SELECT wordShingleMinHashCaseInsensitiveUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Tuple;┌─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.Stringshinglesize— اختياري. حجمword shingle، أي عدد من1إلى25. القيمة الافتراضية هي3.UInt8hashnum— اختياري. عدد قيم hash الدنيا والعليا المستخدمة لحساب النتيجة، أي عدد من1إلى25. القيمة الافتراضية هي6.UInt8
القيمة المُعادة
يعيد Tuple يحتوي على قيمتي hash — الدنيا والعليا. Tuple(UInt64, UInt64)
أمثلة
مثال على الاستخدام
SELECT wordShingleMinHashUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Tuple;┌─Tuple──────────────────────────────────────┐
│ (16452112859864147620,5844417301642981317) │
└────────────────────────────────────────────┘wordShingleSimHash
أُضيفت في: v21.1.0
تُقسِّم سلسلة ASCII إلى مقاطع (shingles) من shinglesize كلمات وتُرجع simhash لشينغل الكلمات.
وهي حساسة لحالة الأحرف.
يمكن استخدامها لاكتشاف السلاسل شبه المتطابقة باستخدام bitHammingDistance.
كلما صغرت مسافة هامينغ بين قيم simhash المحسوبة لسلسلتين، زاد احتمال أن تكون هاتان السلسلتان متماثلتين.
الصيغة
wordShingleSimHash(string[, shinglesize])المعاملات
string— سلسلة تُحسب لها قيمة التجزئة.Stringshinglesize— اختياري. حجم مجموعة كلمات متجاورة، أي قيمة من1إلى25. القيمة الافتراضية هي3.UInt8
القيمة المعادة
تعيد قيمة التجزئة المحسوبة. UInt64
أمثلة
مثال على الاستخدام
SELECT wordShingleSimHash('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Hash;┌───────Hash─┐
│ 2328277067 │
└────────────┘wordShingleSimHashCaseInsensitive
قُدِّمت في: v21.1.0
تقسّم سلسلة ASCII إلى أجزاء (shingles)، يتكوّن كل منها من shinglesize كلمات، وتُرجع قيمة simhash الخاصة بـ word shingle.
وهي غير حساسة لحالة الأحرف.
يمكن استخدامها لاكتشاف السلاسل شبه المتطابقة باستخدام bitHammingDistance.
وكلما صغرت مسافة هامنغ بين قيم simhashes المحسوبة لسلسلتين، زاد احتمال أن تكونا متماثلتين.
الصياغة
wordShingleSimHashCaseInsensitive(string[, shinglesize])الوسيطات
string— السلسلة النصية المراد حساب قيمة التجزئة لها.Stringshinglesize— اختياري. حجمword shingle، ويمكن أن يكون أي رقم من1إلى25. القيمة الافتراضية هي3.UInt8
القيمة المُعادة
تُرجع قيمة التجزئة المحسوبة. UInt64
أمثلة
مثال على الاستخدام
SELECT wordShingleSimHashCaseInsensitive('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Hash;┌───────Hash─┐
│ 2194812424 │
└────────────┘wordShingleSimHashCaseInsensitiveUTF8
أُضيفت في: v1.1.0
تقسّم سلسلة نصية بترميز UTF-8 إلى أجزاء (shingles) من shinglesize كلمات، وتُرجع simhash لـ word shingle.
وهي غير حساسة لحالة الأحرف.
يمكن استخدامها لاكتشاف السلاسل شبه المتطابقة باستخدام bitHammingDistance.
وكلما صغرت مسافة Hamming المحسوبة لـ simhashes الخاصتين بسلسلتين، زاد احتمال أن تكون هاتان السلسلتان متطابقتين.
الصيغة
wordShingleSimHashCaseInsensitiveUTF8(string[, shinglesize])الوسيطات
string— السلسلة النصية المراد حساب قيمة التجزئة لها.Stringshinglesize— اختياري. حجم تسلسل الكلمات المتجاورة، أي عدد من1إلى25. القيمة الافتراضية هي3.UInt8
القيمة المعادة
تُرجِع قيمة التجزئة المحسوبة. UInt64
أمثلة
مثال على الاستخدام
SELECT wordShingleSimHashCaseInsensitiveUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Hash;┌───────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— السلسلة النصية المطلوب حساب قيمة التجزئة لها.Stringshinglesize— اختياري. حجم مجموعة كلمات متجاورة، أي رقم من1إلى25. القيمة الافتراضية هي3.UInt8
القيمة المُعادة
يعيد قيمة التجزئة المحسوبة. UInt64
أمثلة
مثال على الاستخدام
SELECT wordShingleSimHashUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Hash;┌───────Hash─┐
│ 2328277067 │
└────────────┘wyHash64
أُضيف في: v22.7.0
يحسب قيمة هاش 64 بت باستخدام wyHash64.
الصيغة
wyHash64(arg)الوسيطات
arg— وسيط من النوع String تُحسَب له قيمةhash.String
القيمة المُعادة
يعيد قيمة hash محسوبة بطول 64 بت من النوع UInt64
أمثلة
مثال على الاستخدام
SELECT wyHash64('ClickHouse') AS Hash;12336419557878201794xxHash32
قُدِّمت في: v20.1.0
تحسب قيمة xxHash من سلسلة نصية.
للاطلاع على الإصدار ذي 64 بت، راجع xxHash64
البنية
xxHash32(arg)الوسيطات
arg— سلسلة الإدخال المطلوب تجزئتها.String
القيمة المُعادة
يعيد قيمة التجزئة المحسوبة المكوّنة من 32 بت لسلسلة الإدخال. UInt32
أمثلة
مثال على الاستخدام
SELECT xxHash32('Hello, world!');┌─xxHash32('Hello, world!')─┐
│ 834093149 │
└───────────────────────────┘xxHash64
أُضيف في: v20.1.0
يحسب قيمة xxHash من سلسلة نصية.
للاطلاع على الإصدار ذي 32 بت، انظر xxHash32
البنية
xxHash64(arg)الوسيطات
arg— سلسلة الإدخال المراد تجزئتها.String
القيمة المعادة
تعيد قيمة التجزئة المحسوبة لسلسلة الإدخال بطول 64 بت. UInt64
أمثلة
مثال على الاستخدام
SELECT xxHash64('Hello, world!');┌─xxHash64('Hello, world!')─┐
│ 17691043854468224118 │
└───────────────────────────┘xxHash64Spark
أُضيف في: v26.7.0
يحسب xxHash لسلسلة نصية باستخدام نفس البذرة المستخدمة في Spark.
هذه الدالة مماثلة لـ xxHash64، لكنها تستخدم البذرة 42 وتُرجع النتيجة كقيمة من النوع Int64.
لا يدعم سوى المُدخلات من النوع String وNULL.
في حالة NULL، تُرجع الدالة القيمة 42، بما يتوافق مع سلوك البذرة في Spark.
الصيغة
xxHash64Spark(arg)المعاملات
arg— سلسلة الإدخال المطلوب تجزئتها.String
القيمة المُعادة
تُرجع قيمة التجزئة المحسوبة بطول 64 بت لسلسلة الإدخال. Int64
أمثلة
مثال على الاستخدام
SELECT xxHash64Spark('ABC');┌─xxHash64Spark('ABC')─┐
│ 4105715581806190027 │
└──────────────────────┘xxh3
استُحدثت في: v22.12.0
تحسب قيمة تجزئة XXH3 بطول 64 بت.
البنية
xxh3(expr)الوسائط
expr— قائمة من التعبيرات من أي نوع بيانات.Any
القيمة المُعادة
تعيد قيمة التجزئة xxh3 المحسوبة ذات 64 بت UInt64
أمثلة
مثال على الاستخدام
SELECT xxh3('ClickHouse')18009318874338624809xxh3_128
استُحدث في: v26.2.0
يحسب قيمة تجزئة XXH3 بطول 128 بت.
الصيغة
xxh3_128(expr)الوسيطات
expr— قائمة بالتعبيرات من أي نوع بيانات.Any
القيمة المعادة
يعيد قيمة التجزئة xxh3 المحسوبة بطول 128 بت UInt128
أمثلة
مثال على الاستخدام
SELECT hex(xxh3_128('ClickHouse'))14C27B7BEF95D36FECF5520CA2DAF030