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

UUID

Universally Unique Identifier (UUID) は、レコードを識別するために使用される16バイトの値です。UUIDの詳細については、Wikipediaを参照してください。

異なるUUIDのバリアントが存在します(こちらを参照)が、ClickHouseでは挿入されたUUIDが特定のバリアントに準拠しているかどうかの検証は行われません。UUIDは内部的に、SQLレベルで8-4-4-4-12の表現を持つ16バイトのランダムなバイト列として扱われます。

UUIDの例:

デフォルトのUUIDは全ゼロです。これは、新しいレコードが挿入される際に、UUIDカラムの値が指定されない場合などに使用されます。

歴史的な理由から、UUIDはその後半でソートされます。したがって、UUIDはテーブルの主キー、ソートキー、またはパーティションキーに直接使用すべきではありません。

例:

結果:

回避策として、UUIDを直感的なソート順を持つ型に変換することができます。

UInt128への変換を使用した例:

結果:

UUIDの生成

ClickHouseは、ランダムなUUIDバージョン4の値を生成するためにgenerateUUIDv4関数を提供しています。

使用例

例 1

この例では、UUIDカラムを持つテーブルの作成と、そのテーブルへの値の挿入を示します。

結果:

例 2

この例では、レコードが挿入される際にUUIDカラムの値が指定されておらず、デフォルトのUUID値が挿入されます。

制約

UUIDデータ型は、Stringデータ型がサポートする関数(例えば、minmax、およびcount)のみをサポートします。

UUIDデータ型は、absなどの算術演算や、sumおよびavgなどの集約関数をサポートしていません。