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

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

最終更新日:Sep 16, 2025

MaxCompute V1.0データ型エディションは、MaxComputeの3つのデータ型エディションの1つです。 MaxCompute V1.0データ型エディションは、MaxCompute V1.0データ型のみをサポートしています。 このトピックでは、MaxCompute V1.0データ型エディションの定義、サポートされているデータ型、およびこのエディションと他のデータ型エディションとの違いについて説明します。

定義

プロジェクトでMaxCompute V1.0データ型エディションが使用されている場合、データ型は次のコードに基づいて定義されます。

setproject odps.sql.type.system.odps2=false; -- Disable MaxCompute V2.0 data types. 
setproject odps.sql.decimal.odps2=false; -- Disable the DECIMAL type in MaxCompute V2.0. 
setproject odps.sql.hive.compatible=false; -- Disable Hive-compatible data types. 

シナリオ

MaxCompute V1.0データ型エディションは、プロジェクトがMaxComputeの初期バージョンであり、MaxCompute V2.0データ型エディションをサポートしていないコンポーネントに依存するシナリオに適しています。

データ型

データ型

定数の例

説明

BIGINT

100000000000L、-1L

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

有効値: -2 63 + 1〜2 63 -1。

DOUBLE

3.14159261E + 7

64ビットバイナリ浮動小数点型。

DECIMAL

3.5BD、99999999999.9999999BD

10進法に基づく正確な数値型。 デフォルトでは、10進数 (54,18) に設定されており、精度とスケールは調整できません。

整数部の有効値: -10 36 + 1〜10 36 -1。 小数部は10 -18まで正確です。

STRING

"abc" 、'bcd' 、"alibaba" 、および 'inc'

文字列型。

最大長は8 MBです。

日付時刻

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

DATETIMEタイプ。

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

BOOLEAN

真と偽

BOOLEANタイプ。

有効な値:True と False。

MaxCompute V1.0データ型エディションを使用する場合は、次の点に注意してください。

  • 上記のデータ型はすべてNULL値をサポートしています。

  • デフォルトでは、整数定数はBIGINT型として処理されます。 定数がBIGINT型の値の範囲 (1,000,000,000,000,000,000,000,000など) を超える場合、その定数はDOUBLE型として処理されます。 たとえば、SELECT 1 + a; の整数定数1はBIGINT型として処理されます。

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

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

  • STRING型の定数を連結することができる。 例えば、abcおよびxyzは、abcxyzとして連結することができる。

  • 定数がDECIMAL型のフィールドに挿入されている場合、定数の式は定数定義の形式に準拠している必要があります。 例: 次のサンプルコードの3.5BD

    INSERT INTO test_tb(a) VALUES (3.5BD);
  • DATETIME型の値にはミリ秒コンポーネントは含まれません。 Tunnelコマンドで -dfpを追加すると、ミリ秒単位の正確な時間形式を指定できます。たとえば、tunnel upload -dfp 'yyyy-MM-dd HH:mm:ss.SSS' です。 Tunnelコマンドの詳細については、「Tunnelコマンド」をご参照ください。

MaxCompute V1.0データ型エディションと他のデータ型エディションの違い

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

    この例では、SELECT * FROM t1 UNION ALL SELECT * FROM t2 LIMIT10; ステートメントが使用されています。

    • 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式は、MaxCompute V1.0データ型エディションとMaxCompute V2.0データ型エディションで異なります。

    この例では、a In (1,2, 3) 式が使用される。

    • MaxCompute V1.0データ型エディションを使用する場合、括弧 () で囲まれた値はすべて同じ型である必要があります。

    • MaxCompute V2.0データ型エディションを使用する場合、括弧 () で囲まれたすべての値を暗黙的に同じ型に変換できます。

複合データ型

データ型

定義

コンストラクター

ARRAY

  • ARRAY<BIGINT>

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

  • アレイ (1, 2, 3)

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

MAP

  • MAP <ストリング、ストリング>

  • 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>>

  • NAMED_STRUCT('x', 1, 'y', 2)

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

説明

MaxComputeでは、複雑なデータ型をネストできます。 関連する組み込み関数の詳細については、「ARRAY」、「MAP」、および「STRUCT」をご参照ください。