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

UUID

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

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

UUIDの例:

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

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

例:

結果:

ワークアラウンドとして、UUIDを直感的なソート順序を持つタイプに変換することができます。

UInt128に変換する例:

結果:

Generating UUIDs

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

Usage Example

例1

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

結果:

例2

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

Restrictions

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

UUIDデータ型は、算術演算(例えば、abs)や、sumavgなどの集約関数ではサポートされていません。