背景情報
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 |
|
|
DOUBLE |
| 64 ビット二進浮動小数点。 |
DECIMAL |
| 正確な数値型。デフォルト精度: |
STRING |
|
|
DATETIME |
|
|
BOOLEAN |
|
|
注意事項
定数
整数定数:デフォルトでは 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 定数は連結できます。例えば、
abcとxyzを連結すると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 |
|
|
MAP |
|
|
STRUCT |
|
|