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 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 |
|
|
MAP |
|
|
STRUCT |
|
|