Cree un nodo de Serverless Spark SQL para procesar datos estructurados con un motor de consultas SQL distribuido basado en un recurso de cómputo EMR Serverless Spark. Este enfoque mejora la eficiencia de ejecución de las tareas.
Notas de uso
Limitaciones del recurso de cómputo: solo se admiten bound EMR Serverless Spark compute resources. Asegúrese de que el resource group y el recurso de cómputo puedan comunicarse por la red.
Restricciones del resource group: solo Serverless resource groups pueden ejecutar este tipo de tarea.
-
(Opcional, para usuarios de RAM) Agregue el usuario de Resource Access Management (RAM) encargado del desarrollo de la tarea al espacio de trabajo y asígnele el rol Development o Workspace Administrator (este rol incluye permisos amplios y debe otorgarse con precaución). Para obtener más información, consulte Add workspace members.
Si utiliza una cuenta raíz, omita este paso.
Crear un nodo
Para consultar las instrucciones, consulte Create a node.
Desarrollar el nodo
Desarrolle el código de su tarea en el editor SQL. La sintaxis admite catalog.database.tablename. Si omite catalog, se utiliza el Data Catalog predeterminado del clúster. Si omite catalog.database, se utiliza la base de datos predeterminada del Data Catalog predeterminado del clúster.
Para obtener más información sobre Data Catalog, consulte Manage a Data Catalog in EMR Serverless Spark .
-- Replace <catalog.database.tablename> with your actual identifiers. SELECT * FROM <catalog.database.tablename>
Defina variables en su código mediante el formato ${variable_name}. Después, asigne valores a estas variables en la sección Scheduling Parameters del panel Scheduling Settings. Esto permite pasar parámetros de forma dinámica en escenarios programados. Para obtener más información sobre los parámetros de programación, consulte Sources and expressions of scheduling parameters. A continuación se muestra un ejemplo de código.
SHOW TABLES; -- Use ${var} to define a variable named var. If you assign the value ${yyyymmdd} to this variable, you can use a scheduled task to create a table with the business date as a suffix. CREATE TABLE IF NOT EXISTS userinfo_new_${var} ( ip STRING COMMENT'IP address', uid STRING COMMENT'User ID' )PARTITIONED BY( dt STRING ); --This can be used with scheduling parameters.
Una instrucción SQL no puede superar los 130 KB.
Depurar el nodo
-
En la sección Run Configuration, seleccione un Compute Resource y un Resource Group.
Parámetro
Descripción
Compute Resource
Seleccione un recurso de cómputo EMR Serverless Spark vinculado. Si no hay ningún recurso de cómputo disponible, seleccione Create Compute Resource en la lista desplegable.
Resource Group
Seleccione un resource group asociado al espacio de trabajo.
Script Parameters
Cuando configure el contenido del nodo, defina variables mediante el formato
${parameter_name}. Después, configure el Operation and Maintenance Center y el Session Management en la sección Running. Estas variables se reemplazan dinámicamente por los valores reales durante la ejecución. Para obtener más información, consulte Sources and expressions of scheduling parameters.ServerlessSpark Node Parameters
Parámetros de tiempo de ejecución de Spark. Se admiten los siguientes tipos:
-
Parámetros de tiempo de ejecución personalizados de DataWorks. Para obtener más información, consulte Appendix: DataWorks parameters.
-
Parámetros de propiedad integrados de Spark. Para obtener más información, consulte Parámetros de propiedad de Spark de código abierto. Puede cargar directamente una plantilla de configuración de Spark desde Serverless Spark sin introducirla manualmente, lo que simplifica el proceso de configuración y garantiza la coherencia.
-
-
En la barra de herramientas ubicada en la parte superior del editor de nodos, haga clic en Operation and Maintenance Center para ejecutar la tarea SQL.
ImportanteAntes del despliegue, sincronice los Resource Management de Parameter name con los Parameter Value de Script Parameters.
Modos de ejecución de SQL
DataWorks ofrece dos modos de ejecución de SQL: dentro del nodo y desde el panel del flujo de trabajo. Ambos modos tienen contextos de ejecución distintos y pueden generar resultados diferentes.
Ejecutar dentro del nodo: seleccione todas las instrucciones SQL en el editor SQL y haga clic en Run. Solo se ejecutan las instrucciones seleccionadas. Este modo utiliza el recurso de cómputo y los parámetros configurados para el nodo, y no activa relaciones de dependencia con nodos anteriores ni posteriores.
Ejecutar desde el panel del flujo de trabajo: haga clic con el botón derecho en el nodo actual dentro del panel del flujo de trabajo y ejecute dicho nodo junto con sus nodos posteriores. El nodo actual y todos sus nodos posteriores se ejecutan de forma secuencial según las dependencias de programación. Este modo utiliza el recurso de cómputo y los parámetros especificados en la configuración de programación, los cuales pueden diferir del entorno de ejecución empleado al ejecutar el nodo de forma individual.
Las causas más comunes de diferencias entre ambos modos incluyen valores distintos en los parámetros de programación, configuraciones de recursos de cómputo inconsistentes y la salida de nodos anteriores que afecta el contexto de ejecución del nodo actual. Para solucionar problemas, compare los parámetros de programación y las configuraciones de recursos de cómputo que utiliza cada modo.
Pasos siguientes
Configure node scheduling: si necesita ejecutar un nodo de forma periódica, configure su Run en el panel Serverlessspark Node Parameters ubicado a la derecha.
Publish a node: para ejecutar una tarea en el entorno de producción, haga clic en el icono
para publicar el nodo. Un nodo solo se ejecuta de forma programada después de publicarse en el entorno de producción.Operación y mantenimiento de tareas: después de publicar una tarea, supervise sus ejecuciones periódicas en Operation Center. Para obtener más información, consulte Get started with Operation Center.
Apéndice: parámetros de DataWorks
|
Parámetro avanzado |
Descripción |
|
FLOW_SKIP_SQL_ANALYZE |
El modo de ejecución de las instrucciones SQL. Valores válidos:
Nota
Este parámetro solo es compatible con ejecuciones de prueba en el entorno de desarrollo de datos. |
|
DATAWORKS_SESSION_DISABLE |
El método de envío de tareas. Durante el desarrollo de datos, las tareas se envían a SQL Compute para su ejecución de manera predeterminada. Puede usar este parámetro para especificar si la tarea se ejecuta mediante SQL Compute o si se envía a una cola para su ejecución.
|
|
SERVERLESS_RELEASE_VERSION |
La versión del motor de Spark. De forma predeterminada, se utiliza la Run Configuration configurada en los ajustes del clúster, dentro de Serverlessspark Node Parameters en Scheduling Settings. Para establecer una versión distinta del motor en una tarea específica, configure este parámetro. Nota
El parámetro |
|
SERVERLESS_QUEUE_NAME |
La cola de recursos a la que se envían las tareas. Cuando una tarea se configura para enviarse a una cola y ejecutarse allí, se utiliza de forma predeterminada la Scheduling Policy configurada en los ajustes del clúster, dentro de Scheduling Settings en Default Engine Version. Si tiene requisitos de aislamiento y gestión de recursos, puede agregar colas. Para obtener más información, consulte Manage resource queues. Métodos de configuración:
Nota
|
|
SERVERLESS_SQL_COMPUTE |
El SQL Compute (sesión SQL) que se va a utilizar. De forma predeterminada, se usa el Compute Resource configurado en los ajustes del clúster, dentro de Management Center en Default Resource Queue. Para establecer una sesión SQL distinta en una tarea específica, configure este parámetro. Para obtener información sobre cómo crear y gestionar sesiones SQL, consulte Manage SQL Compute sessions. |
|
Otros |
Parámetros personalizados de configuración de Spark. Agregue parámetros de propiedad específicos de Spark. Formato de configuración: Nota
DataWorks le permite configurar parámetros globales de Spark en el espacio de trabajo para cada módulo de DataWorks. Puede especificar si la prioridad de los parámetros globales de Spark es mayor que la de los parámetros de Spark configurados dentro de un módulo específico. Para obtener más información sobre cómo configurar parámetros globales de Spark, consulte Configure global Spark parameters. |