Tous les produits
Search
Centre de documentation

MaxCompute:FAQ : Opérations DDL

Dernière mise à jour :Aug 10, 2026

Foire aux questions 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 trois jours est défini ?

Prise en charge des tables virtuelles

MaxCompute ne prend pas en charge les tables virtuelles. Créez manuellement une table DUAL.

Prise en charge des index

Non. Les tables MaxCompute ne comportent pas d'index. Toutefois, la fonctionnalité Hash Clustering fonctionne de manière similaire à un index clusterisé dans une base de données. Pour plus d'informations, consultez la rubrique 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

Il est impossible de convertir une table non partitionnée en table partitionnée ou d'ajouter des colonnes de clé de partition à une table existante. Créez une nouvelle table partitionnée. Pour plus d'informations, consultez la rubrique 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, restaurez ses données dans ce délai. Pour plus d'informations sur la sauvegarde et la récupération, consultez la rubrique Sauvegarde et récupération.

Interrogation des tables par propriétaire

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

Vérification de l'existence d'une table

Utilisez la fonction TABLE_EXISTS pour vérifier l'existence d'une table spécifique. Pour plus d'informations, consultez la rubrique TABLE_EXISTS.

Obtention de tous les noms de tables d'un projet

Exécutez la commande show tables; dans le client MaxCompute ou utilisez le service de métadonnées de MaxCompute. Pour plus d'informations, consultez les rubriques 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 identifier 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 date 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 à son nombre de lignes ainsi qu'à l'espace physique qu'elle occupe :

  • Pour vérifier l'espace physique occupé par une table entière, exécutez la commande desc. Pour connaître 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 accompagnée d'une clause WHERE. Pour connaître 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 connaître le nombre de lignes d'une table partitionnée ou non partitionnée.

Table invisible dans DataWorks

Si vous créez une table à l'aide d'une instruction SQL au lieu de la créer via l'interface utilisateur de DataWorks, la table peut n'apparaître qu'après deux à trois heures.

Partitions et colonnes de clé de partition

Les tables MaxCompute peuvent être partitionnées. Une table partitionnée comporte des colonnes de clé de partition, utilisées pour créer des partitions.

Par exemple, dans une partition spécifiée sous la forme ds=20150101, ds représente une colonne de clé de partition, tandis que ds=20150101 constitue une partition.

Nombre optimal de partitions

Une table MaxCompute peut contenir jusqu'à 60 000 partitions, avec une capacité illimitée par partition. Toutefois, un nombre excessif de partitions peut complexifier les statistiques et l'analyse des données.

MaxCompute impose une limite au 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, choisissez 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 ni de modifier les colonnes de clé de partition d'une table existante. Créez une nouvelle table partitionnée et utilisez une instruction SQL de partitionnement dynamique pour importer les données depuis la table source vers la nouvelle table. Pour plus d'informations, consultez la rubrique Insertion ou remplacement des données dans des partitions dynamiques (DYNAMIC PARTITION).

Vérification de l'existence d'une partition

Utilisez la fonction PARTITION_EXISTS pour vérifier l'existence d'une partition spécifique. Pour plus d'informations, consultez la rubrique PARTITION_EXISTS.

Vérification du nombre de partitions

Utilisez la vue PARTITIONS d'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 utilisant un type de données complexe et la suppression de colonnes sont disponibles en aperçu sur invitation. Pour demander un essai, consultez la rubrique Demander un essai de 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 la rubrique Ajouter une colonne.

Configuration d'une colonne à incrémentation automatique

MaxCompute ne prend pas en charge les colonnes à incrémentation automatique. Pour un faible volume de données, utilisez 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 les tableaux ou les 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, encadrez-le avec des accents graves (). Sinon, une erreur se produit.

Modification du type de données d'une colonne

Il est impossible de 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 la rubrique Versions des types de données.

Nettoyage des données pour les tables partitionnées dotées d'un cycle de vie

Lorsqu'une partition d'une table configurée avec un cycle de vie n'est pas modifiée durant la période spécifiée, 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 au cours de la période du cycle de vie. Exécutez la commande desc tablename; pour afficher le paramétrage 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 subir un retard, généralement d'un jour maximum.