MaxCompute データ移行または統合操作を実行する場合は、データ型 <マッピングテーブル> を参照して、テーブル <フィールド> のマッピング関係を確立する必要があります。 これにより、異なる <データベース> 間でデータが正しく保存、処理、およびクエリされるようになり、データの損失や破損を防ぎ、作業効率が向上します。 この <トピック> では、MaxCompute と Hive、Oracle、MySQL、および Hologres 間のデータ型マッピング関係について説明します。
MaxCompute と Hive、MySQL、および Oracle 間のデータ型マッピング
次の表に、MaxCompute と Hive、Oracle、MySQL 間のデータ型マッピングを示します。
MaxCompute のデータ型 | Hive のデータ型 | Oracle のデータ型 | MySQL のデータ型 |
BOOLEAN | BOOLEAN | なし 説明 Oracle は、バージョン 23C 以降で BOOLEAN データ型をサポートしています。 | なし 説明
|
TINYINT | TINYINT | NUMBER(3,0) | TINYINT |
SMALLINT | SMALLINT | NUMBER(5,0) | SMALLINT |
INT | INT | NUMBER(7,0) | MEDIUMINT |
INT | INT | NUMBER(10,0) | INT |
BIGINT | BIGINT | NUMBER(20,0) | BIGINT |
FLOAT | FLOAT | BINARY_FLOAT 説明 このデータ型は、Oracle Database 10g 以降でサポートされています。 | FLOAT |
DOUBLE | DOUBLE | BINARY_DOUBLE 説明 このデータ型は、Oracle Database 10g 以降でサポートされています。 | DOUBLE |
DECIMAL | DECIMAL | NUMBER(P,S) |
|
STRING | STRING |
|
|
VARCHAR | VARCHAR |
| VARCHAR |
STRING | CHAR | CHAR | CHAR |
BINARY | BINARY | RAW |
|
TIMESTAMP | TIMESTAMP | TIMESTAMP WITH TIME ZONE | TIMESTAMP |
TIMESTAMP_NTZ | TIMESTAMP 説明 このデータ型は、Hive 3 以降でサポートされています。 | DATETIME | TIMESTAMP |
DATE | DATE | DATE | DATE |
DATETIME | DATE | DATE | DATETIME |
ARRAY | ARRAY | サポートされていません | サポートされていません |
MAP |
| サポートされていません | サポートされていません |
STRUCT | STRUCT | サポートされていません | サポートされていません |
サポートされていません | UNION | サポートされていません | サポートされていません |
サポートされていません | サポートされていません | BLOB | BLOB |
MaxCompute と Hologres 間のデータ型マッピング
次の表は、Hologres で MaxCompute <テーブル> を <ソース> とする <外部テーブル> を作成する場合の、MaxCompute と Hologres 間のデータ型マッピングを示しています。
MaxCompute のデータ型 | Hologres のデータ型 | サポートされているバージョン | 説明 |
| TEXT | すべての Hologres バージョン | なし |
BIGINT | INT8 | すべての Hologres バージョン | なし |
INT |
| すべての Hologres バージョン | なし |
FLOAT |
| すべての Hologres バージョン | なし |
DOUBLE |
| すべての Hologres バージョン | なし |
BOOLEAN | BOOL | すべての Hologres バージョン | なし |
DATETIME | TIMESTAMP WITH TIME ZONE | すべての Hologres バージョン | MaxCompute の DATETIME データ型は、UTC + 08:00 の日時を指定します。 時間の <有効値> は 0000-01-01 から 9999-12-31 までで、ミリ秒単位の精度です。 |
DECIMAL | NUMERIC | すべての Hologres バージョン | MaxCompute の DECIMAL データ型に精度が指定されていない場合、<デフォルト> の精度は (38, 18) です。 IMPORT FOREIGN SCHEMA を使用して <テーブル> を作成すると、システムは自動的に精度を変換します。 |
TIMESTAMP | TIMESTAMP WITH TIME ZONE | Hologres V0.8 以降 |
|
CHAR(n) | <デフォルト> では、CHAR(n) が使用されます。 Hologres では、MaxCompute の CHAR(n) を TEXT に <マッピング> することもできます。 | Hologres V0.8 以降 | MaxCompute の CHAR(n) データ型のエントリは、固定長 n <文字> の <文字列> です。 n の最大 <値> は 255 です。必要な長さよりも短い <文字列> を <挿入> すると、スペースが使用されます。 |
VARCHAR(n) | <デフォルト> では、VARCHAR(n) が使用されます。 Hologres では、MaxCompute の VARCHAR(n) を TEXT に <マッピング> することもできます。 | Hologres V0.8 以降 | MaxCompute の VARCHAR(n) データ型のエントリは、可変長 n <文字> の <文字列> です。 n の <有効値>: 1 ~ 65535。 |
DATE | DATE | Hologres V0.8 以降 | なし |
SMALLINT | <デフォルト> では、INT2 が使用されます。 Hologres では、MaxCompute の SMALLINT を INT8 に <マッピング> することもできます。 | すべての Hologres バージョン。Hologres V0.8 のデータ型は INT4、Hologres V0.9 のデータ型は INT2 です。 | なし |
TINYINT | <デフォルト> では、INT2 が使用されます。 Hologres では、MaxCompute の TINYINT を INT8 に <マッピング> することもできます。 | すべての Hologres バージョン。Hologres V0.8 のデータ型は INT4、Hologres V0.9 のデータ型は INT2 です。 | なし |
CHAR | サポートされていません | サポートされていません | なし |
ARRAY<INT> | INT4[] | Hologres V0.8 以降 | なし |
ARRAY<BIGINT> | INT8[] | Hologres V0.8 以降 | なし |
ARRAY<FLOAT> | FLOAT4[] | Hologres V0.8 以降 | なし |
DOUBLE型の配列 | FLOAT8[] | Hologres V0.8 以降 | なし |
BOOLEAN の配列 | BOOLEAN[] | Hologres V0.8 以降 | なし |
STRING の配列 | テキスト[] | Hologres V0.8 以降 | なし |
バイナリ | BYTEA | Hologres V0.9 以降 | なし |
ARRAY<TINYINT> | サポートされていません | サポートされていません | なし |
ARRAY<SMALLINT> | サポートされていません | サポートされていません | なし |
MaxCompute テーブルに Hologres でサポートされていないデータ型のフィールドが含まれている場合、Hologres でのクエリでこのフィールドを指定しないと、他のフィールドのデータをクエリできます。
参照
MaxCompute のビルトイン関数と Hive、MySQL、Oracle のビルトイン関数のマッピングの詳細については、「MaxCompute のビルトイン関数と Hive、MySQL、Oracle のビルトイン関数のマッピング」をご参照ください。