ApsaraDB for ClickHouse は、このリファレンスに記載されているデータの型をサポートしています。完全な上流の型システムについては、「データの型」をご参照ください(オープンソースの ClickHouse ドキュメント)。
サポートされるデータの型
整数
符号付き整数です。ストレージを最小限に抑えるため、値の範囲をカバーできる最小の型を使用してください。
| キーワード | 範囲 |
|---|---|
Int8 | –128 ~ 127 |
Int16 | –32,768 ~ 32,767 |
Int32 | –2,147,483,648 ~ 2,147,483,647 |
Int64 | –9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
符号なし整数(UInt8、UInt16、UInt32、UInt64)については、ClickHouse ドキュメントの「整数型」をご参照ください。
浮動小数点
| キーワード | 説明 |
|---|---|
Float32 | 単精度浮動小数点数。C++ の FLOAT と同等です。4 バイト(32 ビットバイナリ)を使用します。 |
Float64 | 倍精度浮動小数点数。C++ の DOUBLE と同等です。8 バイト(64 ビットバイナリ)を使用します。 |
正確な計算が求められる財務データやビジネスデータには、Float32やFloat64の代わりにDecimalを使用してください。浮動小数点演算では丸め誤差が発生する可能性があります。
Decimal
加算、減算、乗算において精度を維持する符号付き固定小数点数です。
サポートされるフォーマット:Decimal(P, S)、Decimal32(S)、Decimal64(S)、Decimal128(S)。
文字列
| キーワード | 説明 |
|---|---|
String | サイズに制限のない可変長文字列で、ヌルバイトを含むことができます。他のデータベースシステムにおける VARCHAR、BLOB、および CLOB と同等です。 |
FixedString(N) | 正確に N バイトの固定長文字列です。すべての値が同じバイト長である場合、String よりも効率的です。 |
FixedString の効率的な利用シーン:
IPv6 アドレスのバイナリ表現:
FixedString(16)ru_RUやen_USなどの言語コード通貨コード(例:
USDおよびRUB)MD5 ハッシュ値:
FixedString(16)SHA-256 ハッシュ値:
FixedString(32)
日付と時刻
| キーワード | 説明 |
|---|---|
Date | 1970-01-01 からの経過日数として日付を格納します。2 バイトを使用し、符号なしです。タイムゾーン情報は保持しません。 |
DateTime | 1970-01-01 00:00:00 からの経過秒数として日時を格納します。4 バイトを使用し、符号なしです。DateTime の有効値範囲は Date と同じで、最小値は 1970-01-01 00:00:00 です。精度は秒単位で、うるう秒はサポートしていません。タイムゾーンはクライアントまたはサーバーのシステムタイムゾーンです。 |
DateTime64 | 特定の時点の日付と時刻を格納します。 |
DateTimeよりもDateの方が高速であり、ストレージも半分(2 バイト対 4 バイト)で済みます。圧縮後にはこのサイズ差がさらに顕著になります。
ブール値
ClickHouse にはネイティブのブール型がありません。0 を false、1 を true として、ブール値には UInt8 を使用してください。
配列
Array(T) — 同じ型 T の要素のコレクションです。要素の型には、Array を含む任意の ClickHouse の型を使用できます。
多次元配列は避けてください。ClickHouse は部分的にしかサポートしておらず、MergeTree テーブルには多次元配列を格納できません。
タプル
Tuple(T1, T2, ...) — 異なる型の要素のコレクションです。
タプルはメモリテーブル以外のテーブルには格納できません。IN 式やラムダ関数を使用したクエリで一時的な列をグループ化する目的で使用してください。
ドメイン
ドメイン型は、人間が読みやすい入出力形式で IP アドレスをバイナリ形式で格納します。
IPv4 アドレス:
UInt32とバイナリ互換IPv6 アドレス:
FixedString(16)とバイナリ互換
列挙型
| キーワード | 範囲 | 注記 |
|---|---|---|
Enum8 | –128 ~ 127 | — |
Enum16 | –32,768 ~ 32,767 | 値を空にできます |
Nullable
Nullable(T) — 任意の基本型 T をラップして NULL 値を許容します。デフォルト値は NULL ですが、ClickHouse サーバーの構成によっては異なる場合があります。
制約事項:
Nullable列はテーブルのインデックスに含めることはできません。
ネスト
Nested — セル内に埋め込まれたテーブルに類似したネストデータ構造です。CREATE TABLE と同じ構文でフィールド名と型を定義します。外部テーブルの各行は、ネスト構造内の任意の行数に対応できます。