Tous les produits
Search
Centre de documentation

MaxCompute:Opérations sur les tables

Dernière mise à jour :Oct 22, 2026

Les tables constituent les unités fondamentales de stockage des données dans MaxCompute. Toutes les tâches de développement, d'analyse et d'exploitation au sein d'un entrepôt de données s'articulent autour des données tabulaires. Cette rubrique décrit les opérations courantes sur les tables, telles que la création, la suppression et l'interrogation des tables.

Outils d'exécution

Exécutez les commandes présentées dans cette rubrique à l'aide des outils suivants :

Opérations courantes

  1. Opérations sur les tables

    Type

    Fonction

    Rôle

    Créer une table

    Crée une table non partitionnée, une table partitionnée, une table externe ou une table clusterisée.

    Utilisateurs disposant de l'autorisation CreateTable sur un projet.

    Modifier le propriétaire de la table

    Modifie le propriétaire d'une table.

    Propriétaire du projet

    DROP TABLE

    Supprime une table non partitionnée ou une table partitionnée.

    Utilisateurs disposant de l'autorisation DROP sur une table.

    Tables ou vues

    Affiche les informations relatives à une table gérée par MaxCompute, à une vue ou à une table externe.

    Utilisateurs disposant de l'autorisation Describe sur les métadonnées de la table.

    Afficher les informations de partition

    Affiche les informations de partition pour une table partitionnée spécifique.

    Utilisateurs disposant de l'autorisation Describe sur les métadonnées de la table.

    Afficher les tables et les vues d'un projet

    Répertorie toutes les tables et vues d'un projet, ou celles qui correspondent à une règle spécifique (les expressions régulières sont prises en charge).

    Utilisateurs disposant de l'autorisation List sur un projet.

    Afficher les partitions

    Répertorie toutes les partitions d'une table.

    Utilisateurs disposant de l'autorisation List sur un projet.

  2. Opérations sur les partitions

  3. Opérations sur les colonnes

  4. Opérations sur le cycle de vie des tables

Créer une table

Créez des tables non partitionnées, partitionnées, externes ou clusterisées.

Limitations

  • Une table partitionnée peut comporter jusqu'à six niveaux de partition. Par exemple, vous pouvez utiliser une date comme colonne de partition et définir des niveaux tels que year/month/week/day/hour/minute.

  • Le nombre maximal de partitions par table est configurable au niveau du projet, avec une valeur par défaut de 60 000.

Des limitations supplémentaires concernant les tables sont documentées dans la rubrique Limites de MaxCompute SQL.

Syntaxe

Table interne

Créez une table interne (non partitionnée ou partitionnée)

sale_date=201310/region=beijing
sale_date=201312/region=shenzhen
sale_date=201312/region=xian
sale_date=2014/region=shenzhen

OK

Table clusterisée

Créez une table clusterisée

sale_date=201310/region=beijing
sale_date=201312/region=shenzhen
sale_date=201312/region=xian
sale_date=2014/region=shenzhen

OK

Table externe

Créez une table externe

Cet exemple crée une table externe OSS à l'aide de l'analyseur de données texte intégré. D'autres formats sont abordés dans Table externe ORC.

sale_date=201310/region=beijing
sale_date=201312/region=shenzhen
sale_date=201312/region=xian
sale_date=2014/region=shenzhen

OK

Tables transactionnelles et Delta

  • Créez une table transactionnelle. Vous pouvez exécuter des opérations UPDATE ou DELETE sur ce type de table. Toutefois, les tables transactionnelles présentent certaines limites.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Créez une table Delta. Lorsqu'elle est associée à une clé primaire, elle permet d'effectuer des opérations telles que l'upsert, les requêtes incrémentielles et le time travel.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
    • Une table Delta dotée d'une clé primaire vous permet d'utiliser un sous-ensemble de la clé primaire comme clé de hachage pour le clustering.

      Dans une table Delta avec clé primaire, le système utilise par défaut le clustering par hachage en prenant la clé primaire complète comme clé de cluster. Si vos requêtes filtrent fréquemment sur un sous-ensemble des colonnes de la clé primaire, spécifiez explicitement ce sous-ensemble comme clé de cluster afin d'améliorer les performances de filtrage.

    • Si vous spécifiez explicitement une clé de cluster, le système répartit les données de la table dans des buckets de hachage selon les colonnes indiquées. La clé de cluster doit constituer un sous-ensemble des colonnes de la clé primaire.

      Si vous ne spécifiez pas explicitement de clé de cluster, le système utilise l'ensemble complet des colonnes de la clé primaire comme clé de cluster par défaut.

      Vous ne pouvez pas modifier la clé de cluster après la création de la table. Vous devez la spécifier lors de la création de la table.

Clauses CTAS et LIKE

  • Créez une nouvelle table à partir d'une table existante en copiant les données, sans toutefois reproduire les propriétés de partition. Cette clause s'applique aux tables externes ainsi qu'aux tables des projets Lakehouse externes.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Créez une nouvelle table reprenant la structure d'une table existante, sans copier les données. Cette clause s'applique aux tables externes ainsi qu'aux tables des projets Lakehouse externes.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK

Paramètres

Paramètres généraux

Paramètres généraux

Parameter

Required

Description

Remarks

OR REPLACE

No

  • Si une table portant le même nom existe déjà, elle est supprimée et remplacée par la nouvelle table.

  • CREATE OR REPLACE TABLE ne peut pas être utilisé avec les clauses suivantes :

    • CREATE TABLE ... IF NOT EXISTS

Cette opération équivaut à exécuter les commandes suivantes :

DROP TABLE IF EXISTS <tableName>;  -- If the table exists, drop it.
CREATE TABLE <tableName> ...;      -- Create the new table.

EXTERNAL

No

Crée une table externe.

N/A

IF NOT EXISTS

No

Crée la table uniquement si aucune table du même nom n'existe déjà.

Sans IF NOT EXISTS, la création d'une table portant un nom dupliqué renvoie une erreur. Avec IF NOT EXISTS, l'instruction aboutit même si une table homonyme existe avec un schéma différent. Les métadonnées de la table existante restent inchangées.

table_name

Yes

Le nom de la table.

Le nom de la table doit comporter au maximum 128 octets et contenir uniquement des lettres, des chiffres et des traits de soulignement (_). La casse n'est pas prise en compte. Il est recommandé de commencer le nom par une lettre.

PRIMARY KEY(pk)

No

La clé primaire de la table.

Définissez une ou plusieurs colonnes comme clé primaire pour garantir l'unicité de la combinaison de colonnes. Respectez la syntaxe standard SQL des clés primaires. Les colonnes de clé primaire doivent être définies sur NOT NULL et ne peuvent pas être modifiées.

Important

Ce paramètre s'applique uniquement à une Delta Table.

col_name

Yes

Le nom de la colonne.

  • Le nom de la colonne doit comporter au maximum 128 octets et contenir uniquement des lettres, des chiffres, des traits de soulignement (_) ou des caractères chinois. La casse n'est pas prise en compte. Il est recommandé de commencer le nom par une lettre.

  • Exécutez la commande SET odps.sql.bigquery.compatible=true; pour activer le mode de compatibilité BigQuery. Dans ce mode, le nom de la colonne peut atteindre 256 octets. Sinon, une erreur est renvoyée.

col_comment

No

Le commentaire de la colonne.

Doit être une chaîne de 1 024 octets maximum.

data_type

Yes

Le type de données de la colonne.

Types pris en charge : BIGINT, DOUBLE, BOOLEAN, DATETIME, DECIMAL, STRING et autres types répertoriés dans Types de données.

NOT NULL

No

Indique que la colonne ne peut pas contenir de valeurs NULL.

Pour plus d'informations sur la modification de la propriété NOT NULL, consultez Opérations sur les partitions.

default_value

No

La valeur par défaut de la colonne.

Si une opération insert ne spécifie pas de valeur pour cette colonne, la valeur par défaut est écrite dans la colonne.

Remarque

Les fonctions telles que GETDATE() et NOW() ne sont pas prises en charge comme valeurs par défaut.

table_comment

No

Le commentaire de la table.

Doit être une chaîne de 1 024 octets maximum.

LIFECYCLE

No

Le cycle de vie de la table, en jours.

Seuls les entiers positifs sont pris en charge. L'unité est le jour.

  • Pour une table non partitionnée, le cycle de vie commence à la dernière date de modification des données. Si les données ne sont pas modifiées pendant le nombre de jours spécifié, MaxCompute récupère automatiquement la table, ce qui équivaut à une opération DROP TABLE.

  • Pour une table partitionnée, le système détermine s'il faut récupérer une partition en fonction de son LastModifiedTime. Contrairement aux tables non partitionnées, la table elle-même n'est pas supprimée après la récupération de sa dernière partition. Le cycle de vie peut être défini uniquement au niveau de la table, et non au niveau de la partition.

Paramètres des tables clusterisées

Paramètres des tables clusterisées

Les tables clusterisées se divisent en tables clusterisées par hachage et en tables clusterisées par plage.

Table clusterisée par hachage

Parameter

Required

Description

Remarks

CLUSTERED BY

Yes

Spécifie la clé de hachage. MaxCompute calcule les valeurs de hachage pour les colonnes spécifiées et distribue les données dans des compartiments de hachage en fonction de ces valeurs.

Pour éviter le déséquilibre des données (data skew) et obtenir un bon parallélisme, choisissez des colonnes à forte cardinalité avec peu de doublons pour la clause CLUSTERED BY. Pour optimiser les opérations join, sélectionnez les clés de jointure ou d'agrégation fréquemment utilisées.

SORTED BY

Yes

Spécifie l'ordre de tri des colonnes au sein de chaque compartiment de hachage.

Pour des performances optimales, utilisez les mêmes colonnes pour SORTED BY et CLUSTERED BY. Après avoir spécifié la clause SORTED BY, MaxCompute crée automatiquement un index et l'utilise pour accélérer les requêtes.

number_of_buckets

Yes

Spécifie le nombre de compartiments de hachage.

Cette valeur est obligatoire et dépend du volume de données.

Remarque

Lorsque vous sélectionnez le nombre de compartiments de hachage, suivez ces deux principes :

  • Maintenez une taille de compartiment de hachage modérée : la taille recommandée pour chaque compartiment de hachage est d'environ 500 Mo. Par exemple, si la taille estimée de la partition est de 500 Go, définissez le nombre de compartiments sur 1 000. Cela donne une taille moyenne de compartiment de hachage d'environ 500 Mo. Pour les très grandes tables, vous pouvez dépasser la limite de 500 Mo. Une taille de 2 à 3 Go par compartiment convient.

  • Pour optimiser les opérations join en supprimant les étapes de brassage (shuffle) et de tri, ce qui améliore considérablement les performances, le nombre de compartiments de hachage des deux tables doit être un multiple l'un de l'autre, par exemple 256 et 512. Il est recommandé de définir le nombre de compartiments de hachage sur une puissance de 2 (2n), telle que 512, 1 024, 2 048 ou 4 096. Cela permet au système de diviser ou de fusionner automatiquement les compartiments de hachage et de supprimer les étapes de brassage et de tri, ce qui améliore l'efficacité d'exécution.

Table clusterisée par plage

Parameter

Required

Description

Remarks

RANGE CLUSTERED BY

Yes

Spécifie les colonnes de clusterisation par plage.

MaxCompute effectue des opérations de regroupement (bucketing) sur les colonnes spécifiées et distribue les données dans des compartiments en fonction des numéros de compartiment.

SORTED BY

Yes

Spécifie l'ordre de tri des colonnes au sein de chaque compartiment.

L'utilisation est identique à celle d'une table clusterisée par hachage.

number_of_buckets

Yes

Spécifie le nombre de compartiments.

Pour une table clusterisée par plage, la bonne pratique consistant à utiliser une puissance de 2 (2n) applicable aux tables clusterisées par hachage n'est pas requise. Tout nombre de compartiments est acceptable si les données sont réparties uniformément. Ce paramètre est facultatif pour les tables clusterisées par plage. Si vous l'omettez, le système détermine automatiquement le nombre optimal de compartiments en fonction du volume de données.

Lorsqu'une opération de jointure ou d'agrégation est effectuée sur une table clusterisée par plage, si la clé de jointure ou la clé de groupe correspond à la clé de clusterisation par plage ou à son préfixe, vous pouvez éliminer la redistribution des données (suppression du brassage) pour améliorer les performances. Exécutez la commande set odps.optimizer.enable.range.partial.repartitioning=true/false; pour activer ou désactiver cette fonctionnalité. Elle est désactivée par défaut.

Remarque
  • Avantages des tables clusterisées :

    • Optimisation de l'élagage des compartiments (bucket pruning)

    • Optimisation des agrégations

    • Optimisation du stockage

  • Limitations des tables clusterisées :

    • INSERT INTO n'est pas pris en charge. Vous pouvez ajouter des données uniquement en utilisant INSERT OVERWRITE.

    • Le téléchargement direct de données vers une table clusterisée par plage à l'aide de Tunnel n'est pas pris en charge, car Tunnel télécharge les données de manière non ordonnée.

    • Les fonctionnalités de sauvegarde et de restauration ne sont pas prises en charge.

Paramètres des tables externes

Paramètres des tables externes

Cette section couvre les paramètres des tables externes OSS. Les autres types de tables externes sont documentés dans Tables externes.

Parameter

Required

Description

STORED AS '<file_format>'

Yes

Spécifie le file_format en fonction du format de données de la table externe.

WITH SERDEPROPERTIES(options)

No

Spécifie les paramètres liés à l'autorisation, à la compression et à l'analyse des caractères pour la table externe.

oss_location

Yes

L'emplacement de stockage OSS des données de la table externe. Pour plus d'informations, consultez Tables externes OSS.

Paramètres des tables transactionnelles et des Delta Tables

Paramètres des tables transactionnelles et des Delta Tables

Paramètres des Delta Tables

Une Delta Table est un format de table qui prend en charge les lectures et écritures en temps quasi réel, le stockage et l'accès incrémentiels, ainsi que les mises à jour en temps réel. Actuellement, seules les tables à clé primaire sont prises en charge.

Parameter

Required

Description

Remarks

PRIMARY KEY(PK)

Yes

Définit la clé primaire de la Delta Table, qui peut inclure plusieurs colonnes.

La syntaxe suit la syntaxe standard SQL des clés primaires. Les colonnes de clé primaire doivent être définies sur NOT NULL et ne peuvent pas être modifiées. Après la définition de la clé primaire, les données sont dédupliquées en fonction des colonnes de clé primaire. La contrainte d'unicité est appliquée au sein d'une seule partition ou au sein d'une table non partitionnée.

transactional

Yes

Obligatoire pour la création d'une Delta Table. Vous devez définir ce paramètre sur true.

Indique que la table prend en charge les propriétés transactionnelles des tables ACID MaxCompute. La table utilise le modèle de contrôle de concurrence multiversion (MVCC) pour garantir le niveau d'isolation snapshot.

write.bucket.num

No

La valeur par défaut est 16. La plage valide est (0, 4096].

Spécifie le nombre de compartiments pour chaque partition ou pour une table non partitionnée. Cela indique également le nombre de nœuds simultanés pour les écritures de données. Vous pouvez modifier ce paramètre pour une table partitionnée, et le nouveau paramètre prend effet pour les nouvelles partitions. Vous ne pouvez pas modifier ce paramètre pour une table non partitionnée. Tenez compte des recommandations suivantes :

  • Si vous importez des données à l'aide de Tunnel, ce paramètre spécifie le nombre de nœuds Tunnel simultanés. Le paramètre affecte le trafic d'importation et est également contraint par le nombre maximal de nœuds Tunnel simultanés.

  • Si vous écrivez des données à l'aide de SQL, ce paramètre spécifie le degré de simultanéité des reducers. Ceci est contraint par le nombre maximal de nœuds reducer simultanés.

  • La taille recommandée pour chaque compartiment est d'environ 500 Mo de données. Par exemple, si la taille estimée de la partition est de 500 Go, définissez le nombre de compartiments sur 1 000. Pour les très grandes tables, vous pouvez augmenter la taille du compartiment à 2 ou 3 Go.

acid.data.retain.hours

No

La valeur par défaut est 24. La plage valide est [24, 168].

Spécifie la plage de temps en heures pendant laquelle vous pouvez interroger les états historiques des données à l'aide de Time Travel. Si vous avez besoin d'un historique Time Travel supérieur à 168 heures (7 jours), contactez le support technique MaxCompute.

  • Une valeur de 0 indique que l'état historique des données n'est pas conservé et que les requêtes Time Travel ne sont pas prises en charge.

  • Les données historiques plus anciennes que la valeur spécifiée peuvent être supprimées ou compactées.

  • Si une requête Time Travel spécifie une heure antérieure à la plage autorisée définie par ce paramètre, une erreur est renvoyée. Par exemple, si cette valeur est 72, une requête pour des données datant de plus de 72 heures échoue.

acid.incremental.query.out.of.time.range.enabled

No

Valeur par défaut : false.

Si true, le endTimestamp dans une requête incrémentielle peut être postérieur à la dernière heure de validation des données de la table. Dans ce cas, plusieurs requêtes peuvent renvoyer des résultats différents car de nouvelles données peuvent être insérées. Vous pouvez modifier la valeur de ce paramètre pour une table existante.

acid.write.precombine.field

No

Spécifie un seul nom de colonne.

Si un nom de colonne est spécifié, le système utilise cette colonne en combinaison avec les colonnes de clé primaire pour dédupliquer les données au sein de la même validation. Cela garantit l'unicité et la cohérence des données.

Remarque

Si une validation de données unique dépasse 128 Mo, plusieurs fichiers sont générés. Ce paramètre ne s'applique pas entre plusieurs fichiers.

acid.partial.fields.update.enable

No

Si défini sur true, vous pouvez effectuer une mise à jour partielle des colonnes sur la Delta Table à l'aide de SQL ou de Tunnel.

Ce paramètre est défini lors de la création de la table. Il ne peut pas être modifié après la création de la table.

  • Autres exigences de paramètres pour les Delta Tables :

    • LIFECYCLE : le cycle de vie de la table doit être supérieur ou égal à la période de conservation de Time Travel, c'est-à-dire lifecycle >= acid.data.retain.hours / 24. Une vérification est effectuée lors de la création de la table et une erreur est signalée si cette condition n'est pas respectée.

    • Fonctionnalités non prises en charge : CLUSTERED BY, EXTERNAL et CREATE TABLE AS ne sont pas pris en charge.

  • Autres limitations :

    • Actuellement, les autres moteurs ne peuvent pas opérer directement sur une Delta Table. Seul MaxCompute SQL est pris en charge.

    • Vous ne pouvez pas convertir une table standard en Delta Table.

    • Vous ne pouvez pas effectuer de modifications de schéma sur les colonnes de clé primaire d'une Delta Table.

Paramètres des tables transactionnelles

Parameter

Required

Description

TBLPROPERTIES("transactional"="true")

Yes

Définit la table comme une table transactionnelle, activant les opérations update et delete au niveau des lignes. UPDATE | DELETE[Mettre à jour ou supprimer des données (UPDATE

DELETE)](t2043562.dita#concept_2043562).

Les limitations suivantes s'appliquent à une table transactionnelle :

  • Vous pouvez définir la propriété transactional uniquement lors de la création d'une table. Vous ne pouvez pas utiliser ALTER TABLE pour modifier cette propriété pour une table existante. L'instruction suivante renvoie une erreur :

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Vous ne pouvez pas définir une table clusterisée ou une table externe comme table transactionnelle.

  • Vous ne pouvez pas convertir une table interne standard, une table externe ou une table clusterisée en table transactionnelle, ni vice versa.

  • La compaction automatique n'est pas prise en charge. Compactez manuellement les fichiers comme décrit dans Compacter les fichiers dans une table transactionnelle.

  • L'opération merge partition n'est pas prise en charge.

  • L'accès aux tables transactionnelles depuis d'autres systèmes est limité. Par exemple, MaxCompute Graph ne prend pas en charge les opérations de lecture ou d'écriture. Spark et PAI ne prennent en charge que les opérations de lecture.

  • Avant d'effectuer des opérations update, delete ou insert overwrite sur des données importantes, sauvegardez-les manuellement dans une autre table à l'aide d'une instruction SELECT ... INSERT.

Créer une table (à partir d'une table existante)

Créer une table (à partir d'une table existante)

  • Vous pouvez utiliser l'instruction CREATE TABLE [IF NOT EXISTS] <table_name> [LIFECYCLE <days>] AS <select_statement>; pour créer une autre table et copier simultanément les données dans la nouvelle table.

    • Cette instruction ne copie pas les propriétés de partition. Les colonnes de partition de la table source sont traitées comme des colonnes régulières dans la table de destination. La propriété de cycle de vie de la table source n'est pas non plus copiée.

    • Vous pouvez utiliser le paramètre lifecycle pour spécifier un cycle de vie pour la nouvelle table. Cette instruction prend également en charge la création d'une table interne et la copie de données à partir d'une table externe.

  • Vous pouvez utiliser l'instruction CREATE TABLE [IF NOT EXISTS] <table_name> [LIFECYCLE <days>] LIKE <existing_table_name>; pour créer une nouvelle table avec le même schéma qu'une table existante.

    • Cette instruction copie le schéma mais ne copie pas les données ni la propriété de cycle de vie de la table source.

    • Vous pouvez utiliser le paramètre lifecycle pour spécifier un cycle de vie pour la nouvelle table. Cette instruction prend également en charge la création d'une table interne qui copie le schéma d'une table externe.

Exemples

Table non partitionnée

  • Créez une table non partitionnée.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Créez une table non partitionnée et spécifiez des valeurs par défaut pour les colonnes.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK

Table partitionnée

  • Créez une table partitionnée standard.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Créez une table partitionnée AUTO PARTITION qui génère des partitions basées sur une colonne de données temporelle à l'aide d'une fonction temporelle.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Créez une table partitionnée AUTO PARTITION qui génère des partitions basées sur l'heure d'ingestion des données. Le système récupère automatiquement l'heure à laquelle les données sont écrites dans MaxCompute et génère des partitions à l'aide d'une fonction temporelle.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK

Table clusterisée par hachage ou par plage

  • Créez une table non partitionnée clusterisée par hachage.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Créez une table partitionnée clusterisée par hachage.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Créez une table non partitionnée clusterisée par plage.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Créez une table partitionnée clusterisée par plage.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK

Table transactionnelle

  • Créez une table transactionnelle non partitionnée.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Créez une table transactionnelle partitionnée.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK

Table interne

  • Créez une table interne en copiant les données d'une table externe partitionnée. La table interne n'inclura pas les propriétés de partition.

    1. Créez une table externe OSS et une table interne MaxCompute. Créez une table interne à l'aide de CREATE TABLE AS.

      sale_date=201310/region=beijing
      sale_date=201312/region=shenzhen
      sale_date=201312/region=xian
      sale_date=2014/region=shenzhen
      
      OK
    2. Exécutez la commande DESC from_exetbl_oss; pour afficher le schéma de la table interne. La commande renvoie la sortie suivante.

      sale_date=201310/region=beijing
      sale_date=201312/region=shenzhen
      sale_date=201312/region=xian
      sale_date=2014/region=shenzhen
      
      OK
  • Créez une table interne en copiant le schéma d'une table externe partitionnée. La table interne inclut les propriétés de partition.

    1. Créez la table interne from_exetbl_like. Interrogez la table externe OSS depuis MaxCompute. Créez une table interne à l'aide de CREATE TABLE LIKE.

      sale_date=201310/region=beijing
      sale_date=201312/region=shenzhen
      sale_date=201312/region=xian
      sale_date=2014/region=shenzhen
      
      OK
    2. Exécutez la commande DESC from_exetbl_like; pour afficher le schéma de la table interne. La commande renvoie la sortie suivante.

      sale_date=201310/region=beijing
      sale_date=201312/region=shenzhen
      sale_date=201312/region=xian
      sale_date=2014/region=shenzhen
      
      OK

Delta table

  • Créez une Delta table.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Créez une Delta table et définissez les propriétés clés de la table.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK

Autres méthodes

Remplacer une table existante

  1. Créez la table d'origine my_table et insérez-y des données.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  2. Utilisez OR REPLACE pour créer une nouvelle table portant le même nom et modifier ses colonnes.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  3. Interrogez la table my_table. La requête renvoie le résultat suivant.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK

    Les instructions SQL suivantes sont invalides :

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK

Copier des données et définir un cycle de vie

sale_date=201310/region=beijing
sale_date=201312/region=shenzhen
sale_date=201312/region=xian
sale_date=2014/region=shenzhen

OK

Exécutez la commande DESC EXTENDED sale_detail_ctas1; pour afficher des détails tels que le schéma et le cycle de vie de la table.

Remarque

Dans cet exemple, sale_detail est une table partitionnée. Lorsque vous utilisez l'instruction CREATE TABLE ... AS select_statement ... pour créer la table sale_detail_ctas1, les propriétés de partition ne sont pas copiées. Les colonnes de partition de la table source deviennent des colonnes régulières dans la table de destination. Par conséquent, sale_detail_ctas1 est une table non partitionnée avec cinq colonnes.

Utiliser des constantes pour les valeurs de colonne

Remarque

Si vous utilisez des constantes comme valeurs de colonne dans la clause SELECT, spécifiez les noms de colonne. Sinon, les quatrième et cinquième colonnes de la table créée sale_detail_ctas3 reçoivent des noms par défaut tels que _c4 et _c5.

  • Spécifiez les noms de colonne.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Ne spécifiez pas les noms de colonne.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK

Copier un schéma et définir un cycle de vie

sale_date=201310/region=beijing
sale_date=201312/region=shenzhen
sale_date=201312/region=xian
sale_date=2014/region=shenzhen

OK

Exécutez la commande DESC EXTENDED sale_detail_like; pour afficher des détails tels que le schéma et le cycle de vie de la table.

Remarque

Le schéma de sale_detail_like est identique au schéma de sale_detail. Toutes les propriétés, telles que les noms de colonne, les commentaires de colonne et les commentaires de table, sont copiées, à l'exception de la propriété de cycle de vie. Cependant, les données de sale_detail ne sont pas copiées dans la table sale_detail_like.

Copier un schéma à partir d'une table externe

sale_date=201310/region=beijing
sale_date=201312/region=shenzhen
sale_date=201312/region=xian
sale_date=2014/region=shenzhen

OK

Exécutez la commande DESC mc_oss_extable_orc_like; pour afficher des détails tels que le schéma de la table.

sale_date=201310/region=beijing
sale_date=201312/region=shenzhen
sale_date=201312/region=xian
sale_date=2014/region=shenzhen

OK

Nouveaux types de données

sale_date=201310/region=beijing
sale_date=201312/region=shenzhen
sale_date=201312/region=xian
sale_date=2014/region=shenzhen

OK

Modifier le propriétaire de la table

Limitations

Seuls les utilisateurs disposant du rôle Project Owner ou Super_Administrator peuvent exécuter cette commande.

Syntaxe

sale_date=201310/region=beijing
sale_date=201312/region=shenzhen
sale_date=201312/region=xian
sale_date=2014/region=shenzhen

OK

Paramètres

  • table_name : Obligatoire. Le nom de la table dont le propriétaire doit être modifié.

  • new_owner : Obligatoire. Le compte du nouveau propriétaire.

    Si le nouveau propriétaire est un utilisateur RAM :

    • L'utilisateur RAM doit être membre du projet contenant la table.

    • Format : RAM$<UID>:<ram_name>, où UID est l'ID de compte de votre compte Alibaba Cloud et ram_name est le nom d'affichage de l'utilisateur RAM.

Exemples

  • Modifiez le propriétaire de la table test1 en ALIYUN$xxx@aliyun.com.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Modifiez le propriétaire de la table test1 en l'utilisateur RAM nommé ram_test.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK

DROP TABLE

Supprime une table non partitionnée ou une table partitionnée.

Précautions

  • Soyez prudent lorsque vous supprimez une table. Une table supprimée ne peut être restaurée que si la sauvegarde et la restauration sont activées pour le projet et que la table se trouve dans la période de rétention des données. La restauration nécessite que la sauvegarde locale soit configurée.

  • La suppression d'une table réduit l'utilisation du stockage du projet MaxCompute.

Syntaxe

sale_date=201310/region=beijing
sale_date=201312/region=shenzhen
sale_date=201312/region=xian
sale_date=2014/region=shenzhen

OK

Paramètres

Parameter

Required

Description

IF EXISTS

No

Sans IF EXISTS, la tentative de suppression d'une table inexistante renvoie une exception. Avec IF EXISTS, l'instruction aboutit même si la table n'existe pas.

table_name

Yes

Le nom de la table à supprimer.

Exemples

sale_date=201310/region=beijing
sale_date=201312/region=shenzhen
sale_date=201312/region=xian
sale_date=2014/region=shenzhen

OK

Tables ou vues

Affiche des informations sur les tables gérées, les vues, les vues matérialisées, les tables externes, les tables clusterisées ou les tables transactionnelles dans MaxCompute.

Syntaxe

sale_date=201310/region=beijing
sale_date=201312/region=shenzhen
sale_date=201312/region=xian
sale_date=2014/region=shenzhen

OK

Paramètres

Parameter Name

Description

table_name

Obligatoire. Le nom de la table que vous souhaitez consulter.

view_name

Obligatoire. Le nom de la vue que vous souhaitez consulter.

mv_name

Le nom de la vue matérialisée que vous souhaitez interroger.

pt_spec

Facultatif. La partition que vous souhaitez consulter dans une table partitionnée.

Le format est (partition_col1 = partition_col_value1, partition_col2 = partition_col_value2, ...).

extended

Incluez ce paramètre pour afficher des informations étendues pour une vue matérialisée, une table externe, une table clusterisée ou une table transactionnelle. Vous pouvez également utiliser ce paramètre pour afficher des informations étendues pour une table interne, telles que la propriété non nulle d'une colonne.

Valeurs de retour

Parameter name

Description

Owner

Le compte du propriétaire de la table ou de la vue.

Project

Le projet auquel appartient la table ou la vue.

TableComment

Le commentaire de la table ou de la vue.

CreateTime

L'heure de création de la table ou de la vue.

LastDDLTime

L'heure de la dernière modification du langage de définition de données (DDL) de la table ou de la vue.

LastModifiedTime

L'heure de la dernière modification des données dans la table ou la vue.

LastAccessTime

L'heure du dernier accès aux données dans la table ou la vue. Cette heure est fournie à titre indicatif uniquement. Un écart pouvant aller jusqu'à 24 heures peut exister entre cette valeur et l'heure réelle du dernier accès.

Si les données sont fréquemment consultées, la valeur LastAccessTime n'est pas mise à jour si elle a été mise à jour au cours des dernières 24 heures. Cela réduit la surcharge de performance causée par des mises à jour fréquentes.

Lifecycle

Le cycle de vie en jours.

InternalTable

Indique si l'objet est une table interne. Ce paramètre est renvoyé uniquement pour les objets de type table.

VirtualView

Indique si l'objet est une vue. Ce paramètre est renvoyé uniquement pour les objets de type vue.

Size

La taille de la table en octets.

NativeColumns

Les informations sur les colonnes de la table ou de la vue.

PartitionColumns

Les informations sur les colonnes de clé de partition. Ce paramètre est renvoyé uniquement pour les tables partitionnées.

Exemples

Remarque
  • La taille renvoyée par DESC table_name inclut les données présentes dans la corbeille.

  • Pour exclure les données de la corbeille du calcul de la taille, exécutez d'abord PURGE TABLE table_name. Ensuite, exécutez DESC table_name.

  • Exécutez SHOW recyclebin pour afficher les détails des données présentes dans la corbeille pour le projet actuel.

Exemple 1 : Afficher une table non partitionnée

  • Créez une table de test.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Affichez les informations de la table test_table.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Résultat renvoyé.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK

Exemple 2 : Afficher une table partitionnée

  • Créez une table de test.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Affichez les informations de la table créée.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Résultat renvoyé.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK

Exemple 3 : Afficher les informations détaillées d'une table partitionnée

  • Créez une table de test.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Affichez les informations de la table créée.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Résultat renvoyé.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK

Exemple 4 : Afficher une table avec un cycle de vie

  • Créez une table de test.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Affichez les informations détaillées de la table créée.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Résultat renvoyé.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK

Exemple 5 : Afficher une table avec divers types de données

  • Créez une table de test.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Affichez les informations détaillées de la table créée.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Résultat renvoyé.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK

Exemple 6 : Afficher une table non partitionnée clusterisée par hachage

  • Créez une table de test.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Affichez les informations détaillées de la table créée.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Résultat renvoyé.

    Les propriétés de cluster apparaissent dans la section Extended Info.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK

Exemple 7 : Afficher une table partitionnée clusterisée par hachage

  • Créez une table de test.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Affichez les informations détaillées de la table créée.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Résultat renvoyé.

    Les propriétés de cluster apparaissent dans la section Extended Info.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK

Exemple 8 : Afficher une table non partitionnée clusterisée par plage

  • Créez une table de test.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Affichez les informations détaillées de la table créée.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Résultat renvoyé.

    Les propriétés de cluster apparaissent dans la section Extended Info.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK

Exemple 9 : Afficher une table partitionnée clusterisée par plage

  • Créez une table de test.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Affichez les informations détaillées de la table créée.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Résultat renvoyé.

    Les propriétés de cluster apparaissent dans la section Extended Info.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK

Exemple 10 : Vérifier si une table non partitionnée est transactionnelle

Remarque

Utilisez le client MaxCompute version 0.35.4 ou ultérieure pour vérifier si une table est une table transactionnelle.

D'autres outils peuvent ne pas prendre en charge cette fonctionnalité s'ils ne sont pas mis à niveau vers la version requise, et le résultat de la requête peut omettre les informations transactionnelles.

  • Créez une table de test.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Affichez les informations détaillées de la table créée.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Résultat renvoyé.

    La propriété Transactional apparaît dans la section Extended Info.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK

Exemple 11 : Vérifier si une table partitionnée est transactionnelle

Remarque

Utilisez le client MaxCompute version 0.35.4 ou ultérieure pour vérifier si une table est une table transactionnelle.

D'autres outils peuvent ne pas prendre en charge cette fonctionnalité s'ils ne sont pas mis à niveau vers la version requise, et le résultat de la requête peut omettre les informations transactionnelles.

  • Créez une table de test.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Affichez les informations détaillées de la table créée.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Résultat renvoyé.

    La propriété Transactional apparaît dans la section Extended Info.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK

Exemple 12 : Afficher la vue matérialisée mv

  • Créez une table de test.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Affichez les informations détaillées de la vue matérialisée.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Résultat renvoyé.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK

Exemple 13 : Afficher les informations de partition

  • Créez une table de test.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Interrogez les informations de partition pour la table partitionnée.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Résultat renvoyé.

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK

Afficher les informations de partition

Affiche les informations de partition d'une table partitionnée.

  • Syntaxe

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Paramètres

    • table_name : Obligatoire. Le nom de la table partitionnée dont vous souhaitez afficher les informations de partition.

    • pt_spec : Obligatoire. Les informations sur la partition que vous souhaitez afficher. La valeur de ce paramètre est au format partition_col1=col1_value1, partition_col2=col2_value1.... Si une table comporte des partitions à plusieurs niveaux, vous devez spécifier les valeurs de toutes les colonnes de clé de partition.

  • Exemples

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK

    Le résultat suivant est renvoyé :

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK

Afficher les tables et vues d'un projet

Affiche toutes les tables et vues ou les tables et vues qui répondent à des règles spécifiques dans un projet.

  • Syntaxe

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Exemples

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK

    Le résultat suivant est renvoyé :

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK

Afficher les partitions

Affiche toutes les partitions d'une table. Si la table n'existe pas ou s'il s'agit d'une table non partitionnée, une erreur est renvoyée.

  • Syntaxe

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK
  • Paramètres

    table_name : Obligatoire. Le nom de la table partitionnée dont vous souhaitez afficher les informations de partition.

  • Exemples

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK

    Le résultat suivant est renvoyé :

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK

Documentation connexe