Cree un nodo E-MapReduce (EMR) Trino para ejecutar consultas SQL distribuidas en varios orígenes de datos, con el fin de realizar agregaciones de datos a gran escala y análisis de informes. Para obtener más información sobre Trino, consulte Trino.
Requisitos previos
-
Se ha creado un clúster de Alibaba Cloud EMR y se ha registrado en su espacio de trabajo de DataWorks.
Antes de crear nodos relacionados con EMR, registre el clúster de EMR en su espacio de trabajo de DataWorks. Para obtener más información, consulte Bind EMR compute resources in legacy DataStudio.
(Opcional, para usuarios de RAM) El usuario de RAM para el desarrollo de tareas se ha agregado al espacio de trabajo y se le ha asignado el rol Development o Workspace Administrator. El rol Workspace Administrator cuenta con permisos amplios y debe asignarse con precaución. Para obtener más información, consulte Add members to a workspace.
Se ha adquirido y configurado un resource group serverless, lo que incluye vincular el resource group a un espacio de trabajo y configurar la red. Para obtener más información, consulte Use a serverless resource group.
-
Se ha creado un flujo de trabajo en DataStudio.
DataStudio organiza las operaciones de desarrollo por flujo de trabajo. Cree un flujo de trabajo antes de crear un nodo. Para obtener más información, consulte Create a workflow.
Límites
Este tipo de tarea solo puede ejecutarse en un resource group serverless.
Para gestionar metadatos de clústeres DataLake o personalizados en DataWorks, configure EMR-HOOK en el clúster. Sin EMR-HOOK, no podrá ver metadatos en tiempo real, generar registros de auditoría, mostrar linaje de datos ni realizar tareas de gobernanza relacionadas con EMR en DataWorks. Para obtener más información, consulte Configure EMR-HOOK for Hive.
Si la autenticación mediante Lightweight Directory Access Protocol (LDAP) está habilitada para Trino, debe iniciar sesión en el nodo maestro del clúster de EMR y descargar el archivo de almacén de claves del directorio
/etc/taihao-apps/trino-conf. Inicie sesión en la . En el panel de navegación izquierdo, haga clic en . Seleccione el espacio de trabajo destino en la lista desplegable y haga clic en Go to Management Center. En el panel de navegación izquierdo, haga clic en Cluster Management. Busque el clúster de EMR registrado. En la pestaña Account Mappings, haga clic en Edit Account Mappings y luego en Upload Keystore File para cargar el archivo.
Paso 1: Crear un nodo EMR Trino
-
Inicie sesión en la consola de DataWorks. En la región destino, haga clic en en el panel de navegación izquierdo. Seleccione un espacio de trabajo en la lista desplegable y haga clic en Go to Data Development.
Haga clic con el botón derecho en el flujo de trabajo destino y seleccione .
-
En el cuadro de diálogo Create Node, introduzca un Name y seleccione una Compute Engine Instance, un Node Type y una Path. Haga clic en Confirm para ir a la página del editor de nodos EMR Trino.
NotaEl nombre de un nodo puede contener letras mayúsculas, letras minúsculas, caracteres chinos, dígitos, guiones bajos (_) y puntos (.).
Paso 2: Desarrollar una tarea EMR Trino
Haga doble clic en el nodo para abrir la página de desarrollo de tareas y complete las siguientes configuraciones.
(Opcional) Seleccionar una instancia de clúster EMR
Si hay varios clústeres de EMR registrados en su espacio de trabajo, seleccione el clúster adecuado en la lista desplegable situada en la parte superior de la página del editor de nodos. Si solo hay un clúster de EMR registrado, DataWorks lo selecciona de forma predeterminada.
Para acceder a dominios que tienen una lista blanca de direcciones IP, debe usar un resource group de programación dedicado.
Configuración del conector
Antes de consultar tablas MySQL, debe configurar el conector integrado de EMR Trino. Para obtener más información, consulte MySQL connector.
Antes de consultar tablas Hive, debe configurar el conector integrado de EMR Trino. Para obtener más información, consulte Hive connector.
Para consultar tablas en otros orígenes de datos, consulte Configure connectors para obtener instrucciones sobre cómo configurar los conectores integrados.
Editar código SQL
Introduzca el código de la tarea en el editor SQL. Ejemplo:
-- Usage
-- SELECT * FROM <catalog>.<schema>.<table>;
-- Parameter description
-- <catalog>: the name of the data source to connect to.
-- <schema>: the name of the database to use.
-- <table>: the table to query.
-- Example: To view data in the hive_table table in the default database of a Hive data source:
-- Query a Hive table
SELECT * FROM hive.default.hive_table;
-- Example: To view data in the rt_user table in the user-created rt_data database of a MySQL data source:
-- Query a MySQL table
SELECT * FROM mysql.rt_data.rt_user;
-- Join a Hive table and a MySQL table
SELECT DISTINCT a.id, a.name,b.rt_name FROM hive.default.hive_table a INNER JOIN mysql.rt_data.rt_user b ON a.id = b.id;
-- Query a Hive table using a scheduling parameter
SELECT * FROM hive.default.${table_name};
DataWorks proporciona Scheduling Parameter para pasar valores dinámicamente al código en escenarios de programación periódica. Defina variables con el formato ${variable_name} en el código del nodo y asigne valores en la pestaña Scheduling Settings del panel de navegación derecho. En la sección Scheduling Parameter, asigne un valor a cada variable. Para obtener más información sobre los formatos y configuraciones compatibles, consulte Supported formats of scheduling parameters y Configure and use scheduling parameters.
Para cambiar los valores de los parámetros en el código, haga clic en Advanced Run en la barra de herramientas. Para obtener más información sobre la asignación de valores, consulte What is the difference in the value assignment logic among Run, Advanced Run, and smoke testing in the development environment?
Ejecutar la tarea SQL
-
En la barra de herramientas, haga clic en el icono
. En el cuadro de diálogo Parameter, seleccione un resource group de programación y haga clic en Running.NotaPara acceder a recursos de cómputo a través de Internet público o en una VPC, debe usar un resource group de programación que pueda conectarse a dichos recursos. Para obtener más información, consulte Network connectivity solutions.
Para cambiar el resource group en ejecuciones posteriores, haga clic en el icono Running with Parameters
y seleccione el resource group deseado.Las consultas en nodos EMR Trino devuelven un máximo de 10,000 registros y el tamaño total de los datos no puede superar los 10 MB.
Haga clic en el icono
para guardar el código SQL.
(Opcional) Configurar parámetros avanzados
Para ajustar la forma en que se ejecutan las sentencias SQL, haga clic en Advanced Settings en el panel de navegación derecho.
|
Parámetro |
Descripción |
|
FLOW_SKIP_SQL_ANALYZE |
Especifica cómo se ejecutan las sentencias SQL. Valores válidos:
|
|
DATAWORKS_SESSION_DISABLE |
Este parámetro aplica a ejecuciones de prueba en el entorno de desarrollo. Valores válidos:
|
Paso 3: Configurar la programación de tareas
Para ejecutar periódicamente la tarea del nodo, haga clic en Scheduling en el lado derecho de la página de edición del nodo y configure los ajustes de programación según sus necesidades. Para obtener más información, consulte Overview of task scheduling properties.
Debe configurar el Rerun attribute y los Parent Nodes del nodo antes de poder enviarlo.
Paso 4: Enviar y desplegar la tarea
Después de configurar el nodo, envíelo y despliéguelo. Una vez desplegada, la tarea se ejecuta periódicamente según la configuración de programación.
Haga clic en el icono
en la barra de herramientas para guardar el nodo.-
Haga clic en el icono
en la barra de herramientas para enviar la tarea del nodo.En el cuadro de diálogo Submission, introduzca una Change Description y seleccione si desea realizar una revisión de código después de enviar el nodo.
NotaDebe establecer la propiedad Rerun attribute y especificar los Parent Nodes del nodo antes de poder enviarlo.
La revisión de código ayuda a controlar la calidad del código y evita errores al desplegar código no revisado en producción. Si habilita la revisión de código, los revisores deben aprobar el código enviado antes de que pueda desplegarse. Para obtener más información, consulte Code review.
Si su espacio de trabajo se ejecuta en modo estándar, debe hacer clic en Deploy en la esquina superior derecha de la página del editor de nodos después de enviar la tarea. Esto despliega la tarea en el entorno de producción. Para obtener más información, consulte Deploy tasks.
Siguientes pasos
Una vez enviada y desplegada la tarea, esta se ejecuta periódicamente según su configuración de programación. Haga clic en O&M en la esquina superior derecha de la página del editor de nodos para consultar el estado de programación y operación. Para obtener más información, consulte Manage periodic tasks.
Preguntas frecuentes
-
P: Se produce un tiempo de espera de conexión al ejecutar el nodo. ¿Por qué?
EMR execute task failed! SQL: {"name":"dw20251018","type":"TRINO_SQL","launcher":{"allocationSpec":{}},"properties":{"envs":{"FLOW_SKIP_SQL_ANALYZE":false},"arguments":["select * from default.dim_customers;"],"tags":[]},"description":"DataWorks"} TASK-MESSAGE: FAILED: Error executing queryR: Asegúrese de que el resource group y el clúster puedan conectarse entre sí a través de la red. Vaya a la lista de recursos de cómputo y haga clic en Resource Initialization. En el cuadro de diálogo que aparece, haga clic en Re-initialize. Compruebe que la inicialización se haya completado correctamente.
El cuadro de diálogo muestra el siguiente mensaje en la parte superior: Si es la primera vez que vincula un clúster o si la configuración del servicio del clúster (por ejemplo, el archivo hive-site) ha cambiado, inicialice el resource group. De lo contrario, es posible que las tareas fallen al ejecutarse.