Tous les produits
Search
Centre de documentation

MaxCompute:Mappages de types de données entre MaxCompute et Hive, MySQL, Oracle et Hologres

Dernière mise à jour :Aug 10, 2026

Utilisez ces tableaux de mappage lors de la migration ou de l'intégration de données entre MaxCompute et Hive, MySQL, Oracle ou Hologres. Mapper les champs vers le type cible approprié permet d'éviter la perte de données, la perte de précision et les erreurs de requête.

Mappages de types de données entre MaxCompute et Hive, MySQL et Oracle

Le tableau suivant répertorie les mappages de types de données entre MaxCompute et Hive, Oracle et MySQL. La colonne Notes met en évidence les différences de précision, les contraintes de version et les particularités comportementales à vérifier avant le mappage.

Type MaxCompute

Type Hive

Type Oracle

Type MySQL

Notes

BOOLEAN

BOOLEAN

Aucun

Aucun

Oracle prend en charge le type de données BOOLEAN à partir de la version 23C. Dans MySQL, utilisez TINYINT(1) à la place.

TINYINT

TINYINT

NUMBER(3,0)

TINYINT

Mappage sûr dans les trois systèmes.

SMALLINT

SMALLINT

NUMBER(5,0)

SMALLINT

Mappage sûr dans les trois systèmes.

INT

INT

NUMBER(7,0)

MEDIUMINT

Le type INT de MaxCompute (32 bits) correspond au type MEDIUMINT de MySQL (24 bits). Pour couvrir toute la plage 32 bits, mappez plutôt vers le type INT de MySQL.

INT

INT

NUMBER(10,0)

INT

Mappage sûr pour la plage complète des entiers 32 bits.

BIGINT

BIGINT

NUMBER(20,0)

BIGINT

Mappage sûr dans les trois systèmes.

FLOAT

FLOAT

BINARY_FLOAT

FLOAT

Le type BINARY_FLOAT d'Oracle est pris en charge à partir d'Oracle Database 10g.

DOUBLE

DOUBLE

BINARY_DOUBLE

DOUBLE

Le type BINARY_DOUBLE d'Oracle est pris en charge à partir d'Oracle Database 10g.

DECIMAL

DECIMAL

NUMBER(P,S)

DECIMAL, NUMERIC

Vérifiez que les valeurs de précision (P) et d'échelle (S) respectent les limites du système cible avant le mappage.

STRING

STRING

VARCHAR, VARCHAR2, CHAR, NCHAR, NVARCHAR3

VARCHAR, CHAR

Le type STRING de MaxCompute n'a pas de limite de taille. Mappez-le vers le type de chaîne Oracle ou MySQL qui correspond le mieux à la longueur maximale attendue. Tous les types Oracle répertoriés sont basés sur des caractères, donc les différences de jeu de caractères ne posent généralement pas de problème.

VARCHAR

VARCHAR

VARCHAR, VARCHAR2, CHAR, NCHAR, NVARCHAR3

VARCHAR

Mêmes cibles Oracle et MySQL que pour le type STRING. Choisissez le type cible en fonction de la contrainte de longueur de la colonne source VARCHAR.

STRING

CHAR

CHAR

CHAR

Les types CHAR de Hive et Oracle ont une longueur fixe et complètent les valeurs plus courtes avec des espaces. Vérifiez que les espaces de fin sont acceptables dans le système cible.

BINARY

BINARY

RAW

BINARY, VARBINARY

TIMESTAMP

TIMESTAMP

TIMESTAMP WITH TIME ZONE

TIMESTAMP

TIMESTAMP_NTZ

TIMESTAMP

DATETIME

TIMESTAMP

Le type TIMESTAMP de Hive sans fuseau horaire est pris en charge à partir de Hive 3.

DATE

DATE

DATE

DATE

DATETIME

DATE

DATE

DATETIME

Le type DATETIME de MaxCompute est en UTC+8 et précis à la milliseconde.

ARRAY

ARRAY

Non pris en charge

Non pris en charge

Les types complexes ARRAY, MAP et STRUCT de MaxCompute n'ont pas d'équivalent direct dans Oracle ou MySQL. Redéfinissez le schéma ou sérialisez ces champs dans une colonne de type chaîne ou BLOB avant la migration.

MAP

MAP<key,value>

Non pris en charge

Non pris en charge

Consultez la note relative au type ARRAY.

STRUCT

STRUCT

Non pris en charge

Non pris en charge

Consultez la note relative au type ARRAY.

Non pris en charge

UNION

Non pris en charge

Non pris en charge

Le type UNION de Hive n'a pas d'équivalent dans MaxCompute, Oracle ou MySQL.

Non pris en charge

Non pris en charge

BLOB

BLOB

Le type BLOB n'a pas d'équivalent direct dans MaxCompute. Stockez les données binaires dans une colonne BINARY ou STRING, ou conservez les données BLOB dans le système source.

Mappages de types de données entre MaxCompute et Hologres

Le tableau suivant répertorie les mappages de types de données lors de la création d'une table externe dans Hologres à partir d'une table MaxCompute.

Type MaxCompute

Type Hologres

Version prise en charge

Notes

STRING, VARCHAR

TEXT

Toutes les versions de Hologres

BIGINT

INT8

Toutes les versions de Hologres

INT

INT4, INT

Toutes les versions de Hologres

FLOAT

FLOAT4, REAL

Toutes les versions de Hologres

DOUBLE

FLOAT, FLOAT8

Toutes les versions de Hologres

BOOLEAN

BOOL

Toutes les versions de Hologres

DATETIME

TIMESTAMP WITH TIME ZONE

Toutes les versions de Hologres

Le type DATETIME de MaxCompute est en UTC+8 avec une précision à la milliseconde. La plage de valeurs va de 0000-01-01 à 9999-12-31.

DECIMAL

NUMERIC

Toutes les versions de Hologres

Si aucune précision n'est spécifiée pour le type DECIMAL de MaxCompute, la valeur par défaut est (38, 18). Lors de la création d'une table avec IMPORT FOREIGN SCHEMA, le système convertit automatiquement la précision.

TIMESTAMP

TIMESTAMP WITH TIME ZONE

Hologres V0.8 et versions ultérieures

Les valeurs TIMESTAMP de MaxCompute vont de 0000-01-01 00:00:00.000000000 à 9999-12-31 23:59:59.999999999 (précision à la nanoseconde). Le type TIMESTAMPTZ de Hologres est précis à la milliseconde ; Hologres convertit automatiquement la précision à la milliseconde lors de la lecture des données.

CHAR(n)

CHAR(n) (par défaut) ; TEXT (facultatif)

Hologres V0.8 et versions ultérieures

Le type CHAR(n) de MaxCompute est une chaîne de longueur fixe avec un n maximum de 255. Les chaînes plus courtes sont complétées par des espaces. Pour mapper vers TEXT à la place, exécutez set hg_enable_convert_type_for_foreign_table = true et modifiez le type de champ en TEXT lors de la création de la table.

VARCHAR(n)

VARCHAR(n) (par défaut) ; TEXT (facultatif)

Hologres V0.8 et versions ultérieures

Le type VARCHAR(n) de MaxCompute est une chaîne de longueur variable. Valeurs valides de n : 1 à 65535. Pour mapper vers TEXT à la place, exécutez set hg_enable_convert_type_for_foreign_table = true et modifiez le type de champ en TEXT lors de la création de la table.

DATE

DATE

Hologres V0.8 et versions ultérieures

SMALLINT

INT2 (par défaut) ; INT8 (facultatif)

Toutes les versions de Hologres (V0.8 utilise INT4 ; V0.9 et versions ultérieures utilisent INT2)

Pour mapper vers INT8 à la place, exécutez set hg_enable_convert_type_for_foreign_table = true et modifiez le type de champ en INT8 lors de la création de la table.

TINYINT

INT2 (par défaut) ; INT8 (facultatif)

Toutes les versions de Hologres (V0.8 utilise INT4 ; V0.9 et versions ultérieures utilisent INT2)

Pour mapper vers INT8 à la place, exécutez set hg_enable_convert_type_for_foreign_table = true et modifiez le type de champ en INT8 lors de la création de la table.

CHAR

Non pris en charge

Non pris en charge

ARRAY\<INT\>

INT4[]

Hologres V0.8 et versions ultérieures

ARRAY\<BIGINT\>

INT8[]

Hologres V0.8 et versions ultérieures

ARRAY\<FLOAT\>

FLOAT4[]

Hologres V0.8 et versions ultérieures

ARRAY\<DOUBLE\>

FLOAT8[]

Hologres V0.8 et versions ultérieures

ARRAY\<BOOLEAN\>

BOOLEAN[]

Hologres V0.8 et versions ultérieures

ARRAY\<STRING\>

TEXT[]

Hologres V0.8 et versions ultérieures

BINARY

BYTEA

Hologres V0.9 et versions ultérieures

ARRAY\<TINYINT\>

Non pris en charge

Non pris en charge

ARRAY\<SMALLINT\>

Non pris en charge

Non pris en charge

Si une table MaxCompute contient un champ dont le type n'est pas pris en charge par Hologres, les requêtes qui ne sélectionnent pas ce champ renvoient tout de même les résultats pour tous les autres champs.

Étapes suivantes

Pour connaître les mappages entre les fonctions intégrées de MaxCompute et celles de Hive, MySQL et Oracle, consultez la rubrique Mappages entre les fonctions intégrées de MaxCompute et les fonctions intégrées de Hive, MySQL et Oracle.