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データ型がサポートしている関数のみをサポートします(例えば、min、max、およびcount)。