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
-
Accédez à la page Sessions.
Connectez-vous à la console EMR.
Dans le volet de navigation de gauche, choisissez EMR Serverless > Spark.
Sur la page Spark, cliquez sur le nom de l'espace de travail cible.
Sur la page EMR Serverless Spark, cliquez sur Sessions dans le volet de navigation de gauche.
Sous l'onglet SQL Session, cliquez sur Create SQL Session.
-
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.
ImportantSi vous devez accéder à un projet MaxCompute utilisant le modèle à trois niveaux, définissez également le paramètre
spark.sql.catalog.odps.enableNamespaceSchemasurtruedans 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
-
Accédez à la page Notebook Sessions.
Connectez-vous à la console EMR.
Dans le volet de navigation de gauche, choisissez .
Sur la page Spark, cliquez sur le nom de l'espace de travail cible.
Sur la page EMR Serverless Spark, choisissez Sessions dans le volet de navigation de gauche.
Cliquez sur l'onglet Notebook Session.
Cliquez sur Create Notebook Session.
-
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.
ImportantSi vous devez accéder à un projet MaxCompute utilisant le modèle à trois niveaux, définissez également le paramètre
spark.sql.catalog.odps.enableNamespaceSchemasurtruedans 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
Dans le volet de navigation de gauche de la page EMR Serverless Spark, cliquez sur Development.
Sous l'onglet Development, cliquez sur l'icône
.-
Créez une tâche Spark SQL.
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.-
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; 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).-
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).
-
Consultez la table créée dans la console MaxCompute.
Connectez-vous à la console MaxCompute et sélectionnez une région dans le coin supérieur gauche.
Sur la page Projects, localisez le projet créé et cliquez sur Manage dans la colonne Actions.
-
Cliquez sur l'onglet Tables.
La nouvelle table nommée
mc_tableapparaît désormais dans la console MaxCompute.
Notebook
Dans le volet de navigation de gauche de la page EMR Serverless Spark, cliquez sur Development.
Sous l'onglet Development, cliquez sur l'icône
.-
Créez un notebook.
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.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).-
Écrivez et exécutez le code.
-
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); """) -
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);") -
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| +-----+---+
-
-
Consultez la table créée dans la console MaxCompute.
Connectez-vous à la console MaxCompute et sélectionnez une région dans le coin supérieur gauche.
Sur la page Projects, localisez le projet créé et cliquez sur Manage dans la colonne Actions.
-
Cliquez sur l'onglet Tables.
La nouvelle table nommée
mc_tableapparaît désormais dans la console MaxCompute.
FAQ
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.