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
-
Type
Fonction
Rôle
Crée une table non partitionnée, une table partitionnée, une table externe ou une table clusterisée.
Utilisateurs disposant de l'autorisation
CreateTablesur un projet.Modifie le propriétaire d'une table.
Propriétaire du projet
Supprime une table non partitionnée ou une table partitionnée.
Utilisateurs disposant de l'autorisation
DROPsur une table.Affiche les informations relatives à une table gérée par MaxCompute, à une vue ou à une table externe.
Utilisateurs disposant de l'autorisation
Describesur les métadonnées de la table.Affiche les informations de partition pour une table partitionnée spécifique.
Utilisateurs disposant de l'autorisation
Describesur les métadonnées de la table.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
Listsur un projet.Répertorie toutes les partitions d'une table.
Utilisateurs disposant de l'autorisation
Listsur un projet.
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 |
|
Cette opération équivaut à exécuter les commandes suivantes :
|
|
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. |
|
|
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 Remarque
Les fonctions telles que |
|
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.
|
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 |
|
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. |
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
joinen 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.
-
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 INTOn'est pas pris en charge. Vous pouvez ajouter des données uniquement en utilisantINSERT 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 |
|
|
Yes |
Spécifie le file_format en fonction du format de données de la table externe. |
|
|
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 |
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 |
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 :
|
|
acid.data.retain.hours |
No |
La valeur par défaut est 24. La plage valide est |
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.
|
|
acid.incremental.query.out.of.time.range.enabled |
No |
Valeur par défaut : |
Si |
|
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 |
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,EXTERNALetCREATE TABLE ASne 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 |
DELETE)](t2043562.dita#concept_2043562). |
Les limitations suivantes s'appliquent à une table transactionnelle :
-
Vous pouvez définir la propriété
transactionaluniquement lors de la création d'une table. Vous ne pouvez pas utiliserALTER TABLEpour 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 partitionn'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,deleteouinsert overwritesur des données importantes, sauvegardez-les manuellement dans une autre table à l'aide d'une instructionSELECT...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 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.
-
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 -
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.
-
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 -
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
-
Créez la table d'origine
my_tableet 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 -
Utilisez
OR REPLACEpour 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 -
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 OKLes 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.
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
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.
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 |
|
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
La taille renvoyée par
DESC table_nameinclut 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écutezDESC table_name.Exécutez
SHOW recyclebinpour 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
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
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 OKLe 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 OKLe 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 OKLe 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
Pour modifier le schéma d'une table, par exemple en ajoutant des colonnes, en supprimant des colonnes ou en modifiant les types de données des colonnes, consultez Opérations sur les partitions.
Pour copier les données d'une table vers une autre table, consultez CLONE TABLE.
Pour mettre à jour ou supprimer des données dans une table transactionnelle, consultez Mettre à jour ou supprimer des données (UPDATE | DELETE).