Tous les produits
Search
Centre de documentation

E-MapReduce:Read from and write to MaxCompute

Dernière mise à jour :Aug 20, 2026

EMR Serverless Spark fournit un connecteur de source de données MaxCompute intégré, basé sur Spark DataSource V2. Vous pouvez vous connecter à MaxCompute en ajoutant les configurations requises lors du développement.

Informations générales

MaxCompute (anciennement ODPS) est une solution d'entrepôt de données rapide, entièrement gérée et capable de traiter des volumes de l'ordre de l'exaoctet pour le stockage et le calcul de données structurées par lots. Elle offre des services d'analyse et de modélisation. Pour plus d'informations sur MaxCompute, consultez Qu'est-ce que MaxCompute ?.

Prérequis

  • Vous avez créé un espace de travail dans EMR Serverless Spark.

  • Vous avez créé un projet MaxCompute et activé Open Storage pour ce projet.

    Les exemples de cette rubrique utilisent le mode de facturation paiement à l'utilisation pour Open Storage.

Limites

  • Les versions de moteur suivantes sont prises en charge :

    • esr-4.x : esr-4.6.0 et versions ultérieures

    • esr-3.x : esr-3.5.0 et versions ultérieures

    • esr-2.x : esr-2.9.0 et versions ultérieures

  • La fonctionnalité Open Storage doit être activée pour MaxCompute. Pour plus d'informations, consultez Open Storage.

  • L'endpoint MaxCompute utilisé doit prendre en charge l'API Storage. Dans le cas contraire, basculez vers un endpoint compatible. Pour plus d'informations, consultez Ressources de transmission de données.

Notes

Lorsque vous utilisez Open Storage (paiement à l'utilisation), les transferts de données dépassant 1 To sont facturés en fonction de la taille logique des données .

Procédure

Étape 1 : Créer une session MaxCompute

Créez une session SQL ou une session notebook pour vous connecter à MaxCompute. Pour plus d'informations sur les sessions, consultez Gestion des sessions.

Session SQL

  1. Accédez à la page Sessions.

    1. Connectez-vous à la console EMR.

    2. Dans le volet de navigation de gauche, choisissez EMR Serverless > Spark.

    3. Sur la page Spark, cliquez sur le nom de l'espace de travail cible.

    4. Sur la page EMR Serverless Spark, cliquez sur Sessions dans le volet de navigation de gauche.

  2. Sous l'onglet SQL Session, cliquez sur Create SQL Session.

  3. Sur la page Create SQL Session, configurez les paramètres suivants et cliquez sur Create.

    Paramètre

    Description

    Name

    Saisissez un nom personnalisé pour la session SQL. Par exemple, mc_sql_compute.

    Spark Configuration

    Saisissez les paramètres de configuration Spark pour vous connecter à MaxCompute.

    Important

    Si vous devez accéder à un projet MaxCompute utilisant le modèle à trois niveaux, définissez également le paramètre spark.sql.catalog.odps.enableNamespaceSchema sur true dans la configuration Spark. Pour plus d'informations sur les paramètres, consultez Spark Connector. Pour plus d'informations sur les schémas, consultez Opérations sur les schémas.

    spark.sql.catalog.odps                        org.apache.spark.sql.execution.datasources.v2.odps.OdpsTableCatalog
    spark.sql.extensions                          org.apache.spark.sql.execution.datasources.v2.odps.extension.OdpsExtensions
    spark.sql.sources.partitionOverwriteMode      dynamic
    spark.hadoop.odps.tunnel.quota.name           pay-as-you-go
    spark.hadoop.odps.project.name                <project_name>
    spark.hadoop.odps.end.point                   https://service.cn-hangzhou-vpc.maxcompute.aliyun-inc.com/api
    spark.hadoop.odps.access.id                   <accessId>
    spark.hadoop.odps.access.key                  <accessKey>

    Remplacez les espaces réservés suivants par vos valeurs réelles :

    • <project_name> : le nom de votre projet MaxCompute.

    • https://service.cn-hangzhou-vpc.maxcompute.aliyun-inc.com/api : l'endpoint de votre service MaxCompute. Pour plus d'informations, consultez Endpoints.

    • <accessId> : l'AccessKey ID du compte Alibaba Cloud utilisé pour accéder à MaxCompute.

    • <accessKey> : l'AccessKey Secret du compte Alibaba Cloud utilisé pour accéder à MaxCompute.

Session Notebook

  1. Accédez à la page Notebook Sessions.

    1. Connectez-vous à la console EMR.

    2. Dans le volet de navigation de gauche, choisissez EMR Serverless > Spark.

    3. Sur la page Spark, cliquez sur le nom de l'espace de travail cible.

    4. Sur la page EMR Serverless Spark, choisissez Sessions dans le volet de navigation de gauche.

    5. Cliquez sur l'onglet Notebook Session.

  2. Cliquez sur Create Notebook Session.

  3. Sur la page Create Notebook Session, configurez les paramètres suivants et cliquez sur Create.

    Paramètre

    Description

    Name

    Saisissez un nom personnalisé pour la session notebook. Par exemple, mc_notebook_compute.

    Spark Configuration

    Saisissez les paramètres de configuration Spark pour vous connecter à MaxCompute.

    Important

    Si vous devez accéder à un projet MaxCompute utilisant le modèle à trois niveaux, définissez également le paramètre spark.sql.catalog.odps.enableNamespaceSchema sur true dans la configuration Spark. Pour plus d'informations sur les paramètres, consultez Spark Connector. Pour plus d'informations sur les schémas, consultez Opérations sur les schémas.

    spark.sql.catalog.odps                        org.apache.spark.sql.execution.datasources.v2.odps.OdpsTableCatalog
    spark.sql.extensions                          org.apache.spark.sql.execution.datasources.v2.odps.extension.OdpsExtensions
    spark.sql.sources.partitionOverwriteMode      dynamic
    spark.hadoop.odps.tunnel.quota.name           pay-as-you-go
    spark.hadoop.odps.project.name                <project_name>
    spark.hadoop.odps.end.point                    https://service.cn-hangzhou-vpc.maxcompute.aliyun-inc.com/api
    spark.hadoop.odps.access.id                   <accessId>
    spark.hadoop.odps.access.key                  <accessKey>

    Remplacez les espaces réservés suivants par vos valeurs réelles :

    • <project_name> : le nom de votre projet MaxCompute.

    • https://service.cn-hangzhou-vpc.maxcompute.aliyun-inc.com/api : l'endpoint de votre service MaxCompute. Pour plus d'informations, consultez Endpoints.

    • <accessId> : l'AccessKey ID du compte Alibaba Cloud utilisé pour accéder à MaxCompute.

    • <accessKey> : l'AccessKey Secret du compte Alibaba Cloud utilisé pour accéder à MaxCompute.

Étape 2 : Interroger et écrire des données MaxCompute

Spark SQL

  1. Dans le volet de navigation de gauche de la page EMR Serverless Spark, cliquez sur Development.

  2. Sous l'onglet Development, cliquez sur l'icône image.

  3. Créez une tâche Spark SQL.

    1. Dans la boîte de dialogue qui s'affiche, saisissez un nom tel que mc_load_task, sélectionnez SparkSQL comme type, puis cliquez sur OK.

    2. Copiez le code suivant dans le nouvel onglet Spark SQL (mc_load_task).

      CREATE TABLE odps.default.mc_table (name STRING, num BIGINT);
      INSERT INTO odps.default.mc_table (name, num) VALUES ('Alice', 100),('Bob', 200);
      SELECT * FROM odps.default.mc_table;
    3. Sélectionnez une base de données dans la liste déroulante Database. Ensuite, dans la liste déroulante Compute, sélectionnez la session SQL créée lors de l'Étape 1 : Créer une session MaxCompute (mc_sql_compute).

    4. Cliquez sur Run pour exécuter la tâche Spark SQL.

      Une fois la requête exécutée avec succès, le résultat s'affiche sous l'onglet Execution Results.

      Le Result #3 présente un tableau composé de deux colonnes, name et num, contenant les valeurs insérées pour Alice (100) et Bob (200).

  4. Consultez la table créée dans la console MaxCompute.

    1. Connectez-vous à la console MaxCompute et sélectionnez une région dans le coin supérieur gauche.

    2. Sur la page Projects, localisez le projet créé et cliquez sur Manage dans la colonne Actions.

    3. Cliquez sur l'onglet Tables.

      La nouvelle table nommée mc_table apparaît désormais dans la console MaxCompute.

Notebook

  1. Dans le volet de navigation de gauche de la page EMR Serverless Spark, cliquez sur Development.

  2. Sous l'onglet Development, cliquez sur l'icône image.

  3. Créez un notebook.

    1. Dans la boîte de dialogue qui s'affiche, saisissez un nom tel que mc_load_task. Pour le type, sélectionnez Interactive Development > Notebook, puis cliquez sur OK.

    2. Dans la liste déroulante des sessions, sélectionnez la session notebook en cours d'exécution créée lors de l'Étape 1 : Créer une session MaxCompute (mc_notebook_compute).

    3. Écrivez et exécutez le code.

      1. Dans une cellule Python, saisissez la commande suivante pour créer une table.

        spark.sql("""
        CREATE TABLE odps.default.mc_table (name STRING, num BIGINT);
        """)
        
      2. Dans une nouvelle cellule Python, saisissez la commande suivante pour insérer des données.

        spark.sql("INSERT INTO odps.default.mc_table (name, num) VALUES ('Alice', 100),('Bob', 200);")
      3. Dans une nouvelle cellule Python, saisissez la commande suivante pour interroger les données.

        spark.sql("SELECT * FROM odps.default.mc_table;").show()

        Une fois la requête exécutée avec succès, le résultat s'affiche dans la section Execution Results.

        +-----+---+
        | name|num|
        +-----+---+
        |Alice|100|
        |  Bob|200|
        +-----+---+
  4. Consultez la table créée dans la console MaxCompute.

    1. Connectez-vous à la console MaxCompute et sélectionnez une région dans le coin supérieur gauche.

    2. Sur la page Projects, localisez le projet créé et cliquez sur Manage dans la colonne Actions.

    3. Cliquez sur l'onglet Tables.

      La nouvelle table nommée mc_table apparaît désormais dans la console MaxCompute.

FAQ

Pourquoi reçois-je une erreur « Access Denied » lors de l'interrogation d'une table MaxCompute ?

  • Symptôme : Lors de l'interrogation d'une table MaxCompute, le message d'erreur suivant est renvoyé.

    Access Denied - Not allowed to use storage api service on current endpoint
  • Cause : L'utilisateur actuel n'est pas autorisé à utiliser le service API Storage de MaxCompute, ou l'endpoint spécifié ne prend pas en charge l'API Storage.

  • Solution :

    • Vérifiez si la fonctionnalité Open Storage est activée.

      Dans la console MaxCompute, accédez à Tenants > Tenant Property pour vérifier le statut. Si la fonctionnalité n'est pas activée, consultez Utiliser Open Storage pour l'activer et terminer la configuration.

    • Vérifiez si l'endpoint actuel prend en charge l'API Storage. Dans le cas contraire, basculez vers un endpoint compatible. Pour plus d'informations, consultez Régions prises en charge.

Rubriques connexes

Les exemples de cette rubrique utilisent Spark SQL et des notebooks. Pour d'autres méthodes de lecture et d'écriture dans MaxCompute, consultez Développer une tâche par lots ou en streaming.