メインコンテンツまでスキップ
バージョン: 26.x

データ型

Apache Dorisは標準的なSQL構文をサポートし、MySQL Network Connection Protocolを使用し、MySQLの構文プロトコルと高い互換性があります。そのため、データ型のサポートに関して、Apache DorisはMySQLに関連するデータ型と可能な限り密接に整合させています。

Dorisでサポートされているデータ型のリストは以下の通りです:

数値データ型

型名ストレージ (バイト)説明
BOOLEAN12つの値のみを格納するブール型データ型:0は偽を表し、1は真を表します。
TINYINT1整数値、符号付きの範囲は-128から127です。
SMALLINT2整数値、符号付きの範囲は-32768から32767です。
INT4整数値、符号付きの範囲は-2147483648から2147483647です。
BIGINT8整数値、符号付きの範囲は-9223372036854775808から9223372036854775807です。
LARGEINT16整数値、範囲は[-2^127 + 1から2^127 - 1]です。
FLOAT4単精度浮動小数点数、範囲は[-3.4 * 10^38から3.4 * 10^38]です。
DOUBLE8倍精度浮動小数点数、範囲は[-1.79 * 10^308から1.79 * 10^308]です。
DECIMAL4/8/16/32精度(桁数の合計)とスケール(小数点の右側の桁数)によって定義される正確な固定小数点数。形式:DECIMAL(P[,S])、ここでPは精度、Sはスケールです。Pの範囲は[1, MAX_P]で、enable_decimal256=falseの場合はMAX_P=38、enable_decimal256=trueの場合はMAX_P=76、Sの範囲は[0, P]です。
enable_decimal256のデフォルト値はfalseです。trueに設定するとより正確な結果が得られますが、パフォーマンスの低下を伴います。
ストレージ要件:
  • 0 < precision <= 9の場合は4バイト。
  • 9 < precision <= 18の場合は8バイト。
  • 18 < precision <= 38の場合は16バイト。
  • 38 < precision <= 76の場合は32バイト。

日付時刻データ型

型名ストレージ (バイト)説明
DATE4DATEは暦年、月、日の値を保持し、サポートされる範囲は['0000-01-01', '9999-12-31']です。デフォルト出力形式:'yyyy-MM-dd'。
DATETIME8DATEとTIMEの組み合わせ 形式:DATETIME ([P])。オプションパラメータPは時間精度を表し、値の範囲は[0,6]で、最大6桁の小数(マイクロ秒)をサポートします。設定されていない場合は0です。サポートされる範囲は['0000-01-01 00:00:00 [.000000]', '9999-12-31 23:59:59 [.999999]']です。デフォルト出力形式:'yyy-MM-dd HH: mm: ss. SSSSSS '。

文字列データ型

型名ストレージ (バイト)説明
CHARM固定長文字列、パラメータMは文字でカラムの長さを指定します。Mの範囲は1から255です。
VARCHAR可変長可変長文字列、パラメータMは文字で最大文字列長を指定します。Mの範囲は1から65533です。可変長文字列はUTF-8エンコーディングで格納されます。英字は1バイト、漢字は3バイトを占有します。
STRING可変長可変長文字列、デフォルトで1048576バイト(1MB)をサポートし、最大2147483643バイト(2GB)の精度制限があります。サイズはstring_type_length_soft_limit_bytesを通じてBEで調整できます。STRING型は値カラムでのみ使用でき、キーカラムやパーティションバケットカラムでは使用できません。

半構造化データ型

型名ストレージ (バイト)説明
ARRAY可変長型Tの要素で構成される配列で、キーカラムとして使用することはできません。現在、DuplicateとUniqueモデルのTableでの使用をサポートしています。
MAP可変長型KとVの要素で構成されるマップで、Keyカラムとして使用することはできません。これらのマップは現在、DuplicateとUniqueモデルを使用するTableでサポートされています。
STRUCT可変長複数のフィールドで構成される構造体で、複数のカラムのコレクションとしても理解できます。Keyとして使用することはできません。現在、STRUCTはDuplicateモデルのTableでのみ使用できます。構造体内のフィールドの名前と数は固定されており、常にNullableです。
JSON可変長バイナリJSON型で、バイナリJSON形式で格納され、JSON関数を通じて内部JSONフィールドにアクセスします。デフォルトで最大1048576バイト(1MB)をサポートし、最大2147483643バイト(2GB)まで調整できます。この制限はBE設定パラメータ'jsonb_type_length_soft_limit_bytes'を通じて変更できます。
VARIANT可変長VARIANTデータ型は動的に適応可能で、JSONなどの半構造化データ用に特別に設計されています。任意のJSONオブジェクトを格納でき、自動的にJSONフィールドをサブカラムに分割して、ストレージ効率とクエリパフォーマンスを向上させます。長さ制限と設定方法はSTRING型と同じです。ただし、VARIANT型は値カラムでのみ使用でき、キーカラムやパーティション/バケットカラムでは使用できません。

集約データ型

型名ストレージ (バイト)説明
HLL可変長HLLはHyperLogLogの略で、あいまい重複除去です。大規模なデータセットを扱う際にCount Distinctよりも優れたパフォーマンスを発揮します。HLLのエラー率は通常約1%で、時には2%に達することもあります。HLLはキーカラムとして使用できず、Table作成時の集約タイプはHLL_UNIONです。ユーザーは長さやデフォルト値を指定する必要がありません。これはデータの集約レベルに基づいて内部的に制御されます。HLLカラムは、hll_union_agg、hll_raw_agg、hll_cardinality、hll_hashなどの関連関数を通じてのみクエリまたは使用できます。
BITMAP可変長BITMAP型はAggregateTable、UniqueTable、またはDuplicateTableで使用できます。- UniqueTableまたはDuplicateTableで使用する場合、BITMAPは非キーカラムとして使用する必要があります。- AggregateTableで使用する場合、BITMAPも非キーカラムとして機能し、Table作成時に集約タイプをBITMAP_UNIONに設定する必要があります。ユーザーは長さやデフォルト値を指定する必要がありません。これはデータの集約レベルに基づいて内部的に制御されます。BITMAPカラムは、bitmap_union_count、bitmap_union、bitmap_hash、bitmap_hash64などの関連関数を通じてのみクエリまたは使用できます。
QUANTILE_STATE可変長近似分位値を計算するために使用される型です。読み込み時、同じキーで異なる値に対して事前集約を実行します。値の数が2048を超えない場合、すべてのデータを詳細に記録します。値の数が2048より大きい場合、TDigestアルゴリズムを使用してデータを集約(クラスタ化)し、クラスタ化後の重心点を格納します。QUANTILE_STATEはキーカラムとして使用できず、Table作成時は集約タイプQUANTILE_UNIONと組み合わせる必要があります。ユーザーは長さやデフォルト値を指定する必要がありません。これはデータの集約レベルに基づいて内部的に制御されます。QUANTILE_STATEカラムは、QUANTILE_PERCENT、QUANTILE_UNION、TO_QUANTILE_STATEなどの関連関数を通じてのみクエリまたは使用できます。
AGG_STATE可変長集約関数はstate/merge/union関数の結合子でのみ使用できます。AGG_STATEはキーカラムとして使用できません。Table作成時には、集約関数のシグネチャを併せて宣言する必要があります。ユーザーは長さやデフォルト値を指定する必要がありません。実際のデータストレージサイズは関数の実装に依存します。

IP型

型名ストレージ (バイト)説明
IPv44ipv4_*ファミリの関数と併用して使用されます。
IPv616ipv6_*ファミリの関数と併用して使用されます。

SHOW DATA TYPES;ステートメントでDorisがサポートするすべてのデータ型を表示することもできます。