すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB for SelectDB:データ型

最終更新日:Mar 29, 2025

テーブルフィールドに適切なデータ型を選択することで、データベースのパフォーマンスとストレージ効率が向上し、データベースのデータ整合性と可読性の維持に役立ち、データベースのセキュリティと一貫性が強化されます。このトピックでは、ApsaraDB for SelectDB でサポートされているデータ型について説明します。SHOW DATA TYPES; 文を実行して、SelectDB でサポートされているデータ型をクエリできます。

数値データ型

データ型

バイト数

説明

BOOLEAN

1

ブール値。有効な値:

0: false。

1: true。

TINYINT

1

符号付き整数。

有効な値:-128 ~ 127。

SMALLINT

2

符号付き整数。

有効な値:-32768 ~ 32767。

INT

4

符号付き整数。

有効な値:-2147483648 ~ 2147483647。

BIGINT

8

符号付き整数。

有効な値:-9223372036854775808 ~ 9223372036854775807。

LARGEINT

16

符号付き整数。

有効な値:-2^127 + 1 ~ 2^127 - 1。

FLOAT

4

浮動小数点数。

有効な値:-3.4 × 10^38 ~ 3.4 × 10^38。

DOUBLE

8

浮動小数点数。

有効な値:-1.79 × 10^308 ~ 1.79 × 10^308。

DECIMAL

4/8/16

高精度固定小数点数。

構文:DECIMAL(M[,D])

  • M:

    • 精度のことで、有効桁数の合計を表します。

    • 有効な値:1 ~ 38。

  • D:

    • スケールのことで、小数点以下の桁数の合計を表します。

    • 有効な値:0 ~ 精度。

      • 精度が 0 以上 9 以下の場合、4 バイトが使用されます。

      • 精度が 9 より大きく 18 以下の場合、8 バイトが使用されます。

      • 精度が 16 より大きく 38 以下の場合、16 バイトが使用されます。

日付と時刻のデータ型

データ型

バイト数

説明

DATE

16

日付。

有効な値:'0000-01-01' ~ '9999-12-31'。

デフォルトの出力形式:yyyy-MM-dd

DATETIME

16

日付と時刻。

構文:DATETIME([P])

説明

P:

  • 精度のことで、有効桁数の合計を表します。

  • デフォルト値:0。

  • 有効な値:0 ~ 6。小数点以下 6 桁までサポートされており、値はマイクロ秒まで正確になります。

有効な値:'0000-01-01 00:00:00[.000000]' ~ '9999-12-31 23:59:59[.999999]'。

デフォルトの出力形式:yyyy-MM-dd HH:mm:ss.SSSSSS

文字列データ型

データ型

バイト数

説明

CHAR

M

固定長文字列。

構文:CHAR(M)

説明

M は、固定長文字列に含まれるバイト数を示します。

M の有効な値:1 ~ 255。

VARCHAR

不定

可変長文字列。

構文:VARCHAR(M)

説明
  • M は、可変長文字列に含まれるバイト数を示します。

  • 可変長文字列は UTF-8 形式で格納されます。各英字は 1 バイトを占め、各漢字は 3 バイトを占めます。

M の有効な値:1 ~ 65533。

STRING

不定

可変長文字列。

デフォルトおよび最小の長さ:1,048,576 バイト(1 MB に相当)。

最大の長さ:2,147,483,643 バイト(2 GB に相当)。

重要
  • jsonb_type_length_soft_limit_bytes パラメーターを変更して長さを調整できます。

  • STRING データ型は値列にのみ適用され、キー列、パーティション列、またはバケット列には適用されません。

半構造化データ型

データ型

バイト数

説明

ARRAY

不定

型 T の要素で構成される配列。

構文:ARRAY<T>。

説明
  • T は基本データ型を示します。

  • T の有効な値:

    BOOLEAN, TINYINT, SMALLINT, INT, BIGINT, LARGEINT, FLOAT, DOUBLE, DECIMAL, DATE,
    DATEV2, DATETIME, DATETIMEV2, CHAR, VARCHAR, STRING

使用上の注意:

  • MAP 列をキー列として使用することはできません。

  • MAP 列は、Duplicate キーモデルまたは Unique キーモデルのテーブルでのみ使用できます。

MAP

不定

キーと値のペアで構成されるマップ。

構文:MAP<K,V>。

説明

キーと値のペアには、次の型がサポートされています。

BOOLEAN, TINYINT, SMALLINT, INT, BIGINT, LARGEINT, FLOAT, DOUBLE, DECIMAL, DECIMALV3, DATE,
DATEV2, DATETIME, DATETIMEV2, CHAR, VARCHAR, STRING

使用上の注意:

  • MAP 列をキー列として使用することはできません。

  • MAP 列は、Duplicate キーモデルまたは Unique キーモデルのテーブルでのみ使用できます。

STRUCT

不定

複数のフィールドで構成される構造体。構造体は複数列の集合です。

構文:STRUCT<field_name:field_type, ... >

説明
  • field_name:フィールドの識別子。一意である必要があります。

  • field_type:フィールドの型。

使用上の注意:

  • MAP 列をキー列として使用することはできません。

  • MAP 列は、Duplicate キーモデルのテーブルでのみ使用できます。

JSON

不定

JSON データ型は、データをバイナリ形式で格納します。内部フィールドには、JSON 関数を使用してアクセスします。

デフォルトの長さ:1,048,576 バイト(1 MB に相当)。

最大の長さ:2,147,483,643 バイト(2 GB に相当)。

説明

jsonb_type_length_soft_limit_bytes パラメーターを変更して長さを調整できます。

VARIANT

不定

JSON データなどの半構造化データ向けに開発された動的変数データ型。このタイプのデータは、任意の JSON データフィールドに格納できます。システムは JSON データフィールドをストレージ用に自動的にサブカラムに分割します。これにより、ストレージ効率とクエリおよび分析のパフォーマンスが向上します。VARIANT データ型は、いつでも変更できる複雑なネストデータ構造に適しています。

使用上の注意:

  • VARIANT データ型は値列にのみ適用され、キー列、パーティション列、またはバケット列には適用されません。

重要

インスタンスで SelectDB Core 4.0.0 以降が実行されていることを確認してください。インスタンスで SelectDB Core 4.0.0 より前のカーネルバージョンが実行されている場合は、カーネルバージョンをスペックアップしてください。詳細については、「インスタンスのカーネルバージョンを更新する」をご参照ください。

集約データ型

データ型

バイト数

説明

HLL

不定

個別要素のおおよその数。データ量が大きい場合、HyperLogLog(HLL)のパフォーマンスは Count Distinct よりも高くなります。

使用上の注意:

  • ほとんどの場合、HLL のエラー率は約 1 % です。場合によっては、HLL のエラー率が最大 2 % に達することがあります。

  • HLL 列を含むテーブルを作成する場合、HLL 列をキー列として設定することはできず、HLL 列の集約型を HLL_UNION に設定する必要があります。

  • 長さやデフォルト値を指定する必要はありません。長さは、データ集約の度合いに基づいて自動的に変化します。

  • HLL 列は、hll_union_agghll_raw_agghll_cardinalityhll_hash 関数を使用してのみクエリまたは使用できます。

BITMAP

不定

ユニーク訪問者(UV)数やオーディエンス選択などのシナリオに適用できる、個別要素の正確な数。

使用上の注意:

  • BITMAP 列は、Aggregate、Unique、または Duplicate キーモデルのテーブルで使用でき、キー列として設定することはできません。Aggregate キーモデルで BITMAP 列を含むテーブルを作成する場合は、BITMAP 列の集約型を BITMAP_UNION に設定する必要があります。

  • 長さやデフォルト値を指定する必要はありません。長さは、データ集約の度合いに基づいてシステム内で指定されます。

  • BITMAP 列は、bitmap_union_countbitmap_unionbitmap_hashbitmap_hash64 などの関数を使用してのみクエリまたは使用できます。

QUANTILE_STATE

不定

分位数のおおよその値を計算するために使用できるデータ型。

データのインポート時に、同じキーを持つ異なる値が事前に集約されます。

  • 集約された値の数が 2,048 を超えない場合、すべてのデータが詳細に記録されます。

  • 集約された値の数が 2,048 を超える場合、TDigest アルゴリズムがデータの集約またはクラスタリングに使用され、データの集約またはクラスタリング後に重心点を保存します。

使用上の注意:

  • QUANTILE_STATE 列を含むテーブルを作成する場合、QUANTILE_STATE 列をキー列として設定することはできず、QUANTILE_STATE 列の集約型を QUANTILE_UNION に設定する必要があります。

  • 長さやデフォルト値を指定する必要はありません。長さは、データ集約の度合いに基づいてシステム内で指定されます。

  • QUANTILE_STATE 列は、QUANTILE_PERCENTQUANTILE_UNIONTO_QUANTILE_STATE などの関数を使用してのみクエリまたは使用できます。

AGG_STATE

不定

集計関数。

集約を高速化するために使用され、state, merge, and union コンビネータでのみ使用できます。

使用上の注意:

  • AGG_STATE 列をキー列として使用することはできません。AGG_STATE 列を含むテーブルを作成する場合は、集計関数のシグネチャを宣言する必要があります。

  • 長さやデフォルト値を指定する必要はありません。格納されるデータの実際のサイズは、関数の実装によって異なります。

IP アドレスデータ型

重要

次のデータ型は、SelectDB Core 4.0.0 以降でのみサポートされています。インスタンスで SelectDB Core 4.0.0 より前のカーネルバージョンが実行されている場合は、カーネルバージョンをスペックアップしてください。詳細については、「インスタンスのカーネルバージョンを更新する」をご参照ください。

データ型

バイト数

説明

IPv4

4 バイト

IPv4 アドレスを 4 バイトのバイナリ文字列に格納します。IPv4 アドレスデータ型は、ipv4_* 関数で使用されます。

IPv6

16 バイト

IPv6 アドレスを 16 バイトのバイナリ文字列に格納します。IPv6 アドレスデータ型は、ipv6_* 関数で使用されます。