Tous les produits
Search
Centre de documentation

MaxCompute:Présentation des fonctions intégrées

Dernière mise à jour :Aug 27, 2026

MaxCompute propose un large éventail de fonctions intégrées couvrant la plupart des besoins en traitement de données. Cette rubrique décrit les types de fonctions disponibles ainsi que les consignes d'utilisation applicables à l'ensemble des fonctions intégrées.

Types de fonctions

Les fonctions intégrées de MaxCompute se répartissent en trois grandes catégories :

  • Fonctions scalaires : elles opèrent sur une seule ligne et renvoient une valeur par appel. Cette catégorie inclut les fonctions de date et heure, mathématiques, de chaîne, de chiffrement, réseau, ainsi que celles dédiées aux types ARRAY, MAP, STRUCT, JSON et au traitement des données non structurées.

  • Fonctions d'agrégation : elles prennent plusieurs lignes en entrée et renvoient une seule valeur en sortie.

  • Fonctions de fenêtrage : elles opèrent sur un sous-ensemble de lignes défini dans une fenêtre et renvoient une valeur par ligne.

Pour obtenir la correspondance entre les fonctions intégrées de MaxCompute et leurs équivalents open source, consultez la rubrique Correspondance entre les fonctions intégrées de MaxCompute, Hive, MySQL et Oracle.

Type de fonction

Description

Fonctions de date et heure

Manipulez les données de type DATE, DATETIME et TIMESTAMP : ajoutez ou soustrayez des dates, calculez des différences, extrayez des champs et convertissez des formats.

Présentation des fonctions mathématiques

Effectuez des opérations numériques sur les données BIGINT, DOUBLE, DECIMAL et FLOAT : convertissez des bases, arrondissez des nombres et générez des valeurs aléatoires.

Fonctions de fenêtrage

Calculez des agrégations, des classements, des décalages et des échantillons au sein d'une colonne de fenêtre spécifiée.

Fonctions d'agrégation

Agrégez plusieurs enregistrements d'entrée en une seule valeur de sortie : sommes, moyennes, minimums/maximums, paramètres d'agrégation et concaténation de chaînes.

Fonctions HyperLogLog++

Fonctions d'agrégation approximative qui suppriment les doublons et accélèrent les requêtes sur les grands ensembles de données en utilisant très peu de mémoire.

Présentation des fonctions de chaîne

Manipulez les données STRING : tronquez, remplacez, recherchez, modifiez la casse et convertissez des formats. Consultez la section Limites des fonctions STRING.

Fonctions ARRAY

Manipulez les données ARRAY : construisez, dédupliquez, agrégez, triez et fusionnez des tableaux.

Fonctions MAP

Manipulez les données MAP : extrayez des paires clé-valeur, construisez et fusionnez des maps.

Fonctions STRUCT

Manipulez les données STRUCT : développez des tableaux STRUCT et construisez des structs.

Fonctions JSON

Manipulez les données JSON : extrayez des valeurs de champ, générez des objets ou des tableaux, insérez ou mettez à jour des données et gérez des structures de données complexes. Consultez la section Limites des fonctions JSON.

Fonctions de chiffrement

Chiffrez et déchiffrez les données de table de type STRING et BINARY.

Fonctions réseau

Traitez les données STRING et BINARY liées au réseau : convertissez des formats d'adresse IP, analysez des URL et obtenez des masques de réseau.

Fonctions de traitement des données non structurées

Connectez-vous aux données non structurées et à leurs métadonnées stockées dans des entrepôts de données ou des data lakes via plusieurs méthodes.

Fonctions géographiques

Utilisées pour construire, transformer et analyser des données géospatiales de type GEOGRAPHY. Ces fonctions vous permettent de créer des objets géographiques tels que des points, des lignes et des polygones à partir de coordonnées latitude/longitude ou de texte WKT/WKB, d'extraire des propriétés telles que les coordonnées et les rectangles englobants, de déterminer les relations spatiales entre objets géographiques (contenance, intersection, couverture) et de calculer les distances entre eux.

Autres fonctions

Fonctions supplémentaires destinées à divers scénarios métier.

Fonctions VECTOR

Prend en charge le traitement du type de données VECTOR pour effectuer des calculs de distance vectorielle et des recherches vectorielles. Applicable aux scénarios tels que la recherche sémantique, l'amélioration des grands modèles de langage (LLM) et l'IA générative.

Consignes d'utilisation

Tenez compte des points suivants lors de l'utilisation des fonctions intégrées :

  • Paramètres d'entrée : le type, le nombre et le format des paramètres d'entrée doivent respecter la syntaxe spécifiée. Dans le cas contraire, MaxCompute ne peut pas analyser la fonction et l'instruction SQL échoue.

  • Data types 2,0 : si une fonction intégrée utilise les types Data types 2,0 (TINYINT, SMALLINT, INT, FLOAT, VARCHAR, TIMESTAMP ou BINARY), vous devez activer Data types 2,0 avant d'exécuter la fonction. Sinon, une erreur est signalée. Activez Data types 2,0 à l'un des niveaux suivants :

    • Niveau de la session (s'applique uniquement à l'instruction SQL actuelle) : ajoutez l'instruction suivante avant votre instruction SQL et soumettez-les ensemble.

      SET odps.sql.type.system.odps2=true;
    • Niveau du projet (s'applique à toutes les instructions SQL suivantes, prend effet en 10 à 15 minutes) : le propriétaire du projet exécute la commande suivante.

      SETPROJECT odps.sql.type.system.odps2=true;
  • Conversions de type implicites désactivées : lorsque Data types 2,0 est activé, les conversions de type implicites suivantes sont désactivées pour éviter toute perte de précision ou erreur : STRING vers BIGINT, STRING vers DATETIME, DOUBLE vers BIGINT, DECIMAL vers DOUBLE et DECIMAL vers BIGINT. Utilisez la fonction CAST pour des conversions explicites, ou désactivez Data types 2,0.

  • Conflits de noms entre UDF et fonctions intégrées : si une fonction définie par l'utilisateur (UDF) porte le même nom qu'une fonction intégrée, l'UDF est prioritaire. Par exemple, si une UDF nommée CONCAT existe dans un projet, le système appelle l'UDF au lieu de la fonction intégrée CONCAT. Pour appeler la fonction intégrée, préfixez le nom de la fonction avec :: :

    SELECT ::CONCAT('ab', 'c');
  • Propriétés globales : les résultats des fonctions intégrées peuvent varier selon les propriétés globales configurées pour le projet MaxCompute. Exécutez SETPROJECT; pour afficher les propriétés globales actuelles.

Limites des fonctions JSON

Prérequis de version du SDK

  • Java SDK V0.44.0 ou version ultérieure

  • PyODPS V0.11.4.1 ou version ultérieure

Limites des opérations de table

  • L'ajout d'une colonne JSON à une table n'est pas pris en charge.

  • Les tables clusterisées ne sont pas prises en charge.

  • Les tables de type Delta Table ne sont pas prises en charge.

Limites des opérations SQL

  • Les opérations de comparaison sur le type JSON ne sont pas prises en charge.

  • Les clauses ORDER BY et GROUP BY ne peuvent pas être utilisées sur le type JSON.

  • Une colonne de type JSON ne peut pas servir de clé JOIN.

Précision des données

  • La partie entière d'un JSON NUMBER est stockée sous forme de BIGINT. Un dépassement de capacité se produit si la valeur est hors de la plage BIGINT.

  • La partie décimale d'un JSON NUMBER est stockée sous forme de DOUBLE. Une perte de précision peut survenir lors de la conversion.

Limites de caractères

Le caractère Unicode \u0000 n'est pas pris en charge dans les chaînes utilisées pour générer des données JSON.

Compatibilité du moteur

D'autres moteurs, tels que Hologres, ne peuvent pas lire le type de données JSON à partir d'une table MaxCompute.

Support UDF

Les UDF Java et Python ne prennent pas en charge le type JSON.

Profondeur d'imbrication

Le type de données JSON peut être imbriqué jusqu'à 20 niveaux de profondeur.

Outils de développement pris en charge

Les outils pris en charge incluent le client MaxCompute (odpscmd), MaxCompute Studio et DataWorks. Les écosystèmes externes tels que Dataphin ne sont pas pris en charge. Confirmez la compatibilité avant d'utiliser le type de données JSON avec tout système externe.

Lors de l'utilisation d'odpscmd, tenez compte des points suivants :

  • Mettez à niveau le client vers la version V0.46.5 ou ultérieure. Les versions antérieures ne peuvent pas exécuter la commande DESC json_table ni télécharger des données JSON via Tunnel.

  • Dans le fichier conf\odps_config.ini situé dans le chemin d'installation du client, définissez use_instance_tunnel sur false. Sinon, les requêtes échoueront.

Limites des fonctions STRING

Les fonctions de chaîne suivantes ne prennent en charge que les caractères anglais :

  • TRIM / RTRIM / LTRIM : le paramètre trimChars ne prend en charge que les caractères anglais.

  • REVERSE : ne prend en charge que les caractères anglais en mode Hive.

  • SOUNDEX : convertit uniquement les caractères anglais.

  • TOLOWER : convertit les lettres majuscules anglaises en minuscules.

  • TOUPPER : convertit les lettres minuscules anglaises en majuscules.

  • INITCAP : convertit la première lettre anglaise de chaque mot en majuscule et le reste en minuscule.