EMR Serverless Spark vous permet de modifier et d'exécuter des tâches à l'aide de code SQL. Cette rubrique explique comment créer, exécuter et gérer des tâches SQL.
Prérequis
Vous disposez d'un compte Alibaba Cloud. Pour plus d'informations, consultez la page Inscription à un compte Alibaba Cloud.
Les rôles requis sont attribués. Pour plus d'informations, consultez la section Attribuer des rôles à un compte Alibaba Cloud.
Vous avez créé un espace de travail et une instance de session. Pour plus d'informations, consultez les sections Créer un espace de travail et Gérer les sessions SQL.
Étape 1 : Créer et publier une tâche de développement
Une tâche doit être publiée avant de pouvoir être utilisée dans l'orchestration des tâches.
-
Accédez à la page Développement des données.
Connectez-vous à la console EMR.
Dans le volet de navigation de gauche, choisissez EMR Serverless > Spark.
Sur la page Spark, cliquez sur l'espace de travail cible.
Sur la page EMR Serverless Spark, cliquez sur Development dans le volet de navigation de gauche.
-
Créez une tâche nommée users_task.
Sous l'onglet Development, cliquez sur l'icône
.Dans la boîte de dialogue Create, saisissez un nom tel que users_task, définissez le type sur la valeur par défaut SparkSQL, puis cliquez sur OK.
-
Copiez le code suivant dans le nouvel onglet Spark SQL (users_task).
CREATE TABLE IF NOT EXISTS students ( name VARCHAR(64), address VARCHAR(64) ) USING PARQUET PARTITIONED BY (data_date STRING) OPTIONS ( 'path'='oss://<bucketname>/path/' ); INSERT OVERWRITE TABLE students PARTITION (data_date = '${ds}') VALUES ('Ashua Hill', '456 Erica Ct, Cupertino'), ('Brian Reed', '723 Kern Ave, Palo Alto');Les variables de date de base suivantes sont prises en charge. La valeur par défaut correspond au jour précédent.
Variable
Type de données
Description
{data_date}
str
Variable indiquant des informations de date. Le format est
YYYY-MM-DD.Par exemple, 2023-09-18.
{ds}
str
{dt}
str
{data_date_nodash}
str
Variable indiquant des informations de date. Le format est
YYYYMMDD.Par exemple, 20230918.
{ds_nodash}
str
{dt_nodash}
str
{ts}
str
Variable indiquant un horodatage. Le format est
YYYY-MM-DDTHH:MM:SS.Par exemple, 2023-09-18T16:07:43.
{ts_nodash}
str
Variable indiquant un horodatage. Le format est
YYYYMMDDHHMMSS.Par exemple, 20230918160743.
-
Sélectionnez une base de données dans la liste déroulante des bases de données et une instance de session en cours d'exécution dans la liste déroulante des sessions.
Vous pouvez également créer une nouvelle instance de session en sélectionnant Connect to SQL Session dans la liste déroulante. Pour plus d'informations sur la gestion des sessions, consultez la section Gérer les sessions SQL.
-
Cliquez sur Run pour exécuter la tâche.
L'onglet Execution Results affiche les résultats. En cas d'erreur, consultez les détails sous l'onglet Execution Issues.
-
Publiez la tâche users_task.
RemarqueLes paramètres spécifiés pour la tâche sont publiés avec celle-ci et sont utilisés lors de son exécution en production. Les tâches exécutées dans l'éditeur SQL utilisent les paramètres de la session.
Sous le nouvel onglet Spark SQL, cliquez sur Publish.
Dans la boîte de dialogue, saisissez les informations de publication et cliquez sur OK.
-
Créez une tâche users_count.
Sous l'onglet Development, cliquez sur l'icône
.Dans la boîte de dialogue Create, saisissez un nom tel que users_count, conservez le type par défaut SparkSQL et cliquez sur OK.
-
Copiez le code suivant dans le nouvel onglet de tâche Spark SQL (users_count).
SELECT COUNT(1) FROM students; -
Sélectionnez une base de données dans la liste déroulante des bases de données et une instance de session en cours d'exécution dans la liste déroulante des sessions.
Vous pouvez également sélectionner Connect to SQL Session dans la liste déroulante pour créer une nouvelle session. Pour plus d'informations sur la gestion des sessions, consultez la section Gérer les sessions SQL.
-
Cliquez sur Run pour exécuter la tâche.
Les résultats s'affichent sous l'onglet Execution Results. En cas d'erreur, consultez les détails sous l'onglet Execution Issues.
-
Publiez la tâche users_count.
RemarqueLes paramètres spécifiés pour la tâche sont publiés avec celle-ci et sont utilisés lors de son exécution en production. Les tâches exécutées dans l'éditeur SQL utilisent les paramètres de la session.
Sous le nouvel onglet de tâche Spark SQL, cliquez sur Publish.
Dans la boîte de dialogue, saisissez les informations de publication et cliquez sur OK.
Étape 2 : Créer un workflow et ses nœuds
Dans le volet de navigation de gauche, cliquez sur Workflows.
Sur la page Workflows, cliquez sur Create Workflow.
-
Dans le panneau Create Workflow, sous Name, saisissez un nom tel que spark_workflow_task, puis cliquez sur Next.
Vous pouvez configurer les paramètres de la section Other Settings selon vos besoins. Pour plus d'informations sur les paramètres, consultez la section Gérer les workflows.
-
Ajoutez le nœud users_task.
Sur le nouveau canevas de nœuds, cliquez sur Add Node.
Dans le panneau Add Node, sélectionnez la tâche publiée users_task dans la liste déroulante Path, puis cliquez sur Save.
-
Ajoutez le nœud users_count.
Cliquez sur Add Node.
Dans le panneau Add Node, sélectionnez la tâche publiée users_count dans la liste déroulante Path, sélectionnez users_task dans la liste déroulante Upstream Nodes, puis cliquez sur Save.
-
Sur le nouveau canevas de nœuds, cliquez sur Publish Workflow.
Le canevas contient désormais deux nœuds SQL, users_task et users_count, reliés par une flèche indiquant la dépendance d'exécution.
Dans la boîte de dialogue Publish, saisissez les détails de publication et cliquez sur OK.
Étape 3 : Exécuter le workflow
Sur la page Workflows, cliquez sur le Name du nouveau workflow, par exemple spark_workflow_task.
-
Sur la page Workflow Runs, cliquez sur Run.
RemarqueAprès avoir configuré un cycle de planification, vous pouvez également déclencher la planification depuis la page Workflows à l'aide du commutateur situé à gauche.
Dans la boîte de dialogue Run Workflow, cliquez sur OK.
Étape 4 : Consulter l'état de l'instance
Sur la page Workflows, cliquez sur le workflow cible, par exemple spark_workflow_task.
-
Sur la page Workflow Runs, affichez la liste de toutes les instances de workflow avec leur durée d'exécution, leur état et d'autres détails.
Un graphique en colonnes en haut de la page présente la répartition des états d'exécution des workflows par date. Le tableau ci-dessous inclut des colonnes telles que Workflow Run ID, Version, Run Mode, Number of Nodes, Scheduled Time, Start Time et End Time.
Pour afficher le graphe d'instance, dans la section Workflow Runs, cliquez sur un Workflow Run ID, ou cliquez sur l'onglet Workflow Runs Diagram en haut de la page.
-
Cliquez sur une instance de nœud. Dans la boîte d'informations du nœud qui s'affiche, effectuez les opérations nécessaires ou consultez les informations.
Pour plus d'informations sur les opérations connexes et les détails, consultez la section Afficher les instances de nœuds.
La boîte d'informations du nœud affiche les détails d'exécution tels que l'heure de début (Start Time), l'heure de fin (End Time), l'état (Status) et la durée d'exécution (Runtime) de la tâche. Elle propose également des boutons pour des opérations telles que Réexécuter (Rerun), Arrêter (Stop) et Définir comme réussi (Set to Success).
Par exemple, cliquez sur Spark UI pour ouvrir la page Spark Jobs et afficher les informations en temps réel sur la tâche Spark.
La page Spark Jobs affiche une liste des travaux terminés avec des colonnes telles que Job Id, Description, Submitted, Duration, Stages: Succeeded/Total et Tasks: Succeeded/Total. Vous pouvez vérifier l'état d'exécution et la durée de chaque travail.
-
Cliquez sur un Job Run ID pour ouvrir la page Job History, où vous pouvez consulter les métriques, les diagnostics et les informations des journaux.
Sous l'onglet Overview, dans la section Basic Information, vous pouvez afficher des informations telles que l'état d'exécution, le nom de la tâche, l'ID d'exécution de la tâche, le type de tâche, la version du moteur de base de données et l'état de l'accélération Fusion.
Étape 5 : Maintenance opérationnelle du workflow
Sur la page Workflows, cliquez sur le nom d'un workflow pour ouvrir la page Workflow Runs. Vous pouvez :
Dans la section Workflow Information, modifiez les paramètres.
-
Dans la section Workflow Runs, affichez tous les workflows. Cliquez sur un Workflow Run ID pour ouvrir le graphe d'instance.
La page du graphe d'instance de workflow affiche les dépendances et les états d'exécution des nœuds de tâche. Dans l'exemple, users_task (SQL) est le nœud ancêtre et users_count (SQL) est le nœud descendant. Un connecteur entre eux indique la dépendance. Les deux nœuds affichent un état d'exécution réussi (coche verte).
Étape 6 : Afficher les données
Dans le volet de navigation de gauche, cliquez sur Development.
-
Créez une nouvelle tâche de développement SparkSQL. Ensuite, saisissez et exécutez la commande suivante pour afficher les détails de la table.
SELECT * FROM students;Les informations suivantes sont renvoyées.
Le résultat contient trois colonnes : name, address et data_date. Il y a deux enregistrements : Ashua Hill (adresse : 456 Erica Ct, Cupertino, date : 2024-01-01) et Brian Reed (adresse : 723 Kern Ave, Palo Alto, date : 2024-01-01).
Références
Pour plus d'informations sur la création d'une file d'attente de ressources, consultez la section Gérer les files d'attente de ressources.
Pour plus d'informations sur la création d'une session SQL, consultez la section Gérer les sessions SQL.