Contexte
La version 1.0 des types de données MaxCompute est l'une des trois versions de types de données disponibles dans MaxCompute.
Cette version s'adresse aux projets MaxCompute existants dont les composants dépendants ne prennent pas en charge la version 2.0 des types de données.
Configuration du projet
Un projet MaxCompute utilise la version 1.0 des types de données lorsque les trois propriétés suivantes sont définies :
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.
Types de données pris en charge
Types de données de base
Tous les types de données de base acceptent les valeurs NULL.
Type de données | Exemple de constante | Description |
BIGINT |
|
|
DOUBLE |
| Nombre à virgule flottante binaire 64 bits. |
DECIMAL |
| Type numérique exact. Précision par défaut : |
STRING |
|
|
DATETIME |
|
|
BOOLEAN |
|
|
Remarques sur l'utilisation
-
Constantes
Constantes entières : traitées comme BIGINT par défaut. Si une constante dépasse la plage BIGINT (par exemple,
1,000,000,000,000,000,000,000,000), elle est traitée comme DOUBLE. Par exemple,1dansSELECT 1 + a;est de type BIGINT.-
Constantes DECIMAL : lors de l'insertion d'une constante DECIMAL dans un champ, utilisez le suffixe
BD. Exemple :INSERT INTO test_tb(a) VALUES (3.5BD); Concaténation de chaînes STRING : les constantes STRING peuvent être concaténées. Par exemple,
abcetxyzdonnentabcxyz.
Colonnes de clé de partition : les colonnes de clé de partition des tables partitionnées doivent être de type STRING.
Fonctions intégrées : les fonctions intégrées comportant des paramètres issus des types de données MaxCompute V2.0 ne peuvent pas être utilisées avec la version 1.0 des types de données.
Différences par rapport à la version 2.0 des types de données MaxCompute
-
Les opérations LIMIT, ORDER BY, DISTRIBUTE BY, SORT BY et CLUSTER BY se comportent différemment selon que vous utilisez la version 1.0 ou la version 2.0 des types de données MaxCompute.
L'exemple suivant utilise
SELECT * FROM t1 UNION ALL SELECT * FROM t2 LIMIT 10;.Version
Instruction équivalente
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; -
L'expression IN se comporte différemment selon les versions 1.0 et 2.0 des types de données.
L'exemple suivant utilise
a IN (1, 2, 3).Version
Comportement
MaxCompute V1.0
Toutes les valeurs entre parenthèses doivent être du même type.
MaxCompute V2.0
Les valeurs entre parenthèses peuvent être implicitement converties vers le même type.
Types de données complexes
Les types de données complexes peuvent être imbriqués les uns dans les autres. Pour les fonctions intégrées liées aux types complexes, consultez ARRAY, MAP et STRUCT.
|
Type de données |
Définition |
Constructeur |
|
ARRAY |
|
|
|
MAP |
|
|
|
STRUCT |
|
|