Tous les produits
Search
Centre de documentation

MaxCompute:FAQ : Opérations DDL

Dernière mise à jour :Sep 07, 2026

Questions fréquentes sur les opérations DDL relatives aux tables, partitions et colonnes dans MaxCompute.

Catégorie

FAQ

Opérations sur les tables

Opérations sur les partitions

Opérations sur les colonnes

Opérations liées au cycle de vie

Comment les anciennes données d'une table partitionnée sont-elles nettoyées lorsqu'un cycle de vie de 3 jours est défini ?

Prise en charge des tables virtuelles

MaxCompute ne prend pas en charge les tables virtuelles. Vous pouvez créer manuellement une table DUAL.

Prise en charge des index

Non. Les tables MaxCompute ne disposent pas d'index. Toutefois, la fonctionnalité Hash Clustering fonctionne de manière similaire à un index de cluster dans une base de données. Pour plus d'informations, consultez Opérations sur les tables.

Modification de l'attribut Hash Clustering

  • Pour ajouter l'attribut Hash Clustering à une table, exécutez la commande suivante : alter table table_name [clustered by (col_name [, col_name, ...]) [sorted by (col_name [asc | desc] [, col_name [asc | desc] ...])] into number_of_buckets buckets];.

  • Pour supprimer l'attribut Hash Clustering d'une table, exécutez la commande suivante : alter table table_name not clustered;.

Conversion d'une table non partitionnée en table partitionnée

Vous ne pouvez pas convertir une table non partitionnée en table partitionnée ni ajouter de colonnes de clé de partition à une table existante. Vous devez créer une nouvelle table partitionnée. Pour plus d'informations, consultez Opérations sur les tables.

Restauration d'une table supprimée

MaxCompute propose des fonctionnalités de sauvegarde et de récupération avec une période de rétention gratuite par défaut de 24 heures, que vous pouvez personnaliser. Si vous supprimez une table par erreur, vous pouvez restaurer ses données dans ce délai. Pour plus d'informations sur la sauvegarde et la récupération, consultez sauvegarde et récupération.

Interrogation des tables par propriétaire

Utilisez la vue de métadonnées TABLES et filtrez par le champ owner_name pour trouver les tables créées par un utilisateur spécifique. Pour plus d'informations sur TABLES, consultez TABLES.

Vérification de l'existence d'une table

Vous pouvez utiliser la fonction TABLE_EXISTS pour vérifier si une table spécifique existe. Pour plus d'informations, consultez TABLE_EXISTS.

Obtention de tous les noms de tables d'un projet

Vous pouvez exécuter la commande show tables; dans le client MaxCompute ou utiliser le service de métadonnées de MaxCompute. Pour plus d'informations, consultez Opérations sur les tables ou Information Schema.

Recherche de toutes les tables partitionnées d'un projet

Exécutez la commande suivante dans le client MaxCompute pour trouver toutes les tables partitionnées de votre projet.

select table_name from information_schema.columns where is_partition_key = true group by table_name;

Consultation de la dernière heure d'accès à une table

Dans DataWorks, accédez à la page data map, recherchez votre table et ouvrez sa page de détails. Dans le panneau Technical Information, vous trouverez les champs suivants : Technical type, Last DDL change time, Last data modification time, Last access time et Compute engine information.

Vérification du volume de données d'une table

Le volume de données d'une table correspond au nombre de lignes et à l'espace physique qu'elle occupe :

  • Pour vérifier l'espace physique d'une table entière, exécutez la commande desc. Pour vérifier le nombre de lignes, exécutez l'instruction SQL select count() as cnt from table_name;.查看物理空间

  • Pour vérifier l'espace physique d'une partition spécifique, exécutez la commande desc avec une clause WHERE. Pour vérifier le nombre de lignes de la partition, exécutez l'instruction SQL select count() as cnt from table_name where ...;.查看分区表

Vérification du nombre de lignes d'une table

Exécutez la commande select count(*) from table_name; dans le client MaxCompute pour vérifier le nombre de lignes d'une table partitionnée ou non partitionnée.

Table non visible dans DataWorks

Si vous créez une table à l'aide d'une instruction SQL au lieu de la créer dans l'interface utilisateur de DataWorks, la table peut ne pas apparaître pendant deux à trois heures.

Partitions et colonnes de clé de partition

Les tables de MaxCompute peuvent être partitionnées. Une table partitionnée possède des colonnes de clé de partition, que vous utilisez pour créer des partitions.

Par exemple, dans une partition spécifiée comme ds=20150101, ds est une colonne de clé de partition et ds=20150101 est une partition.

Nombre optimal de partitions

Une table MaxCompute peut comporter au maximum 60 000 partitions, avec une capacité illimitée par partition. Toutefois, un trop grand nombre de partitions peut compliquer les statistiques et l'analyse des données.

MaxCompute limite le nombre maximal d'instances par tâche. Le nombre d'instances utilisées par une tâche dépend du volume des données d'entrée et du nombre de partitions. Par conséquent, vous devez choisir une stratégie de partitionnement adaptée à vos besoins métier.

Ajout de partitions à une table sans clés de partition

MaxCompute ne permet pas d'ajouter ou de modifier des champs de clé de partition dans une table existante. Vous pouvez créer une nouvelle table partitionnée et utiliser une instruction SQL de partitionnement dynamique pour importer les données de la table source vers la nouvelle table. Pour plus d'informations, consultez Insertion ou remplacement des données dans des partitions dynamiques (DYNAMIC PARTITION).

Vérification de l'existence d'une partition

Vous pouvez utiliser la fonction PARTITION_EXISTS pour vérifier si une partition spécifique existe. Pour plus d'informations, consultez PARTITION_EXISTS.

Vérification du nombre de partitions

Utilisez la vue PARTITIONS dans Information Schema pour obtenir les noms des partitions, puis comptez-les.

Ajout ou suppression de colonnes

MaxCompute prend en charge l'ajout et la suppression de colonnes. L'ajout de colonnes d'un type de données complexe et la suppression de colonnes sont disponibles en aperçu sur invitation. Pour demander un essai, consultez Demander un essai des nouvelles fonctionnalités.

Ajout d'une colonne

Exécutez la commande suivante pour ajouter des colonnes. Si la table contient déjà des données, les nouvelles colonnes auront la valeur NULL pour toutes les lignes existantes.

alter table table_name add columns (col_name1 type1, col_name2 type2…);

Pour plus d'informations sur la syntaxe, consultez Ajouter une colonne.

Configuration d'une colonne à incrémentation automatique

MaxCompute ne prend pas en charge les colonnes à incrémentation automatique. Pour un petit volume de données, vous pouvez utiliser la fonction ROW_NUMBER comme solution de contournement.

Nombre maximal de colonnes par table

Une seule table MaxCompute peut comporter au maximum 1 200 colonnes. Si votre table dépasse cette limite, envisagez les solutions suivantes :

  • Réduisez le nombre de dimensions de vos données à 1 200 colonnes ou moins.

  • Modifiez la méthode de stockage des données, par exemple en utilisant des types de données complexes tels que des tableaux ou des maps pour regrouper les données connexes.

Utilisation de mots clés comme noms de colonnes

Si vous utilisez un mot clé pour nommer une table, une colonne ou une partition, vous devez entourer le mot clé d'accents graves (). Sinon, une erreur se produit.

Modification du type de données d'une colonne

Vous ne pouvez pas modifier le type de données d'une colonne existante. Créez plutôt une nouvelle table avec le type de données souhaité et migrez les données. Pour plus d'informations sur les types de données, consultez Éditions des types de données.

Nettoyage des données pour les tables partitionnées avec un cycle de vie

Lorsqu'une partition d'une table avec un cycle de vie configuré n'est pas modifiée dans le délai spécifié, MaxCompute la récupère automatiquement.

Exécutez la commande desc table_name partition(pt_spec); pour vérifier si une ancienne partition a été modifiée pendant la période du cycle de vie. Exécutez la commande desc tablename; pour afficher le paramètre du cycle de vie. MaxCompute récupère les partitions expirées quotidiennement à 17 h 00. La mise à jour du statut dans la console DataWorks peut être retardée, généralement d'un jour maximum.