Tous les produits
Search
Centre de documentation

:Create a table

Dernière mise à jour :Aug 10, 2026

Les tables constituent l'unité fondamentale de stockage des données dans MaxCompute. Ce tutoriel vous guide dans la conception et la création de deux types de tables (non partitionnées et partitionnées) à partir d'exemples de données bancaires, puis dans la vérification des résultats.

Objectifs d'apprentissage :

  • Analyser un fichier de données et déterminer la structure de table appropriée

  • Créer des tables non partitionnées et partitionnées à l'aide du client MaxCompute

  • Ajouter des partitions à une table partitionnée

  • Vérifier que les tables ont été créées avec le schéma correct

Steps overview: Étape 1 : Concevoir les tables → Étape 2 : Créer les tables → Étape 3 : Vérifier les tables

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

Notes d'utilisation

Les types de données des colonnes de votre table doivent correspondre à ceux de vos fichiers source. Toute incompatibilité de type empêche l'importation des données.

Étape 1 : Concevoir les tables

Avant d'écrire du code SQL, examinez vos données source afin de déterminer le nombre de colonnes, les noms des champs et les types de données pour chaque colonne.

Les fichiers d'exemple de ce tutoriel contiennent des données relatives aux emprunteurs hypothécaires. Les champs sont séparés par des virgules. L'aperçu suivant présente quelques lignes de chaque fichier :

-- Non-partitioned table data (21 columns)
44,blue-collar,married,basic.4y,unknown,yes,no,cellular,aug,thu,210,1,999,0,nonexistent,1.4,93.444,-36.1,4.963,5228.1,0
53,technician,married,unknown,no,no,no,cellular,nov,fri,138,1,999,0,nonexistent,-0.1,93.2,-42,4.021,5195.8,0
28,management,single,university.degree,no,yes,no,cellular,jun,thu,339,3,6,2,success,-1.7,94.055,-39.8,0.729,4991.6,1

-- Partitioned table data (20 columns per file; credit column is used as partition key)
53,technician,married,unknown,no,no,cellular,nov,fri,138,1,999,0,nonexistent,-0.1,93.2,-42,4.021,5195.8,0
28,management,single,university.degree,yes,no,cellular,jun,thu,339,3,6,2,success,-1.7,94.055,-39.8,0.729,4991.6,1
39,services,married,high.school,no,no,cellular,apr,fri,185,2,999,0,nonexistent,-1.8,93.075,-47.1,1.405,5099.1,0

Comptez les colonnes, identifiez le type de données de chaque champ et choisissez des noms de colonnes significatifs. Le tableau suivant résume l'analyse des fichiers d'exemple.

Élément

Description

Nombre de colonnes

Comptez le nombre de colonnes dans chaque fichier d'exemple et déterminez le nombre de colonnes de la table à créer :

  • Le fichier d'exemple utilisé pour créer une table non partitionnée contient 21 colonnes. Vous pouvez créer une table non partitionnée comportant 21 colonnes sur la base de ce fichier.

    Remarque

    Si le nombre de colonnes de la table dépasse celui du fichier d'exemple, les colonnes supplémentaires de la table sont remplies avec la valeur NULL. Si le nombre de colonnes de la table est inférieur à celui du fichier d'exemple, les données excédentaires du fichier sont ignorées.

  • Chacun des fichiers d'exemple utilisés pour créer une table partitionnée contient 20 colonnes. Vous pouvez créer une table partitionnée comportant 21 colonnes, dont une sert de clé de partition, sur la base de ces fichiers. Vous devez définir les partitions lors de la création de la table.

Champs de la table

Identifiez les champs de chaque fichier d'exemple et déterminez les champs de la table à créer :

  • Champs de la table non partitionnée :

    • age : âge

    • job : type d'emploi

    • marital : état civil

    • education : niveau d'études

    • credit : possession d'une carte de crédit

    • housing : emprunteurs hypothécaires

    • loan : possession de prêts

    • contact : informations de contact

    • month : mois

    • day_of_week : jour de la semaine

    • duration : durée

    • campaign : nombre de contacts pour la campagne en cours

    • pdays : temps écoulé depuis le dernier contact

    • previous : nombre de contacts précédents

    • poutcome : résultats des activités marketing précédentes

    • emp_var_rate : taux de variation de l'emploi

    • cons_price_idx : indice des prix à la consommation

    • cons_conf_idx : indice de confiance des consommateurs

    • euribor 3m : taux interbancaire offert en euros (Euribor) à 3 mois

    • nr_employed : nombre d'employés

    • fixed_deposit : possession d'un dépôt à terme

  • Champs de la table partitionnée :

    • age : âge

    • job : type d'emploi

    • marital : état civil

    • education : niveau d'études

    • housing : emprunteurs hypothécaires

    • loan : possession de prêts

    • contact : informations de contact

    • month : mois

    • day_of_week : jour de la semaine

    • duration : durée

    • campaign : nombre de contacts pour la campagne en cours

    • pdays : temps écoulé depuis le dernier contact

    • previous : nombre de contacts précédents

    • poutcome : résultats des activités marketing précédentes

    • emp_var_rate : taux de variation de l'emploi

    • cons_price_idx : indice des prix à la consommation

    • cons_conf_idx : indice de confiance des consommateurs

    • euribor 3m : Euribor à 3 mois

    • nr_employed : nombre d'employés

    • fixed_deposit : possession d'un dépôt à terme

    • credit : possession d'une carte de crédit (clé de partition)

Types de données

Identifiez le type de données de chaque colonne dans les fichiers d'exemple :

  • age : BIGINT

  • job : STRING

  • marital : STRING

  • education : STRING

  • credit : STRING

  • housing : STRING

  • loan : STRING

  • contact : STRING

  • month : STRING

  • day_of_week : STRING

  • duration : STRING

  • campaign : BIGINT

  • pdays : DOUBLE

  • previous : DOUBLE

  • poutcome : STRING

  • emp_var_rate : DOUBLE

  • cons_price_idx : DOUBLE

  • cons_conf_idx : DOUBLE

  • euribor3m : DOUBLE

  • nr_employed : DOUBLE

  • fixed_deposit : BIGINT

Étape 2 : Créer les tables

Ce tutoriel crée au total quatre tables :

  • bank_data : table non partitionnée destinée à l'importation de l'ensemble complet des données

  • bank_data_pt : table partitionnée, avec credit comme clé de partition

  • result_table1 : table non partitionnée destinée au stockage des résultats de requête

  • result_table2 : table non partitionnée destinée au stockage des résultats de requête

Pour plus de détails sur la syntaxe CREATE TABLE, consultez la rubrique Créer une table. Pour plus d'informations sur la gestion des tables et des partitions, consultez les rubriques Opérations sur les tables et Opérations sur les partitions.

  1. Optional: Basculez vers votre projet MaxCompute cible. Ignorez cette étape si le projet était déjà sélectionné au démarrage du client.

    use doc_test_dev;

    L'invite de commande se met à jour pour confirmer le basculement :

    doc_test_dev.default>
  2. Créez les quatre tables. L'ordre des colonnes et les types de données de chaque instruction CREATE TABLE correspondent directement aux champs identifiés à l'étape 1.

    • Créez la table non partitionnée bank_data :

      create table if not exists bank_data
      (
       age             BIGINT comment 'age',
       job             STRING comment 'job type',
       marital         STRING comment 'marital status',
       education       STRING comment 'education level',
       credit          STRING comment 'have a credit card',
       housing         STRING comment 'mortgagors',
       loan            STRING comment 'have loans',
       contact         STRING comment 'contact information',
       month           STRING comment 'month',
       day_of_week     STRING comment 'day of the week',
       duration        STRING comment 'duration',
       campaign        BIGINT comment 'number of contacts for the current campaign',
       pdays           DOUBLE comment 'time elapsed after the last contact',
       previous        DOUBLE comment 'number of previous contacts',
       poutcome        STRING comment 'results of previous marketing activities',
       emp_var_rate    DOUBLE comment 'employment variance rate',
       cons_price_idx  DOUBLE comment 'consumer price index',
       cons_conf_idx   DOUBLE comment 'consumer confidence index',
       euribor3m       DOUBLE comment '3-month Euribor',
       nr_employed     DOUBLE comment 'number of employees',
       fixed_deposit   BIGINT comment 'have a time deposit'
      );
    • Créez la table partitionnée bank_data_pt et ajoutez des partitions. La colonne credit est utilisée comme clé de partition au lieu d'être une colonne de données standard ; la table comporte donc 20 colonnes de données plus une clé de partition.

      create table if not exists bank_data_pt
      (
       age             BIGINT comment 'age',
       job             STRING comment 'job type',
       marital         STRING comment 'marital status',
       education       STRING comment 'education level',
       housing         STRING comment 'mortgagors',
       loan            STRING comment 'have loans',
       contact         STRING comment 'contact information',
       month           STRING comment 'month',
       day_of_week     STRING comment 'day of the week',
       duration        STRING comment 'duration',
       campaign        BIGINT comment 'number of contacts for the current campaign',
       pdays           DOUBLE comment 'time elapsed after the last contact',
       previous        DOUBLE comment 'number of previous contacts',
       poutcome        STRING comment 'results of previous marketing activities',
       emp_var_rate    DOUBLE comment 'employment variance rate',
       cons_price_idx  DOUBLE comment 'consumer price index',
       cons_conf_idx   DOUBLE comment 'consumer confidence index',
       euribor3m       DOUBLE comment '3-month Euribor',
       nr_employed     DOUBLE comment 'number of employees',
       fixed_deposit   BIGINT comment 'have a time deposit'
      )partitioned by (credit STRING comment 'have a credit card');
      
      alter table bank_data_pt add if not exists partition (credit='yes') partition (credit='no') partition (credit='unknown');
    • Créez la table non partitionnée result_table1 :

      create table if not exists result_table1
      (
       education   STRING comment 'education level',
       num         BIGINT comment 'number of persons'
      );
    • Créez la table non partitionnée result_table2 :

      create table if not exists result_table2
      (
       education   STRING comment 'education level',
       num         BIGINT comment 'number of persons',
       credit      STRING comment 'have a credit card'
      );

Étape 3 : Vérifier les tables

Vérifiez que toutes les tables ont été créées et que les schémas sont corrects.

  1. Listez toutes les tables du projet :

    show tables;

    Les quatre tables apparaissent dans le résultat :

    ALIYUN$****:bank_data
    ALIYUN$****:bank_data_pt
    ALIYUN$****:result_table1
    ALIYUN$****:result_table2
  2. Inspectez le schéma et les partitions de chaque table :

    Le champ Size: 0 est attendu, car la table ne contient encore aucune donnée. La taille augmentera après l'importation des données.
    -- View the schema of bank_data.
    desc bank_data;
    -- View the schema of bank_data_pt.
    desc bank_data_pt;
    -- View the partitions of bank_data_pt.
    show partitions bank_data_pt;
    -- View the schema of result_table1.
    desc result_table1;
    -- View the schema of result_table2.
    desc result_table2;

    Le résultat de desc bank_data_pt; ressemble à ceci :

    +------------------------------------------------------------------------------------+
    | Owner: ALIYUN$****          | Project: doc_test_dev                                |
    | TableComment:                                                                      |
    +------------------------------------------------------------------------------------+
    | CreateTime:               2021-05-17 14:02:21                                      |
    | LastDDLTime:              2021-05-17 14:02:21                                      |
    | LastModifiedTime:         2021-05-17 14:02:21                                      |
    +------------------------------------------------------------------------------------+
    | InternalTable: YES      | Size: 0                                                  |
    +------------------------------------------------------------------------------------+
    | Native Columns:                                                                    |
    +------------------------------------------------------------------------------------+
    | Field           | Type       | Label | Comment                                     |
    +------------------------------------------------------------------------------------+
    | age             | bigint     |       | age                                        |
    | job             | string     |       | job type                                    |
    | marital         | string     |       | marital status                                        |
    | education       | string     |       | educational level                                    |
    | housing         | string     |       | mortgagors                                  |
    | loan            | string     |       | have loans                                  |
    | contact         | string     |       | contact information                                    |
    | month           | string     |       | month                                        |
    | day_of_week     | string     |       | day of the week                                      |
    | duration        | string     |       | duration                                    |
    | campaign        | bigint     |       | number of contacts for the current campaign                          |
    | pdays           | double     |       | time elapsed after the last contact                      |
    | previous        | double     |       | number of previous contacts                        |
    | poutcome        | string     |       | results of previous marketing activities                          |
    | emp_var_rate    | double     |       | employment variation rate                                |
    | cons_price_idx  | double     |       | consumer price index                              |
    | cons_conf_idx   | double     |       | consumer confidence index                              |
    | euribor3m       | double     |       | 3-month Euribor                                |
    | nr_employed     | double     |       | number of employees                                    |
    | fixed_deposit   | bigint     |       | have a time deposit                              |
    +------------------------------------------------------------------------------------+
    | Partition Columns:                                                                 |
    +------------------------------------------------------------------------------------+
    | credit          | string     | have a credit card                                        |
    +------------------------------------------------------------------------------------+

    Le résultat de show partitions bank_data_pt; confirme que les trois partitions ont été créées :

    credit=no
    credit=unknown
    credit=yes

Étapes suivantes

Une fois les quatre tables créées et les schémas vérifiés, importez les données depuis les fichiers d'exemple. Consultez la rubrique Importer des données dans des tables.