Tous les produits
Search
Centre de documentation

MaxCompute:Version 1.0 des types de données

Dernière mise à jour :Aug 26, 2026

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

100000000000L et -1L

  • Entier signé 64 bits.

  • Plage : -2⁶³ + 1 à 2⁶³ - 1.

DOUBLE

3.14159261E+7

Nombre à virgule flottante binaire 64 bits.

DECIMAL

3.5BD et 99999999999.9999999BD

Type numérique exact. Précision par défaut : decimal(54,18). La précision et l'échelle ne peuvent pas être ajustées. Plage de la partie entière : -10³⁶ + 1 à 10³⁶ - 1. Partie décimale : précise jusqu'à 10⁻¹⁸. Pour plus d'informations, consultez Type de données DECIMAL.

STRING

"abc", 'bcd', "alibaba", 'inc'

  • Type chaîne.

  • Longueur maximale : 8 Mo.

DATETIME

DATETIME'2017-11-11 00:00:00'

  • Type date et heure.

  • Plage : 0000-01-01 à 9999-12-31.

  • Les résultats des requêtes DATETIME n'incluent pas la précision en millisecondes. Pour afficher les millisecondes, utilisez l'option -dfp dans la commande Tunnel afin de spécifier un format horaire.

  • Exemple : tunnel upload -dfp 'yyyy-MM-dd HH:mm:ss.SSS'. Pour plus d'informations, consultez Commandes Tunnel.

BOOLEAN

True et False

  • Type booléen.

  • Plage : True et False.

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, 1 dans SELECT 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, abc et xyz donnent abcxyz.

  • 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

ARRAY<BIGINT>, ARRAY<STRUCT<a:BIGINT, b:STRING>>

ARRAY(1, 2, 3), ARRAY(NAMED_STRUCT('a', 1, 'b', '2'), NAMED_STRUCT('a', 3, 'b', '4'))

MAP

MAP<STRING, STRING>, MAP<BIGINT, ARRAY<STRING>>

MAP("k1", "v1", "k2", "v2"), MAP(1L, ARRAY('a', 'b'), 2L, ARRAY('x', 'y'))

STRUCT

STRUCT<'x', BIGINT, 'y', BIGINT>, STRUCT<'field1', BIGINT, 'field2', ARRAY<BIGINT>, 'field3', MAP<BIGINT>>

NAMED_STRUCT('x', 1, 'y', 2), NAMED_STRUCT('field1', 100L, 'field2', ARRAY(1, 2), 'field3', MAP(1, 100, 2, 200))