メインコンテンツまでスキップ
メインコンテンツまでスキップ

ハッシュ関数

ハッシュ関数は、要素の決定論的疑似ランダムシャッフルに使用できます。

Simhash は、近い(類似した)引数に対して近いハッシュ値を返すハッシュ関数です。

ほとんどのハッシュ関数は、任意の数の引数と任意の型を受け入れます。

注記

NULL のハッシュは NULL です。Nullable カラムの非 NULL ハッシュを取得するには、タプルで包装します:

SELECT cityHash64(tuple(NULL))
注記

テーブル全体のコンテンツのハッシュを計算するには、sum(cityHash64(tuple(*)))(他のハッシュ関数でも可)を使用します。tuple は NULL 値を持つ行がスキップされないようにします。sum は行の順序が重要でないことを保証します。

BLAKE3

導入バージョン: v22.10

BLAKE3 ハッシュ文字列を計算し、結果のバイトセットを FixedString として返します。 この暗号学的ハッシュ関数は、BLAKE3 Rust ライブラリとともに ClickHouse に統合されています。 この関数は非常に速く、SHA-2 と比較して約 2 倍速い性能を示し、SHA-256 と同じ長さのハッシュを生成します。 これは、FixedString(32) 型のバイト配列として BLAKE3 ハッシュを返します。

構文

BLAKE3(message)

引数

  • message — ハッシュ化する入力文字列。 String

返される値

入力文字列の 32 バイト BLAKE3 ハッシュを固定長文字列として返します。 FixedString(32)

ハッシュ

SELECT hex(BLAKE3('ABC'))
┌─hex(BLAKE3('ABC'))───────────────────────────────────────────────┐
│ D1717274597CF0289694F75D96D444B992A096F1AFD8E7BBFA6EBB1D360FEDFC │
└──────────────────────────────────────────────────────────────────┘

MD4

導入バージョン: v21.11

指定された文字列の MD4 ハッシュを計算します。

構文

MD4(s)

引数

  • s — ハッシュ化する入力文字列。 String

返される値

指定された入力文字列の MD4 ハッシュを固定長文字列として返します。 FixedString(16)

使用例

SELECT HEX(MD4('abc'));
┌─hex(MD4('abc'))──────────────────┐
│ A448017AAF21D8525FC10AE87AA6729D │
└──────────────────────────────────┘

MD5

導入バージョン: v1.1

指定された文字列の MD5 ハッシュを計算します。

構文

MD5(s)

引数

  • s — ハッシュ化する入力文字列。 String

返される値

指定された入力文字列の MD5 ハッシュを固定長文字列として返します。 FixedString(16)

使用例

SELECT HEX(MD5('abc'));
┌─hex(MD5('abc'))──────────────────┐
│ 900150983CD24FB0D6963F7D28E17F72 │
└──────────────────────────────────┘

RIPEMD160

導入バージョン: v24.10

指定された文字列の RIPEMD-160 ハッシュを計算します。

構文

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

指定された文字列の SHA1 ハッシュを計算します。

構文

SHA1(s)

引数

  • s — ハッシュ化する入力文字列。 String

返される値

指定された入力文字列の SHA1 ハッシュを固定長文字列として返します。 FixedString(20)

使用例

SELECT HEX(SHA1('abc'));
┌─hex(SHA1('abc'))─────────────────────────┐
│ A9993E364706816ABA3E25717850C26C9CD0D89D │
└──────────────────────────────────────────┘

SHA224

導入バージョン: v1.1

指定された文字列の SHA224 ハッシュを計算します。

構文

SHA224(s)

引数

  • s — ハッシュ化する入力文字列。 String

返される値

指定された入力文字列の SHA224 ハッシュを固定長文字列として返します。 FixedString(28)

使用例

SELECT HEX(SHA224('abc'));
┌─hex(SHA224('abc'))───────────────────────────────────────┐
│ 23097D223405D8228642A477BDA255B32AADBCE4BDA0B3F7E36C9DA7 │
└──────────────────────────────────────────────────────────┘

SHA256

導入バージョン: v1.1

指定された文字列の SHA256 ハッシュを計算します。

構文

SHA256(s)

引数

  • s — ハッシュ化する入力文字列。 String

返される値

指定された入力文字列の SHA256 ハッシュを固定長文字列として返します。 FixedString(32)

使用例

SELECT HEX(SHA256('abc'));
┌─hex(SHA256('abc'))───────────────────────────────────────────────┐
│ BA7816BF8F01CFEA414140DE5DAE2223B00361A396177A9CB410FF61F20015AD │
└──────────────────────────────────────────────────────────────────┘

SHA384

導入バージョン: v1.1

指定された文字列の SHA384 ハッシュを計算します。

構文

SHA384(s)

引数

  • s — ハッシュ化する入力文字列。 String

返される値

指定された入力文字列の SHA384 ハッシュを固定長文字列として返します。 FixedString(48)

使用例

SELECT HEX(SHA384('abc'));
┌─hex(SHA384('abc'))───────────────────────────────────────────────────────────────────────────────┐
│ CB00753F45A35E8BB5A03D699AC65007272C32AB0EDED1631A8B605A43FF5BED8086072BA1E7CC2358BAECA134C825A7 │
└──────────────────────────────────────────────────────────────────────────────────────────────────┘

SHA512

導入バージョン: v1.1

指定された文字列の SHA512 ハッシュを計算します。

構文

SHA512(s)

引数

  • s — ハッシュ化する入力文字列。 String

返される値

指定された入力文字列の SHA512 ハッシュを固定長文字列として返します。 FixedString(64)

使用例

SELECT HEX(SHA512('abc'));
┌─hex(SHA512('abc'))───────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ DDAF35A193617ABACC417349AE20413112E6FA4E89A97EA20A9EEEE64B55D39A2192992A274FC1A836BA3C23A3FEEBBD454D4423643CE80E2A9AC94FA54CA49F │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

SHA512_256

導入バージョン: v1.1

指定された文字列の SHA512_256 ハッシュを計算します。

構文

SHA512_256(s)

引数

  • s — ハッシュ化する入力文字列。 String

返される値

指定された入力文字列の SHA512_256 ハッシュを固定長文字列として返します。 FixedString(32)

使用例

SELECT HEX(SHA512_256('abc'));
┌─hex(SHA512_256('abc'))───────────────────────────────────────────┐
│ 53048E2681941EF99B2E29B76B4C7DABE4C2D0C634FC6D46E0E2F13107E7AF23 │
└──────────────────────────────────────────────────────────────────┘

URLHash

導入バージョン: v1.1

URL から得られた文字列に対する、ある種の正規化を使用した高速で適度な品質の非暗号学的ハッシュ関数です。

このハッシュ関数には二つのモードがあります。

モード説明
URLHash(url)終端に存在する場合、/? または # を持たない文字列からハッシュを計算します。
URLHash(url, N)URL 階層内で N レベルまでの文字列からハッシュを計算します。終端に存在する場合、/? または # を持たない文字列に対して計算します。レベルは URLHierarchy のものと同じです。

構文

URLHash(url[, N])

引数

  • url — ハッシュ化する URL 文字列。 String
  • N — オプション。 URL 階層内のレベル。 (U)Int*

返される値

計算されたハッシュ値 url を返します。 UInt64

使用例

SELECT URLHash('https://www.clickhouse.com')
┌─URLHash('htt⋯house.com')─┐
│     13614512636072854701 │
└──────────────────────────┘

指定されたレベルの URL のハッシュ

SELECT URLHash('https://www.clickhouse.com/docs', 0);
SELECT URLHash('https://www.clickhouse.com/docs', 1);
-- 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

64 ビットの CityHash ハッシュ値を生成します。

これは、速い非暗号学的ハッシュ関数です。 文字列パラメータには CityHash アルゴリズムを使用し、他のデータ型のパラメータには実装固有の速い非暗号学的ハッシュ関数を使用します。 関数は CityHash コンビネータを使用して最終結果を得ます。

参考

Google は ClickHouse に追加された後、CityHash のアルゴリズムを変更しました。 言い換えれば、ClickHouse の cityHash64 と Google のアップストリーム CityHash は現在異なる結果を生成します。 ClickHouse の cityHash64 は CityHash v1.0.2 に相当します。

注記

計算されたハッシュ値は、異なる引数型の同じ入力値について等しくなる場合があります。 これは例えば、異なるサイズの整数型、同じデータを持つ名前付きおよび名前のない TupleMap、および同じデータを持つ対応する Array(Tuple(key, value)) 型に影響します。

構文

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───┐
│ 12072650598913549138 │ 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(⋯age, city))─┐
│     11639977218258521182 │
└──────────────────────────┘

farmFingerprint64

導入バージョン: v20.12

Fingerprint64 メソッドを使用して 64 ビットの FarmHash 値を生成します。

ヒント

farmFingerprint64 は、farmHash64 よりも安定したポータブル値のために好まれます。

注記

計算されたハッシュ値は、異なる引数型の同じ入力値について等しくなる場合があります。 これは例えば、異なるサイズの整数型、同じデータを持つ名前付きおよび名前のない TupleMap および同じデータを持つ対応する Array(Tuple(key, value)) 型に影響します。

構文

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───┐
│ 5752020380710916328 │ UInt64 │
└─────────────────────┴────────┘

farmHash64

導入バージョン: v1.1

Hash64 メソッドを使用して 64 ビットの FarmHash を生成します。

ヒント

farmFingerprint64 は、安定したポータブル値のために好まれます。

注記

計算されたハッシュ値は、異なる引数型の同じ入力値について等しくなる場合があります。 これは例えば、異なるサイズの整数型、同じデータを持つ名前付きおよび名前のない TupleMap および同じデータを持つ対応する Array(Tuple(key, value)) 型に影響します。

構文

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───┐
│ 18125596431186471178 │ UInt64 │
└──────────────────────┴────────┘

gccMurmurHash

導入バージョン: v20.1

入力値の 64 ビット MurmurHash2 ハッシュを計算します。これは 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

すべての入力 パラメータを文字列として解釈し、それぞれの MD5 ハッシュ値を計算します。次に、ハッシュを組み合わせ、生成された文字列のハッシュの最初の 8 バイトを取り、それらをビッグエンディアンのバイト順で UInt64 として解釈します。この関数は比較的遅く(1 秒あたり 500 万の短い文字列)、入力パラメータの可変数を取ります。 いくつかのデータ型については、引数の型が異なっても同じ値を持つ場合があります(異なるサイズの整数、同じデータを持つ名前付きおよび名前のない Tuple、Map、および同じデータを持つ対応する Array(Tuple(key, value)) 型)。

構文

halfMD5(arg1[, arg2, ..., argN])

引数

  • arg1[, arg2, ..., argN] — ハッシュを計算するための引数の可変数。 Any

返される値

指定された入力パラメータの計算された半分の MD5 ハッシュをビッグエンディアンのバイト順で UInt64 として返します。 UInt64

使用例

SELECT HEX(halfMD5('abc', 'cde', 'fgh'));
┌─hex(halfMD5('abc', 'cde', 'fgh'))─┐
│ 2C9506B7374CFAF4                  │
└───────────────────────────────────┘

hiveHash

導入バージョン: v20.1

文字列から "HiveHash" を計算します。 これは単に JavaHash で符号ビットがゼロに設定されたものです。 この関数は、バージョン 3.0 以前の Apache Hive で使用されます。

このハッシュ関数は性能が悪いです。 このアルゴリズムが別のシステムで既に使用されている場合にのみ使用してください。 :::

構文

hiveHash(arg)

引数

  • arg — ハッシュ化する入力文字列。 String

返される値

入力文字列の計算された "hive hash" を返します。 Int32

使用例

SELECT hiveHash('Hello, world!');
┌─hiveHash('Hello, world!')─┐
│                 267439093 │
└───────────────────────────┘

intHash32

導入バージョン: v1.1

整数の 32 ビットハッシュを計算します。

このハッシュ関数は比較的速いですが、暗号学的ハッシュ関数ではありません。

構文

intHash32(arg)

引数

  • arg — ハッシュ化する整数。 (U)Int*

返される値

計算された整数の 32 ビットハッシュコードを返します。 UInt32

使用例

SELECT intHash32(42);
┌─intHash32(42)─┐
│    1228623923 │
└───────────────┘

intHash64

導入バージョン: v1.1

整数の 64 ビットハッシュを計算します。

このハッシュ関数は比較的速く(intHash32 よりも速い)ですが、暗号学的ハッシュ関数ではありません。

構文

intHash64(int)

引数

  • int — ハッシュ化する整数。 (U)Int*

返される値

64 ビットのハッシュコードを返します。 UInt64

使用例

SELECT intHash64(42);
┌────────intHash64(42)─┐
│ 11490350930367293593 │
└──────────────────────┘

javaHash

導入バージョン: v20.1

次の値から JavaHash を計算します:

注意

このハッシュ関数は性能が悪いです。 このアルゴリズムが別のシステムで既に使用されている場合にのみ使用してください。

注記

Java は符号付き整数のハッシュを計算することしかサポートしていないため、符号なし整数のハッシュを計算したい場合は、適切な符号付き ClickHouse タイプにキャストする必要があります。

構文

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

UTF-16LE エンコーディングでの文字列を仮定した、文字列から JavaHash を計算します。

構文

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

整数の ジャンプ一貫ハッシュ を計算します。

構文

jumpConsistentHash(key, buckets)

引数

  • key — 入力キー。 UInt64
  • buckets — バケットの数。 Int32

返される値

計算されたハッシュ値を返します。 Int32

使用例

SELECT jumpConsistentHash(256, 4)
┌─jumpConsistentHash(256, 4)─┐
│                          3 │
└────────────────────────────┘

kafkaMurmurHash

導入バージョン: v23.4

入力値の 32 ビット MurmurHash2 ハッシュを計算します。これは 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

指定された文字列の Keccak-256 暗号学的ハッシュを計算します。 このハッシュ関数はブロックチェーンアプリケーション、特に Ethereum で広く使用されています。

構文

keccak256(message)

引数

  • message — ハッシュ化する入力文字列。 String

返される値

指定された入力文字列の 32 バイト Keccak-256 ハッシュを固定長文字列として返します。 FixedString(32)

使用例

SELECT hex(keccak256('hello'))
┌─hex(keccak256('hello'))──────────────────────────────────────────┐
│ 1C8AFF950685C2ED4BC3174F3472287B56D9517B9C948127319A09A7A36DEAC8 │
└──────────────────────────────────────────────────────────────────┘

kostikConsistentHash

導入バージョン: v22.6

Konstantin 'Kostik' Oblakov による O(1) 時間および空間の一貫したハッシュアルゴリズムです。 n <= 32768 の場合のみ効率的です。

構文

kostikConsistentHash(input, n)

引数

  • input — 整数キー。 UInt64
  • n — バケットの数。 UInt16

返される値

計算されたハッシュ値を返します。 UInt16

使用例

SELECT kostikConsistentHash(16045690984833335023, 2);
┌─kostikConsistentHash(16045690984833335023, 2)─┐
│                                             1 │
└───────────────────────────────────────────────┘

metroHash64

導入バージョン: v1.1

64 ビットの MetroHash ハッシュ値を生成します。

注記

計算されたハッシュ値は、異なる引数型の同じ入力値について等しくなる場合があります。 これは例えば、異なるサイズの整数型、同じデータを持つ名前付きおよび名前のない TupleMap および同じデータを持つ対応する Array(Tuple(key, value)) 型に影響します。

構文

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───┐
│ 14235658766382344533 │ UInt64 │
└──────────────────────┴────────┘

murmurHash2_32

導入バージョン: v18.5

入力値の MurmurHash2 ハッシュを計算します。

注記

計算されたハッシュ値は、異なる引数型の同じ入力値について等しくなる場合があります。 これは例えば、異なるサイズの整数型、同じデータを持つ名前付きおよび名前のない TupleMap および同じデータを持つ対応する Array(Tuple(key, value)) 型に影響します。

構文

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───┐
│  3681770635 │ UInt32 │
└─────────────┴────────┘

murmurHash2_64

導入バージョン: v18.10

入力値の MurmurHash2 ハッシュを計算します。

注記

計算されたハッシュ値は、異なる引数型の同じ入力値について等しくなる場合があります。 これは例えば、異なるサイズの整数型、同じデータを持つ名前付きおよび名前のない TupleMap および同じデータを持つ対応する Array(Tuple(key, value)) 型に影響します。

構文

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───┐
│ 11832096901709403633 │ UInt64 │
└──────────────────────┴────────┘

murmurHash3_128

導入バージョン: v18.10

入力値の 128 ビット MurmurHash3 ハッシュを計算します。

構文

murmurHash3_128(arg1[, arg2, ...])

引数

  • arg1[, arg2, ...] — ハッシュを計算するための入力引数の可変数。 Any

返される値

入力引数の計算された 128 ビット MurmurHash3 ハッシュ値を返します。 FixedString(16)

使用例

SELECT hex(murmurHash3_128('foo', 'foo', 'foo'));
┌─hex(murmurHash3_128('foo', 'foo', 'foo'))─┐
│ F8F7AD9B6CD4CF117A71E277E2EC2931          │
└───────────────────────────────────────────┘

murmurHash3_32

導入バージョン: v18.10

MurmurHash3 ハッシュ値を生成します。

注記

計算されたハッシュ値は、異なる引数型の同じ入力値について等しくなる場合があります。 これは例えば、異なるサイズの整数型、同じデータを持つ名前付きおよび名前のない TupleMap および同じデータを持つ対応する Array(Tuple(key, value)) 型に影響します。

構文

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───┐
│     2152717 │ UInt32 │
└─────────────┴────────┘

murmurHash3_64

導入バージョン: v18.10

入力値の MurmurHash3 ハッシュを計算します。

注記

計算されたハッシュ値は、異なる引数型の同じ入力値について等しくなる場合があります。 これは例えば、異なるサイズの整数型、同じデータを持つ名前付きおよび名前のない TupleMap および同じデータを持つ対応する Array(Tuple(key, value)) 型に影響します。

構文

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───┐
│ 11832096901709403633 │ UInt64 │
└──────────────────────┴────────┘

ngramMinHash

導入バージョン: v21.1

ASCII 文字列を ngramsize シンボルの n-グラムに分割し、それぞれの n-グラムに対してハッシュ値を計算し、これらのハッシュを持つタプルを返します。 hashnum 最小ハッシュを使用して最小ハッシュを計算し、hashnum 最大ハッシュを使用して最大ハッシュを計算します。 これは大文字と小文字を区別します。

これを使用して、tupleHammingDistance によってセミ重複文字列を検出できます。 二つの文字列に対して、返されるハッシュが両方の文字列で同じであれば、これらの文字列は同じです。

構文

ngramMinHash(string[, ngramsize, hashnum])

引数

  • string — ハッシュを計算する文字列。 String
  • ngramsize — オプション。 n-グラムのサイズ、1 から 25 の任意の数。デフォルト値は 3 です。 UInt8
  • hashnum — オプション。 結果を計算するために使用される最小および最大ハッシュの数、1 から 25 の任意の数。デフォルト値は 6 です。 UInt8

返される値

最小および最大の二つのハッシュを持つタプルを返します。 Tuple

使用例

SELECT ngramMinHash('ClickHouse') AS Tuple;
┌─Tuple──────────────────────────────────────┐
│ (18333312859352735453,9054248444481805918) │
└────────────────────────────────────────────┘

ngramMinHashArg

導入バージョン: v21.1

ASCII 文字列を ngramsize シンボルの n-グラムに分割し、最小および最大ハッシュを持つ n-グラムを返します。これは、同じ入力で ngramMinHash 関数によって計算されます。 これは大文字と小文字を区別します。

構文

ngramMinHashArg(string[, ngramsize, hashnum])

引数

  • string — ハッシュを計算する文字列。 String
  • ngramsize — オプション。 n-グラムのサイズ、1 から 25 の任意の数。デフォルト値は 3 です。 UInt8
  • hashnum — オプション。 結果を計算するために使用される最小および最大ハッシュの数、1 から 25 の任意の数。デフォルト値は 6 です。 UInt8

返される値

hashnum の各 n-グラムを持つ二つのタプルを返します。 Tuple(String)

使用例

SELECT ngramMinHashArg('ClickHouse') AS Tuple;
┌─Tuple─────────────────────────────────────────────────────────────────────────┐
│ (('ous','ick','lic','Hou','kHo','use'),('Hou','lic','ick','ous','ckH','Cli')) │
└───────────────────────────────────────────────────────────────────────────────┘

ngramMinHashArgCaseInsensitive

導入バージョン: v21.1

ASCII 文字列を ngramsize シンボルの n-グラムに分割し、最小および最大ハッシュを持つ n-グラムを返します。これは、同じ入力で ngramMinHashCaseInsensitive 関数によって計算されます。 大文字と小文字を区別しません。

構文

ngramMinHashArgCaseInsensitive(string[, ngramsize, hashnum])

引数

  • string — ハッシュを計算する文字列。 String
  • ngramsize — オプション。 n-グラムのサイズ、1 から 25 の任意の数。デフォルト値は 3 です。 UInt8
  • hashnum — オプション。 結果を計算するために使用される最小および最大ハッシュの数、1 から 25 の任意の数。デフォルト値は 6 です。 UInt8

返される値

hashnum の各 n-グラムを持つ二つのタプルを返します。 Tuple(Tuple(String))

使用例

SELECT ngramMinHashArgCaseInsensitive('ClickHouse') AS Tuple;
┌─Tuple─────────────────────────────────────────────────────────────────────────┐
│ (('ous','ick','lic','kHo','use','Cli'),('kHo','lic','ick','ous','ckH','Hou')) │
└───────────────────────────────────────────────────────────────────────────────┘

ngramMinHashArgCaseInsensitiveUTF8

導入バージョン: v21.1

UTF-8 文字列を ngramsize シンボルの n-グラムに分割し、最小および最大ハッシュを持つ n-グラムを返します。これは、同じ入力で ngramMinHashUTF8 関数によって計算されます。 大文字と小文字を区別しません。

構文

ngramMinHashArgCaseInsensitiveUTF8(string[, ngramsize, hashnum])

引数

  • string — ハッシュを計算する文字列。 String
  • ngramsize — オプション。 n-グラムのサイズ、1 から 25 の任意の数。デフォルト値は 3 です。 UInt8
  • hashnum — オプション。 結果を計算するために使用される最小および最大ハッシュの数、1 から 25 の任意の数。デフォルト値は 6 です。 UInt8

返される値

hashnum の各 n-グラムを持つ二つのタプルを返します。 Tuple(Tuple(String))

使用例

SELECT ngramMinHashArgCaseInsensitiveUTF8('ClickHouse') AS Tuple;

ngramMinHashArgUTF8

導入バージョン: v21.1

UTF-8 文字列を ngramsize シンボルの n-グラムに分割し、最小および最大ハッシュを持つ n-グラムを返します。これは、同じ入力で ngramMinHashUTF8 関数によって計算されます。 これは大文字と小文字を区別します。

構文

ngramMinHashArgUTF8(string[, ngramsize, hashnum])

引数

  • string — ハッシュを計算する文字列。 String
  • ngramsize — オプション。 n-グラムのサイズ、1 から 25 の任意の数。デフォルト値は 3 です。 UInt8
  • hashnum — オプション。 結果を計算するために使用される最小および最大ハッシュの数、1 から 25 の任意の数。デフォルト値は 6 です。 UInt8

返される値

hashnum の各 n-グラムを持つ二つのタプルを返します。 Tuple(Tuple(String))

使用例

SELECT ngramMinHashArgUTF8('ClickHouse') AS Tuple;
┌─Tuple─────────────────────────────────────────────────────────────────────────┐
│ (('ous','ick','lic','Hou','kHo','use'),('kHo','Hou','lic','ick','ous','ckH')) │
└───────────────────────────────────────────────────────────────────────────────┘

ngramMinHashCaseInsensitive

導入バージョン: v21.1

ASCII 文字列を ngramsize シンボルの n-グラムに分割し、それぞれの n-グラムに対してハッシュ値を計算し、これらのハッシュを持つタプルを返します。 hashnum 最小ハッシュを使用して最小ハッシュを計算し、hashnum 最大ハッシュを使用して最大ハッシュを計算します。 大文字と小文字を区別しません。

これを使用して、tupleHammingDistance によってセミ重複文字列を検出できます。 二つの文字列に対して、返されるハッシュが両方の文字列で同じであれば、これらの文字列は同じです。

構文

ngramMinHashCaseInsensitive(string[, ngramsize, hashnum])

引数

  • string — 文字列。 String
  • ngramsize — n-グラムのサイズ。 オプション。 値:1 から 25 の任意の数。 デフォルト値:3。 UInt8
  • hashnum — 結果を計算するために使用される最小および最大ハッシュの数。 オプション。 値:1 から 25 の任意の数。 デフォルト値:6。 UInt8

返される値

二つのハッシュ — 最小値と最大値を持つタプル。 Tuple(UInt64, UInt64)。 Tuple

使用例

SELECT ngramMinHashCaseInsensitive('ClickHouse') AS Tuple;
┌─Tuple──────────────────────────────────────┐
│ (2106263556442004574,13203602793651726206) │
└────────────────────────────────────────────┘

I've ensured the translation retains the structure and content of the original text while smoothly adapting it into Japanese, adhering to the provided guidelines and technical terminology used in ClickHouse documentation.

ngramMinHashCaseInsensitiveUTF8

Introduced in: v21.1

UTF-8 文字列を ngramsize シンボルの n-gram に分割し、各 n-gram のハッシュ値を計算して、これらのハッシュを含むタプルを返します。 hashnum の最小ハッシュを使用して最小ハッシュを計算し、hashnum の最大ハッシュを使用して最大ハッシュを計算します。 大文字と小文字を区別しません。

tupleHammingDistance を使用して、準複製文字列を検出するために使用できます。 2 つの文字列の場合、返されたハッシュが両方の文字列で同じであれば、それらの文字列は同じです。

Syntax

ngramMinHashCaseInsensitiveUTF8(string [, ngramsize, hashnum])

Arguments

  • string — ハッシュを計算する対象の文字列。 String
  • ngramsize — オプション。n-gram のサイズ、1 から 25 の任意の数。デフォルト値は 3 です。 UInt8
  • hashnum — オプション。結果を計算するために使用される最小および最大ハッシュの数、1 から 25 の任意の数。デフォルト値は 6 です。 UInt8

Returned value

最小ハッシュと最大ハッシュの2つのハッシュを含むタプルを返します。 Tuple

Examples

Usage example

SELECT ngramMinHashCaseInsensitiveUTF8('ClickHouse') AS Tuple;
┌─Tuple───────────────────────────────────────┐
│ (12493625717655877135,13203602793651726206) │
└─────────────────────────────────────────────┘

ngramMinHashUTF8

Introduced in: v21.1

UTF-8 文字列を ngramsize シンボルの n-gram に分割し、各 n-gram のハッシュ値を計算して、これらのハッシュを含むタプルを返します。 hashnum の最小ハッシュを使用して最小ハッシュを計算し、hashnum の最大ハッシュを使用して最大ハッシュを計算します。 大文字と小文字を区別します。

tupleHammingDistance を使用して、準複製文字列を検出するために使用できます。 2 つの文字列の場合、返されたハッシュが両方の文字列で同じであれば、それらの文字列は同じです。

Syntax

ngramMinHashUTF8(string[, ngramsize, hashnum])

Arguments

  • string — ハッシュを計算する対象の文字列。 String
  • ngramsize — オプション。n-gram のサイズ、1 から 25 の任意の数。デフォルト値は 3 です。 UInt8
  • hashnum — オプション。結果を計算するために使用される最小および最大ハッシュの数、1 から 25 の任意の数。デフォルト値は 6 です。 UInt8

Returned value

最小ハッシュと最大ハッシュの2つのハッシュを含むタプルを返します。 Tuple

Examples

Usage example

SELECT ngramMinHashUTF8('ClickHouse') AS Tuple;
┌─Tuple──────────────────────────────────────┐
│ (18333312859352735453,6742163577938632877) │
└────────────────────────────────────────────┘

ngramSimHash

Introduced in: v21.1

ASCII 文字列を ngramsize シンボルの n-gram に分割し、n-gram の simhash を返します。

bitHammingDistance を使用して、準複製文字列を検出するために使用できます。 計算された2つの文字列の simhashesハミング距離 が小さいほど、これらの文字列は同じである可能性が高くなります。

Syntax

ngramSimHash(string[, ngramsize])

Arguments

  • string — ケースセンシティブの simhash を計算する対象の文字列。 String
  • ngramsize — オプション。n-gram のサイズ、1 から 25 の任意の数。デフォルト値は 3 です。 UInt8

Returned value

入力文字列の計算されたハッシュ値を返します。 UInt64

Examples

Usage example

SELECT ngramSimHash('ClickHouse') AS Hash;
┌───────Hash─┐
│ 1627567969 │
└────────────┘

ngramSimHashCaseInsensitive

Introduced in: v21.1

ASCII 文字列を ngramsize シンボルの n-gram に分割し、n-gram の simhash を返します。 大文字と小文字を区別しません。

bitHammingDistance を使用して、準複製文字列を検出するために使用できます。 計算された 2 つの文字列の simhashesハミング距離 が小さいほど、これらの文字列は同じである可能性が高くなります。

Syntax

ngramSimHashCaseInsensitive(string[, ngramsize])

Arguments

  • string — ケースインセンシティブの simhash を計算する対象の文字列。 String
  • ngramsize — オプション。n-gram のサイズ、1 から 25 の任意の数。デフォルト値は 3 です。 UInt8

Returned value

ハッシュ値。 UInt64UInt64

Examples

Usage example

SELECT ngramSimHashCaseInsensitive('ClickHouse') AS Hash;
┌──────Hash─┐
│ 562180645 │
└───────────┘

ngramSimHashCaseInsensitiveUTF8

Introduced in: v21.1

UTF-8 文字列を ngramsize シンボルの n-gram に分割し、n-gram の simhash を返します。 大文字と小文字を区別しません。

bitHammingDistance を使用して、準複製文字列を検出するために使用できます。2 つの文字列の計算された simhashesハミング距離 が小さいほど、これらの文字列は同じである可能性が高くなります。

Syntax

ngramSimHashCaseInsensitiveUTF8(string[, ngramsize])

Arguments

  • string — ハッシュを計算する対象の文字列。 String
  • ngramsize — オプション。n-gram のサイズ、1 から 25 の任意の数。デフォルト値は 3 です。 UInt8

Returned value

計算されたハッシュ値を返します。 UInt64

Examples

Usage example

SELECT ngramSimHashCaseInsensitiveUTF8('ClickHouse') AS Hash;
┌───────Hash─┐
│ 1636742693 │
└────────────┘

ngramSimHashUTF8

Introduced in: v21.1

UTF-8 エンコードされた文字列を ngramsize シンボルの n-gram に分割し、n-gram の simhash を返します。 大文字と小文字を区別します。

bitHammingDistance を使用して、準複製文字列を検出するために使用できます。 計算された2つの文字列の simhashesハミング距離 が小さいほど、これらの文字列は同じである可能性が高くなります。

Syntax

ngramSimHashUTF8(string[, ngramsize])

Arguments

  • string — ハッシュを計算する対象の文字列。 String
  • ngramsize — オプション。n-gram のサイズ、1 から 25 の任意の数。デフォルト値は 3 です。 UInt8

Returned value

計算されたハッシュ値を返します。 UInt64

Examples

Usage example

SELECT ngramSimHashUTF8('ClickHouse') AS Hash;
┌───────Hash─┐
│ 1628157797 │
└────────────┘

sipHash128

Introduced in: v1.1

sipHash64 と同様ですが、128 ビットのハッシュ値を生成します。つまり、最終的な XOR フォールディング状態は 128 ビットまで行われます。

use sipHash128Reference for new projects

この 128 ビットのバリアントは、リファレンス実装と異なり、弱くなっています。 このバージョンは、記述された時点で公式の 128 ビット拡張が SipHash のために存在しなかったために存在します。 新しいプロジェクトにはsipHash128Reference の使用が推奨されます。

Syntax

sipHash128(arg1[, arg2, ...])

Arguments

  • arg1[, arg2, ...] — ハッシュを計算するための入力引数の可変数。 Any

Returned value

128 ビット SipHash ハッシュ値を返します。 FixedString(16)

Examples

Usage example

SELECT hex(sipHash128('foo', '\x01', 3));
┌─hex(sipHash128('foo', '', 3))────┐
│ 9DE516A64A414D4B1B609415E4523F24 │
└──────────────────────────────────┘

sipHash128Keyed

Introduced in: v23.2

sipHash128 と同様ですが、固定キーを使用するのではなく、明示的なキー引数を取ります。

use sipHash128ReferenceKeyed for new projects

この 128 ビットのバリアントは、リファレンス実装と異なり、弱くなっています。 このバージョンは、記述された時点で公式の 128 ビット拡張が SipHash のために存在しなかったために存在します。 新しいプロジェクトにはおそらくsipHash128ReferenceKeyed の使用が推奨されます。

Syntax

sipHash128Keyed((k0, k1), [arg1, arg2, ...])

Arguments

  • (k0, k1) — キーを表す二つの UInt64 値のタプル。 Tuple(UInt64, UInt64)
  • arg1[, arg2, ...] — ハッシュを計算するための入力引数の可変数。 Any

Returned value

128 ビット SipHash ハッシュ値を返します。 FixedString(16)

Examples

Usage example

SELECT hex(sipHash128Keyed((506097522914230528, 1084818905618843912),'foo', '\x01', 3));
┌─hex(sipHash128Keyed((506097522914230528, 1084818905618843912), 'foo', '', 3))─┐
│ B8467F65C8B4CFD9A5F8BD733917D9BF                                              │
└───────────────────────────────────────────────────────────────────────────────┘

sipHash128Reference

Introduced in: v23.2

sipHash128 と同様ですが、SipHash のオリジナルの著者から 128 ビットアルゴリズムを実装しています。

Syntax

sipHash128Reference(arg1[, arg2, ...])

Arguments

  • arg1[, arg2, ...] — ハッシュを計算するための入力引数の可変数。 Any

Returned value

入力引数の計算された 128 ビット SipHash ハッシュ値を返します。 FixedString(16)

Examples

Usage example

SELECT hex(sipHash128Reference('foo', '', 3));
┌─hex(sipHash128Reference('foo', '', 3))─┐
│ 4D1BE1A22D7F5933C0873E1698426260       │
└────────────────────────────────────────┘

sipHash128ReferenceKeyed

Introduced in: v23.2

sipHash128Reference と同様ですが、固定キーを使用するのではなく、明示的なキー引数を取ります。

Syntax

sipHash128ReferenceKeyed((k0, k1), arg1[, arg2, ...])

Arguments

  • (k0, k1) — キーを表す二つの値のタプル Tuple(UInt64, UInt64)
  • arg1[, arg2, ...] — ハッシュを計算するための入力引数の可変数。 Any

Returned value

入力引数の計算された 128 ビット SipHash ハッシュ値を返します。 FixedString(16)

Examples

Usage example

SELECT hex(sipHash128Reference('foo', '', 3));
┌─hex(sipHash128Reference('foo', '', 3))─┐
│ 4D1BE1A22D7F5933C0873E1698426260       │
└────────────────────────────────────────┘

sipHash64

Introduced in: v1.1

64 ビットの SipHash ハッシュ値を生成します。

これは暗号化ハッシュ関数です。これは、MD5 ハッシュ関数よりも少なくとも 3 倍速く動作します。

関数はすべての入力パラメーターを文字列として 解釈し、各々に対するハッシュ値を計算します。 次に、次のアルゴリズムを使用してハッシュを組み合わせます。

  1. 最初のハッシュ値と2番目のハッシュ値を配列に連結し、それをハッシュ化します。
  2. 以前に計算されたハッシュ値と3番目の入力パラメーターのハッシュを同様にハッシュ化します。
  3. この計算は、元の入力の残りのハッシュ値全てに対して繰り返されます。
注記

計算されたハッシュ値は、異なる引数の型に対して同じ入力値に対して等しい場合があります。 これは、例えば異なるサイズの整数型、同じデータを持つ名前付きおよび無名の Tuple、同じデータを持つ Map および対応する Array(Tuple(key, value)) 型に影響を及ぼします。

Syntax

sipHash64(arg1[, arg2, ...])

Arguments

  • arg1[, arg2, ...] — 入力引数の可変数。 Any

Returned value

入力引数の計算されたハッシュ値を返します。 UInt64

Examples

Usage example

SELECT sipHash64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS SipHash, toTypeName(SipHash) AS type;
┌──────────────SipHash─┬─type───┐
│ 11400366955626497465 │ UInt64 │
└──────────────────────┴────────┘

sipHash64Keyed

Introduced in: v23.2

sipHash64 と同様ですが、固定キーを使用するのではなく、明示的なキー引数を取ります。

Syntax

sipHash64Keyed((k0, k1), arg1[,arg2, ...])

Arguments

  • (k0, k1) — キーを表す二つの値のタプル。 Tuple(UInt64, UInt64)
  • arg1[,arg2, ...] — 入力引数の可変数。 Any

Returned value

入力値の計算されたハッシュを返します。 UInt64

Examples

Usage example

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───┐
│ 8017656310194184311 │ UInt64 │
└─────────────────────┴────────┘

wordShingleMinHash

Introduced in: v21.1

ASCII 文字列を shinglesize 語の部品(シングル)に分割し、各ワードシングルのハッシュ値を計算して、これらのハッシュを含むタプルを返します。 hashnum の最小ハッシュを使用して最小ハッシュを計算し、hashnum の最大ハッシュを使用して最大ハッシュを計算します。 大文字と小文字を区別します。

tupleHammingDistance を使用して、準複製文字列を検出するために使用できます。 2 つの文字列の場合、返されたハッシュが両方の文字列で同じであれば、それらの文字列は同じです。

Syntax

wordShingleMinHash(string[, shinglesize, hashnum])

Arguments

  • string — ハッシュを計算する対象の文字列。 String
  • shinglesize — オプション。ワードシングルのサイズ、1 から 25 の任意の数。デフォルト値は 3 です。 UInt8
  • hashnum — オプション。結果を計算するために使用される最小および最大ハッシュの数、1 から 25 の任意の数。デフォルト値は 6 です。 UInt8

Returned value

最小ハッシュと最大ハッシュの2つのハッシュを含むタプルを返します。 Tuple(UInt64, UInt64)

Examples

Usage example

SELECT wordShingleMinHash('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Tuple;
┌─Tuple──────────────────────────────────────┐
│ (16452112859864147620,5844417301642981317) │
└────────────────────────────────────────────┘

wordShingleMinHashArg

Introduced in: v1.1

ASCII 文字列を shinglesize 語の部品(シングル)に分割し、同じ入力で wordShingleMinHash 関数に基づいて計算された最小および最大ワードハッシュのシングルを返します。 大文字と小文字を区別します。

Syntax

wordShingleMinHashArg(string[, shinglesize, hashnum])

Arguments

  • string — ハッシュを計算する対象の文字列。 String
  • shinglesize — オプション。ワードシングルのサイズ、1 から 25 の任意の数。デフォルト値は 3 です。 UInt8
  • hashnum — オプション。結果を計算するために使用される最小および最大ハッシュの数、1 から 25 の任意の数。デフォルト値は 6 です。 UInt8

Returned value

hashnum ワードシングルを含む2つのタプルを返します。 Tuple(Tuple(String))

Examples

Usage example

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

Introduced in: v21.1

ASCII 文字列を shinglesize 語の部品(シングル)に分割し、同じ入力で wordShingleMinHashCaseInsensitive 関数に基づいて計算された最小および最大ワードハッシュのシングルを返します。 大文字と小文字を区別しません。

Syntax

wordShingleMinHashArgCaseInsensitive(string[, shinglesize, hashnum])

Arguments

  • string — ハッシュを計算する対象の文字列。 String
  • shinglesize — オプション。ワードシングルのサイズ、1 から 25 の任意の数。デフォルト値は 3 です。 UInt8
  • hashnum — オプション。結果を計算するために使用される最小および最大ハッシュの数、1 から 25 の任意の数。デフォルト値は 6 です。 UInt8

Returned value

hashnum ワードシングルを含む2つのタプルを返します。 Tuple(Tuple(String))

Examples

Usage example

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

Introduced in: v21.1

UTF-8 文字列を shinglesize 語の部品(シングル)に分割し、同じ入力で wordShingleMinHashCaseInsensitiveUTF8 関数に基づいて計算された最小および最大ワードハッシュのシングルを返します。 大文字と小文字を区別しません。

Syntax

wordShingleMinHashArgCaseInsensitiveUTF8(string[, shinglesize, hashnum])

Arguments

  • string — ハッシュを計算する対象の文字列。 String
  • shinglesize — オプション。ワードシングルのサイズ、1 から 25 の任意の数。デフォルト値は 3 です。 UInt8
  • hashnum — オプション。結果を計算するために使用される最小および最大ハッシュの数、1 から 25 の任意の数。デフォルト値は 6 です。 UInt8

Returned value

hashnum ワードシングルを含む2つのタプルを返します。 Tuple(Tuple(String))

Examples

Usage example

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

Introduced in: v21.1

UTF-8 文字列を shinglesize 語の部品(シングル)に分割し、同じ入力で計算された最小および最大ワードハッシュのシングルを返します。これは wordShingleMinHashUTF8 関数に基づいています。 大文字と小文字を区別します。

Syntax

wordShingleMinHashArgUTF8(string[, shinglesize, hashnum])

Arguments

  • string — ハッシュを計算する対象の文字列。 String
  • shinglesize — オプション。ワードシングルのサイズ、1 から 25 の任意の数。デフォルト値は 3 です。 UInt8
  • hashnum — オプション。結果を計算するために使用される最小および最大ハッシュの数、1 から 25 の任意の数。デフォルト値は 6 です。 UInt8

Returned value

hashnum ワードシングルを含む2つのタプルを返します。 Tuple(Tuple(String))

Examples

Usage example

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

Introduced in: v21.1

ASCII 文字列を shinglesize 語の部品(シングル)に分割し、各ワードシングルのハッシュ値を計算して、これらのハッシュを含むタプルを返します。 hashnum の最小ハッシュを使用して最小ハッシュを計算し、hashnum の最大ハッシュを使用して最大ハッシュを計算します。 大文字と小文字を区別しません。

tupleHammingDistance を使用して、準複製文字列を検出するために使用できます。 2 つの文字列の場合、返されたハッシュが両方の文字列で同じであれば、それらの文字列は同じです。

Syntax

wordShingleMinHashCaseInsensitive(string[, shinglesize, hashnum])

Arguments

  • string — ハッシュを計算する対象の文字列。 String
  • shinglesize — オプション。ワードシングルのサイズ、1 から 25 の任意の数。デフォルト値は 3 です。 UInt8
  • hashnum — オプション。結果を計算するために使用される最小および最大ハッシュの数、1 から 25 の任意の数。デフォルト値は 6 です。 UInt8

Returned value

最小ハッシュと最大ハッシュの2つのハッシュを含むタプルを返します。 Tuple(UInt64, UInt64)

Examples

Usage example

SELECT wordShingleMinHashCaseInsensitive('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Tuple;
┌─Tuple─────────────────────────────────────┐
│ (3065874883688416519,1634050779997673240) │
└───────────────────────────────────────────┘

wordShingleMinHashCaseInsensitiveUTF8

Introduced in: v21.1

UTF-8 文字列を shinglesize 語の部品(シングル)に分割し、各ワードシングルのハッシュ値を計算して、これらのハッシュを含むタプルを返します。 hashnum の最小ハッシュを使用して最小ハッシュを計算し、hashnum の最大ハッシュを使用して最大ハッシュを計算します。 大文字と小文字を区別しません。

tupleHammingDistance を使用して、準複製文字列を検出するために使用できます。 2 つの文字列の場合、返されたハッシュが両方の文字列で同じであれば、それらの文字列は同じです。

Syntax

wordShingleMinHashCaseInsensitiveUTF8(string[, shinglesize, hashnum])

Arguments

  • string — ハッシュを計算する対象の文字列。 String
  • shinglesize — オプション。ワードシングルのサイズ、1 から 25 の任意の数。デフォルト値は 3 です。 UInt8
  • hashnum — オプション。結果を計算するために使用される最小および最大ハッシュの数、1 から 25 の任意の数。デフォルト値は 6 です。 UInt8

Returned value

最小ハッシュと最大ハッシュの2つのハッシュを含むタプルを返します。 Tuple(UInt64, UInt64)

Examples

Usage example

SELECT wordShingleMinHashCaseInsensitiveUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Tuple;
┌─Tuple─────────────────────────────────────┐
│ (3065874883688416519,1634050779997673240) │
└───────────────────────────────────────────┘

wordShingleMinHashUTF8

Introduced in: v21.1

UTF-8 文字列を shinglesize 語の部品(シングル)に分割し、各ワードシングルのハッシュ値を計算して、これらのハッシュを含むタプルを返します。 hashnum の最小ハッシュを使用して最小ハッシュを計算し、hashnum の最大ハッシュを使用して最大ハッシュを計算します。 大文字と小文字を区別します。

tupleHammingDistance を使用して、準複製文字列を検出するために使用できます。 2 つの文字列の場合、返されたハッシュが両方の文字列で同じであれば、それらの文字列は同じです。

Syntax

wordShingleMinHashUTF8(string[, shinglesize, hashnum])

Arguments

  • string — ハッシュを計算する対象の文字列。 String
  • shinglesize — オプション。ワードシングルのサイズ、1 から 25 の任意の数。デフォルト値は 3 です。 UInt8
  • hashnum — オプション。結果を計算するために使用される最小および最大ハッシュの数、1 から 25 の任意の数。デフォルト値は 6 です。 UInt8

Returned value

最小ハッシュと最大ハッシュの2つのハッシュを含むタプルを返します。 Tuple(UInt64, UInt64)

Examples

Usage example

SELECT wordShingleMinHashUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Tuple;
┌─Tuple──────────────────────────────────────┐
│ (16452112859864147620,5844417301642981317) │
└────────────────────────────────────────────┘

wordShingleSimHash

Introduced in: v21.1

ASCII 文字列を shinglesize 語の部品(シングル)に分割し、ワードシングルの simhash を返します。 大文字と小文字を区別します。

bitHammingDistance を使用して、準複製文字列を検出するために使用できます。 計算された2つの文字列の simhashesハミング距離 が小さいほど、これらの文字列は同じである可能性が高くなります。

Syntax

wordShingleSimHash(string[, shinglesize])

Arguments

  • string — ハッシュを計算する対象の文字列。 String
  • shinglesize — オプション。ワードシングルのサイズ、1 から 25 の任意の数。デフォルト値は 3 です。 UInt8

Returned value

計算されたハッシュ値を返します。 UInt64

Examples

Usage example

SELECT wordShingleSimHash('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Hash;
┌───────Hash─┐
│ 2328277067 │
└────────────┘

wordShingleSimHashCaseInsensitive

Introduced in: v21.1

ASCII 文字列を shinglesize 語の部品(シングル)に分割し、ワードシングルの simhash を返します。 大文字と小文字を区別しません。

bitHammingDistance を使用して、準複製文字列を検出するために使用できます。 計算された2つの文字列の simhashesハミング距離 が小さいほど、これらの文字列は同じである可能性が高くなります。

Syntax

wordShingleSimHashCaseInsensitive(string[, shinglesize])

Arguments

  • string — ハッシュを計算する対象の文字列。 String
  • shinglesize — オプション。ワードシングルのサイズ、1 から 25 の任意の数。デフォルト値は 3 です。 UInt8

Returned value

計算されたハッシュ値を返します。 UInt64

Examples

Usage example

SELECT wordShingleSimHashCaseInsensitive('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Hash;
┌───────Hash─┐
│ 2194812424 │
└────────────┘

wordShingleSimHashCaseInsensitiveUTF8

Introduced in: v1.1

UTF-8 エンコードされた文字列を shinglesize 語の部品(シングル)に分割し、ワードシングルの simhash を返します。 大文字と小文字を区別しません。

bitHammingDistance を使用して、準複製文字列を検出するために使用できます。 計算された2つの文字列の simhashesハミング距離 が小さいほど、これらの文字列は同じである可能性が高くなります。

Syntax

wordShingleSimHashCaseInsensitiveUTF8(string[, shinglesize])

Arguments

  • string — ハッシュを計算する対象の文字列。 String
  • shinglesize — オプション。ワードシングルのサイズ、1 から 25 の任意の数。デフォルト値は 3 です。 UInt8

Returned value

計算されたハッシュ値を返します。 UInt64

Examples

Usage example

SELECT wordShingleSimHashCaseInsensitiveUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Hash;
┌───────Hash─┐
│ 2194812424 │
└────────────┘

wordShingleSimHashUTF8

Introduced in: v21.1

UTF-8 文字列を shinglesize 語の部品(シングル)に分割し、ワードシングルの simhash を返します。 大文字と小文字を区別します。

bitHammingDistance を使用して、準複製文字列を検出するために使用できます。 計算された2つの文字列の simhashesハミング距離 が小さいほど、これらの文字列は同じである可能性が高くなります。

Syntax

wordShingleSimHashUTF8(string[, shinglesize])

Arguments

  • string — ハッシュを計算する対象の文字列。 String
  • shinglesize — オプション。ワードシングルのサイズ、1 から 25 の任意の数。デフォルト値は 3 です。 UInt8

Returned value

計算されたハッシュ値を返します。 UInt64

Examples

Usage example

SELECT wordShingleSimHashUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Hash;
┌───────Hash─┐
│ 2328277067 │
└────────────┘

wyHash64

Introduced in: v22.7

64 ビット wyHash64 ハッシュ値を計算します。

Syntax

wyHash64(arg)

Arguments

  • arg — ハッシュを計算する対象の文字列。 String

Returned value

計算された 64 ビットハッシュ値を返します。 UInt64

Examples

Usage example

SELECT wyHash64('ClickHouse') AS Hash;
12336419557878201794

xxHash32

Introduced in: v20.1

文字列から xxHash を計算します。

64 ビット版はxxHash64を参照してください。

Syntax

xxHash32(arg)

Arguments

  • arg — ハッシュ化する入力文字列。 String

Returned value

入力文字列の計算された 32 ビットハッシュを返します。 UInt32

Examples

Usage example

SELECT xxHash32('Hello, world!');
┌─xxHash32('Hello, world!')─┐
│                 834093149 │
└───────────────────────────┘

xxHash64

Introduced in: v20.1

文字列から xxHash を計算します。

32 ビット版はxxHash32を参照してください。

Syntax

xxHash64(arg)

Arguments

  • arg — ハッシュ化する入力文字列。 String

Returned value

入力文字列の計算された 64 ビットハッシュを返します。 UInt64

Examples

Usage example

SELECT xxHash64('Hello, world!');
┌─xxHash64('Hello, world!')─┐
│      17691043854468224118 │
└───────────────────────────┘

xxh3

Introduced in: v22.12

XXH3 64 ビットハッシュ値を計算します。

Syntax

xxh3(expr)

Arguments

  • expr — 任意のデータ型の式のリスト。 Any

Returned value

計算された 64 ビット xxh3 ハッシュ値を返します。 UInt64

Examples

Usage example

SELECT xxh3('ClickHouse')
18009318874338624809