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