MaxCompute prend en charge trois éditions de types de données : MaxCompute V1.0, MaxCompute V2.0 et Compatible Hive. Chaque édition est régie par un ensemble de paramètres au niveau du projet. Cette rubrique décrit chaque édition, précise quand l'utiliser et explique comment consulter et modifier l'édition active.
Choisir une édition de type de données
L'édition de type de données active influence :
Les types de données disponibles dans les tables
Le comportement des instructions DML et des fonctions intégrées
La compatibilité des composants de développement connectés à MaxCompute
Avant de définir une édition, consultez les différences entre l'édition de type de données MaxCompute V2.0 et les autres éditions pour en comprendre l'impact.
Le tableau suivant résume les cas d'utilisation de chaque édition :
|
Édition |
Cas d'utilisation |
|
MaxCompute V1.0 |
Votre projet MaxCompute est ancien et ses composants dépendants ne prennent pas en charge l'édition de type de données MaxCompute V2.0. |
|
MaxCompute V2.0 |
Votre projet ne contient aucune donnée générée avant avril 2020 et tous ses composants dépendants prennent en charge l'édition de type de données MaxCompute V2.0. |
|
Compatible Hive |
Votre projet a été migré depuis Hadoop et ses composants dépendants prennent en charge l'édition de type de données MaxCompute V2.0. |
Référence des éditions de types de données
Chaque édition correspond à une combinaison fixe de trois paramètres de projet :
|
Paramètre |
Description |
Valeurs valides |
|
|
Active ou désactive l'édition de type de données MaxCompute V2.0. |
|
|
|
Active ou désactive le type DECIMAL dans MaxCompute V2.0. |
|
|
|
Active ou désactive l'édition de type de données Compatible Hive. Dans cette édition, certains types de données et instructions SQL sont compatibles avec Hive. |
|
Édition de type de données 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.
Édition de type de données 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.
Édition de type de données Compatible 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.
Pour savoir quels services et composants Alibaba Cloud sont compatibles avec chaque édition, consultez la section Compatibilité entre les composants et les types de données.
Consulter l'édition de type de données d'un projet
Exécutez la commande suivante sur le client MaxCompute :
setproject;
Vérifiez les valeurs de odps.sql.type.system.odps2, odps.sql.decimal.odps2 et odps.sql.hive.compatible dans la sortie pour déterminer l'édition active.
Modifier l'édition de type de données d'un projet
Pour modifier l'édition de type de données, vous devez être le propriétaire du projet ou détenir le rôle Super_Administrator.
Exécutez les commandes suivantes sur le client MaxCompute, dans la console DataWorks ou dans MaxCompute Studio :
-- 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;
Sur un nœud ODPS SQL de DataStudio dans la console DataWorks, les commandes setproject ne peuvent pas être exécutées seules. Exécutez-les conjointement avec une instruction SQL SELECT ou INSERT.
Gérer les problèmes de compatibilité lors du changement d'édition
Problème : le projet utilise V2.0, mais certains composants nécessitent V1.0.
Solutions possibles :
Modifiez l'édition au niveau du projet pour passer à MaxCompute V1.0.
-
Maintenez le projet en V2.0 et définissez une substitution au niveau de la session pour les composants concernés :
set odps.sql.type.system.odps2=false;RemarqueValidez cette commande conjointement avec les autres commandes de la même session. La commande doit être saisie en minuscules.
Problème : certaines instructions SQL nécessitent V1.0, tandis que d'autres s'appuient sur des fonctionnalités V2.0 telles que current_timestamp.
Solutions possibles :
Isolez les instructions dépendantes de V1.0 dans des sessions distinctes et définissez l'édition de type de données au niveau de la session sur V1.0 pour ces sessions.
Réécrivez les instructions SQL pour supprimer la dépendance à la version.
Problème : le projet utilisait initialement V2.0, mais doit revenir à V1.0.
Avant de basculer, convertissez les colonnes concernées dans les tables qui utilisent des types de données V2.0 :
TINYINT, SMALLINT ou INT → BIGINT
CHAR ou VARCHAR → STRING
Vous pouvez également créer une nouvelle table utilisant des types de données V1.0 et utiliser la fonction CAST pour migrer les données de la table V2.0 vers celle-ci.