EMR Serverless Spark le permite editar y ejecutar tareas mediante código SQL. Este tema describe cómo crear, ejecutar y gestionar tareas SQL.
Requisitos previos
Tener una cuenta de Alibaba Cloud creada. Para obtener más información, consulte Registrarse en una cuenta de Alibaba Cloud.
Haber asignado los roles obligatorios. Para obtener más información, consulte Grant roles to an Alibaba Cloud account.
Haber creado un espacio de trabajo y una instancia de sesión. Para obtener más información, consulte Create a workspace y Manage SQL sessions.
Paso 1: Crear y publicar una tarea de desarrollo
Es obligatorio publicar una tarea antes de usarla en la orquestación de tareas.
-
Vaya a la página Data Development.
Inicie sesión en la consola de EMR.
En el panel de navegación izquierdo, elija EMR Serverless > Spark.
En la página Spark, haga clic en el espacio de trabajo correspondiente.
En la página de EMR Serverless Spark, haga clic en Development dentro del panel de navegación izquierdo.
-
Cree una tarea llamada users_task.
En la pestaña Development, haga clic en el icono
.En el cuadro de diálogo Create, introduzca un nombre como users_task, establezca Type con el valor predeterminado SparkSQL y, a continuación, haga clic en OK.
-
Copie el siguiente código en la nueva pestaña de 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');A continuación se muestran las variables de fecha básicas compatibles. El valor predeterminado es el día anterior.
Variable
Tipo de datos
Descripción
{data_date}
str
Variable que indica información de fecha. Su formato es
YYYY-MM-DD.Por ejemplo, 2023-09-18.
{ds}
str
{dt}
str
{data_date_nodash}
str
Variable que indica información de fecha. Su formato es
YYYYMMDD.Por ejemplo, 20230918.
{ds_nodash}
str
{dt_nodash}
str
{ts}
str
Variable que indica una marca de tiempo. Su formato es
YYYY-MM-DDTHH:MM:SS.Por ejemplo, 2023-09-18T16:07:43.
{ts_nodash}
str
Variable que indica una marca de tiempo. Su formato es
YYYYMMDDHHMMSS.Por ejemplo, 20230918160743.
-
Seleccione una base de datos en la lista desplegable correspondiente y una instancia de sesión en ejecución en la lista desplegable de sesiones.
También puede crear una nueva instancia de sesión si selecciona Connect to SQL Session en la lista desplegable. Para obtener más información sobre la gestión de sesiones, consulte Manage SQL sessions.
-
Haga clic en Run para ejecutar la tarea.
La pestaña Execution Results muestra los resultados. Si ocurre un error, consulte los detalles en la pestaña Execution Issues.
-
Publique la tarea users_task.
NotaLos parámetros especificados para la tarea se publican junto con ella y se utilizan cuando esta se ejecuta en producción. Las tareas que se ejecutan en el editor SQL usan los parámetros de la sesión.
En la nueva pestaña de Spark SQL, haga clic en Publish.
En el cuadro de diálogo, introduzca la información de publicación y haga clic en OK.
-
Cree una tarea llamada users_count.
En la pestaña Development, haga clic en el icono
.En el cuadro de diálogo Create, introduzca un nombre como users_count, mantenga el tipo predeterminado SparkSQL y haga clic en OK.
-
Copie el siguiente código en la nueva pestaña de la tarea de Spark SQL (users_count).
SELECT COUNT(1) FROM students; -
Seleccione una base de datos en la lista desplegable correspondiente y una instancia de sesión en ejecución en la lista desplegable de sesiones.
También puede seleccionar Connect to SQL Session en la lista desplegable para crear una nueva sesión. Para obtener más información sobre la gestión de sesiones, consulte Manage SQL sessions.
-
Haga clic en Run para ejecutar la tarea.
Los resultados se muestran en la pestaña Execution Results. Si ocurre un error, consulte los detalles en la pestaña Execution Issues.
-
Publique la tarea users_count.
NotaLos parámetros especificados para la tarea se publican junto con ella y se utilizan cuando esta se ejecuta en producción. Las tareas que se ejecutan en el editor SQL usan los parámetros de la sesión.
En la nueva pestaña de la tarea de Spark SQL, haga clic en Publish.
En el cuadro de diálogo, introduzca la información de publicación y haga clic en OK.
Paso 2: Crear un flujo de trabajo y sus nodos
En el panel de navegación izquierdo, haga clic en Workflows.
En la página Workflows, haga clic en Create Workflow.
-
En el panel Create Workflow, introduzca un nombre como spark_workflow_task en Name y haga clic en Next.
Configure los parámetros de la sección Other Settings según sus necesidades. Para obtener más información sobre estos parámetros, consulte Manage workflows.
-
Agregue el nodo users_task.
En el nuevo lienzo de nodos, haga clic en Add Node.
En el panel Add Node, seleccione la tarea publicada users_task en la lista desplegable Path y, a continuación, haga clic en Save.
-
Agregue el nodo users_count.
Haga clic en Add Node.
En el panel Add Node, seleccione la tarea publicada users_count en la lista desplegable Path, elija users_task en la lista desplegable Upstream Nodes y, a continuación, haga clic en Save.
-
En el nuevo lienzo de nodos, haga clic en Publish Workflow.
El lienzo ahora contiene dos nodos SQL, users_task y users_count, conectados por una flecha que indica la dependencia de ejecución.
En el cuadro de diálogo Publish, introduzca los detalles de publicación y haga clic en OK.
Paso 3: Ejecutar el flujo de trabajo
En la página Workflows, haga clic en Name del nuevo flujo de trabajo, por ejemplo, spark_workflow_task.
-
En la página Workflow Runs, haga clic en Run.
NotaDespués de configurar un ciclo de programación, también puede activarla desde la página Workflows mediante el interruptor situado a la izquierda.
En el cuadro de diálogo Run Workflow, haga clic en OK.
Paso 4: Consultar el estado de la instancia
En la página Workflows, haga clic en el flujo de trabajo correspondiente, por ejemplo, spark_workflow_task.
-
En la página Workflow Runs, consulte la lista de todas las instancias del flujo de trabajo con su tiempo de ejecución, estado y otros detalles.
Un gráfico de barras en la parte superior de la página muestra la distribución de los estados de ejecución del flujo de trabajo por fecha. La tabla inferior incluye columnas como Workflow Run ID, Version, Run Mode, Number of Nodes, Scheduled Time, Start Time y End Time.
Para consultar el gráfico de la instancia, haga clic en un Workflow Run ID dentro de la sección Workflow Runs o bien en la pestaña Workflow Runs Diagram situada en la parte superior.
-
Haga clic en una instancia de nodo. En el cuadro de información del nodo que aparece, ejecute operaciones o consulte la información según sus necesidades.
Para obtener más información sobre las operaciones y los detalles relacionados, consulte View node instances.
El cuadro de información del nodo muestra detalles de ejecución como Start Time, End Time, Status y Runtime de la tarea. También proporciona botones para operaciones como Rerun, Stop y Set to Success.
Por ejemplo, haga clic en Spark UI para abrir la página Spark Jobs y consultar información en tiempo real sobre la tarea de Spark.
La página Spark Jobs muestra una lista de trabajos completados con columnas como Job Id, Description, Submitted, Duration, Stages: Succeeded/Total y Tasks: Succeeded/Total. Desde ahí puede comprobar el estado de ejecución y la duración de cada trabajo.
-
Haga clic en un Job Run ID para abrir la página Job History, donde puede consultar métricas, diagnósticos e información de registros.
En la pestaña Overview, dentro de la sección Basic Information, consulte información como el estado de ejecución, el nombre de la tarea, el identificador de ejecución, el tipo de tarea, la versión del motor de base de datos y el estado de la aceleración Fusion.
Paso 5: Operación y mantenimiento del flujo de trabajo
En la página Workflows, haga clic en el nombre de un flujo de trabajo para abrir la página Workflow Runs. A continuación, puede realizar lo siguiente:
En la sección Workflow Information, edite los parámetros.
-
En la sección Workflow Runs, consulte todos los flujos de trabajo. Haga clic en un Workflow Run ID para abrir el gráfico de la instancia.
La página del gráfico de la instancia del flujo de trabajo muestra las dependencias y los estados de ejecución de los nodos de la tarea. En este ejemplo, users_task (SQL) es el nodo antecesor y users_count (SQL) es el nodo descendiente. Un conector entre ambos indica la dependencia. Los dos nodos muestran un estado de ejecución exitoso (marca de verificación verde).
Paso 6: Consultar los datos
En el panel de navegación izquierdo, haga clic en Development.
-
Cree una nueva tarea de desarrollo de SparkSQL. A continuación, introduzca y ejecute el siguiente comando para consultar los detalles de la tabla.
SELECT * FROM students;Se devuelve la siguiente información.
El resultado contiene tres columnas: name, address y data_date. Hay dos registros: Ashua Hill (dirección: 456 Erica Ct, Cupertino, fecha: 2024-01-01) y Brian Reed (dirección: 723 Kern Ave, Palo Alto, fecha: 2024-01-01).
Referencias
Para obtener más información sobre cómo crear una cola de recursos, consulte Manage resource queues.
Para obtener más información sobre cómo crear una sesión SQL, consulte Manage SQL sessions.