MaxComputeには、MaxCompute V1.0データ型エディション、MaxCompute V2.0データ型エディション、Hive互換データ型エディションの3つのデータ型エディションがあります。 ビジネス要件に基づいてデータ型エディションを選択できます。 このトピックでは、これらのデータ型エディションについて説明し、プロジェクトのデータ型エディションを選択する方法、およびプロジェクトのデータ型エディションを表示および変更する方法について説明します。
MaxComputeでサポートされているデータ型のエディション
MaxComputeでは、次のパラメーターを使用してデータ型のエディションを設定できます。
odps.sql.type.system.odps2: MaxCompute V2.0データ型エディションを有効にするかどうかを指定します。 有効な値: trueまたはfalse。
odps.sql.de cimal.odps2: MaxCompute V2.0でDECIMAL型を有効にするかどうかを指定します。 有効な値: trueまたはfalse。
odps.sql.hive.com patible: Hive互換データ型エディションを有効にするかどうかを指定します。 有効な値: trueまたはfalse。 Hive互換データ型エディションでは、一部のデータ型とSQL文はHiveと互換性があります。
プロジェクトを追加すると、MaxComputeでは適切なデータ型のエディションを選択できます。 各データ型エディションのデフォルト設定:
MaxCompute V1.0データ型エディション
setproject odps.sql.type.system.odps2=false; -- Disable the MaxCompute V2.0 data type edition. setproject odps.sql.decimal.odps2=false; -- Disable the DECIMAL type in MaxCompute V2.0. setproject odps.sql.hive.compatible=false; -- Disable the Hive-compatible data type edition.MaxCompute V1.0データ型エディションは、依存コンポーネントがMaxCompute V2.0データ型エディションをサポートしていない初期のMaxComputeプロジェクトに適しています。
MaxCompute V2.0データ型エディション
setproject odps.sql.type.system.odps2=true; -- Enable the MaxCompute V2.0 data type edition. setproject odps.sql.decimal.odps2=true; -- Enable the DECIMAL data type in MaxCompute V2.0. setproject odps.sql.hive.compatible=false; -- Disable the Hive-compatible data type edition.MaxCompute V2.0データ型エディションは、プロジェクトに4月2020日より前に生成されたデータが含まれておらず、MaxCompute V2.0データ型エディションをサポートするコンポーネントに依存するシナリオに適しています。
Hive互換データ型エディション
setproject odps.sql.type.system.odps2=true; -- Enable the MaxCompute V2.0 data type edition. setproject odps.sql.decimal.odps2=true; -- Enable the DECIMAL data type in MaxCompute V2.0. setproject odps.sql.hive.compatible=true; -- Enable the Hive-compatible data type edition.Hive互換データ型エディションは、Hadoopから移行され、依存コンポーネントがMaxCompute V2.0データ型エディションをサポートするMaxComputeプロジェクトに適しています。
他のAlibaba Cloudサービスまたはコンポーネントでサポートされているデータ型の詳細については、「コンポーネントとデータ型の互換性」をご参照ください。
データ型のエディションを選択する
データ型エディションは、次の項目に影響します。
テーブルのデータ型
DMLステートメントと組み込み関数の実行
MaxComputeと密接に関連する開発コンポーネント
プロジェクトのデータ型エディションを選択する前に、各データ型エディションの説明とデータ型エディションの違いを十分に理解しておくことをお勧めします。 詳細については、「MaxCompute V2.0データ型エディションとその他のデータ型エディションの違い」をご参照ください。
プロジェクトのデータ型エディションの表示
MaxComputeクライアントで次のコマンドを実行して、作成したプロジェクトのプロパティを表示できます。
setproject;odps.sql.type.system.odps2、odps.sql.de cimal.odps2、およびodps.sql.hive.com patibleの値を確認して、プロジェクトのデータ型エディションを確認します。
プロジェクトのデータ型エディションの変更
選択したデータ型エディションがビジネス要件を満たさない場合は、データ型エディションを変更できます。
プロジェクトの所有者またはSuper_Administratorロールが割り当てられている場合、MaxComputeクライアント、DataWorksコンソール、またはMaxCompute Studioで次のコマンドを実行して、プロジェクトのデータ型エディションを変更できます。
DataWorksコンソールのDataStudioのODPS SQLノードで、次のSETコマンドを個別に実行することはできません。 コマンドをSELECTまたはINSERT SQL文と一緒に実行する必要があります。
-- View the data type edition of a project.
setproject;
-- Enable or disable the MaxCompute V2.0 data type edition.
setproject odps.sql.type.system.odps2=true/false;
-- Enable or disable the DECIMAL type in MaxCompute V2.0.
setproject odps.sql.decimal.odps2=true/false;
-- Enable or disable the Hive-compatible data type edition.
setproject odps.sql.hive.compatible=true/false;次のルールに基づいて、プロジェクトのデータ型エディションを変更することを推奨します。
プロジェクトはMaxCompute V2.0データ型エディションを使用しますが、一部の依存コンポーネントはMaxCompute V2.0データ型エディションをサポートしていません。 次のいずれかの方法を使用して、この問題に対処できます。
プロジェクトのデータ型エディションをMaxCompute V1.0データ型エディションに変更します。
MaxCompute V1.0データ型エディションをサポートしていないコンポーネントについては、セッションレベルのデータ型エディションをMaxCompute V2.0データ型エディションに設定します。
説明セッション内のコマンドで次のコマンドを実行して、セッションのデータ型エディションをMaxCompute V1.0データ型エディションに設定します。 コマンドは小文字である必要があります。
set odps.sql.type.system.odps2=false;
プロジェクトはMaxCompute V2.0データ型エディションを使用します。 ただし、一部のSQL文はMaxCompute V1.0データ型エディションを使用する必要があり、current_timestamp関数などの一部の機能はMaxCompute V2.0データ型エディションを使用します。 次のいずれかの方法を使用して、この問題に対処できます。
MaxCompute V1.0データ型エディションを必要とするSQL文を複数のセッションに分割し、これらのセッションのデータ型エディションをMaxCompute V1.0データ型エディションに設定します。
SQL文を書き直します。
プロジェクトは、初期段階でMaxCompute V2.0データ型エディションを使用します。 ただし、プロジェクトは後の段階でMaxCompute V1.0データ型エディションを使用する必要があります。 次のいずれかの方法を使用して、この問題に対処できます。
MaxCompute V2.0データ型エディションを使用するテーブルのデータを読み取るには、TINYINT、SMALLINT、またはINT型のデータをBIGINT型に変換し、CHARまたはVARCHAR型のデータをSTRING型に変換します。
MaxCompute V1.0データ型を使用するテーブルを作成し、CAST関数を使用して、MaxCompute V2.0データ型エディションを使用するテーブルのデータを作成したテーブルにインポートします。