カラムタイプ
一般的な参照については データタイプ を参照してください。
数値タイプ
数値タイプのエンコーディングは、AMD64 や ARM64 のリトルエンディアン CPU のメモリ配置に一致します。
これにより、非常に効率的なエンコーディングとデコーディングを実装できます。
整数
Int および UInt の 8、16、32、64、128 または 256 ビットのリトルエンディアン形式の文字列。
浮動小数点
IEEE 754 バイナリ表現の Float32 および Float64。
文字列
単に String の配列、すなわち (len, value)。
FixedString(N)
N バイトのシーケンスの配列。
IP
IPv4 は UInt32
数値タイプのエイリアスであり、UInt32 として表現されます。
IPv6 は FixedString(16)
のエイリアスであり、直接バイナリとして表現されます。
タプル
タプルは単にカラムの配列です。たとえば、Tuple(String, UInt8) は二つのカラムを 連続してエンコードしたものです。
マップ
Map(K, V)
は三つのカラムから構成されます: Offsets ColUInt64, Keys K, Values V
。
Keys
と Values
カラムの行数は Offsets
の最後の値です。
配列
Array(T)
は二つのカラムから構成されています: Offsets ColUInt64, Data T
。
Data
の行数は Offsets
の最後の値です。
Nullable
Nullable(T)
は Nulls ColUInt8, Values T
で同じ行数を持ちます。
UUID
FixedString(16)
のエイリアスで、UUID 値はバイナリとして表現されます。
列挙型
Int8
または Int16
のエイリアスですが、各整数は特定の String
値にマッピングされます。
ローカルディクショナリ
LowCardinality(T)
は Index T, Keys K
から構成されます。
ここで、K
は Index
のサイズに応じて (UInt8, UInt16, UInt32, UInt64) のいずれかです。
ブール値
UInt8
のエイリアスで、0
は false、1
は true です。