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

MaxCompute:MaxCompute V1.0 データ型エディション

最終更新日:Jun 02, 2026

背景情報

MaxCompute V1.0 データ型エディションは、MaxCompute における 3 つのデータ型エディションの 1 つです。

このエディションは、依存コンポーネントが V2.0 データ型エディションをサポートしていない初期の MaxCompute プロジェクト向けです。

プロジェクト設定

MaxCompute プロジェクトで V1.0 データ型エディションを使用するには、次の 3 つのプロジェクトプロパティをすべて設定する必要があります。

setproject odps.sql.type.system.odps2=false; -- MaxCompute V2.0 データ型を無効化
setproject odps.sql.decimal.odps2=false;      -- MaxCompute V2.0 の DECIMAL 型を無効化
setproject odps.sql.hive.compatible=false;    -- Hive 互換データ型を無効化

サポートされるデータ型

基本データ型

すべての基本データ型は NULL 値をサポートします。

データ型

定数の例

説明

BIGINT

100000000000L および -1L

  • 64 ビット符号付き整数。

  • 範囲:-2⁶³ + 1 ~ 2⁶³ - 1。

DOUBLE

3.14159261E+7

64 ビット二進浮動小数点。

DECIMAL

3.5BD および 99999999999.9999999BD

正確な数値型。デフォルト精度:decimal(54,18)。精度とスケールは調整できません。整数部の範囲:-10³⁶ + 1 ~ 10³⁶ - 1。小数部:10⁻¹⁸ まで正確。詳細については、「DECIMAL データ型」をご参照ください。

STRING

"abc"'bcd'"alibaba"'inc'

  • 文字列型。

  • 最大長:8 MB。

DATETIME

DATETIME'2017-11-11 00:00:00'

  • 日時型。

  • 範囲:0000-01-01 ~ 9999-12-31。

  • DATETIME のクエリ結果にはミリ秒精度は含まれません。ミリ秒を表示するには、Tunnel コマンドで -dfp オプションを使用して時刻形式を指定してください。

  • 例:tunnel upload -dfp 'yyyy-MM-dd HH:mm:ss.SSS'。詳細については、「Tunnel コマンド」をご参照ください。

BOOLEAN

True および False

  • ブール型。

  • 範囲:True および False。

注意事項

  • 定数

    • 整数定数:デフォルトでは BIGINT として扱われます。定数が BIGINT の範囲を超える場合 (例: 1,000,000,000,000,000,000,000,000)、DOUBLE として扱われます。例えば、SELECT 1 + a; における 1 は BIGINT です。

    • DECIMAL 定数:DECIMAL 定数をフィールドに挿入する場合は、BD サフィックスを使用してください。例:

      INSERT INTO test_tb(a) VALUES (3.5BD);
    • 文字列連結:STRING 定数は連結できます。例えば、abcxyz を連結すると abcxyz になります。

  • パーティションキー列:パーティションテーブルのパーティションキー列は STRING 型である必要があります。

  • 組み込み関数:MaxCompute V2.0 データ型のパラメーターを含む組み込み関数は、V1.0 データ型エディションでは使用できません。

MaxCompute V2.0 データ型エディションとの相違点

  • LIMIT、ORDER BY、DISTRIBUTE BY、SORT BY、CLUSTER BY の各操作は、MaxCompute V1.0 データ型エディションと MaxCompute V2.0 データ型エディションで動作が異なります。

    以下の例では、SELECT * FROM t1 UNION ALL SELECT * FROM t2 LIMIT 10; を使用しています。

    エディション

    等価な文

    MaxCompute V1.0

    SELECT * FROM t1 UNION ALL SELECT * FROM (SELECT * FROM t2 LIMIT 10) t2;

    MaxCompute V2.0

    SELECT * FROM (SELECT * FROM t1 UNION ALL SELECT * FROM t2) t LIMIT 10;

  • IN 式は、V1.0 データ型エディションと V2.0 データ型エディションで動作が異なります。

    以下の例では、a IN (1, 2, 3) を使用しています。

    エディション

    動作

    MaxCompute V1.0

    括弧内のすべての値は同じ型である必要があります。

    MaxCompute V2.0

    括弧内の値は暗黙的に同じ型に変換されます。

複合データ型

複合データ型はネストできます。複合型に関連する組み込み関数については、「ARRAY」、「MAP」、「STRUCT」をご参照ください。

データ型

定義

コンストラクター

ARRAY

ARRAY<BIGINT>ARRAY<STRUCT<a:BIGINT, b:STRING>>

ARRAY(1, 2, 3)ARRAY(NAMED_STRUCT('a', 1, 'b', '2'), NAMED_STRUCT('a', 3, 'b', '4'))

MAP

MAP<STRING, STRING>MAP<BIGINT, ARRAY<STRING>>

MAP("k1", "v1", "k2", "v2")MAP(1L, ARRAY('a', 'b'), 2L, ARRAY('x', 'y'))

STRUCT

STRUCT<'x', BIGINT, 'y', BIGINT>STRUCT<'field1', BIGINT, 'field2', ARRAY<BIGINT>, 'field3', MAP<BIGINT, BIGINT>>

NAMED_STRUCT('x', 1, 'y', 2)NAMED_STRUCT('field1', 100L, 'field2', ARRAY(1, 2), 'field3', MAP(1, 100, 2, 200))