Todos los productos
Search
Centro de documentos

DataWorks:Envío de datos

Última actualización: Sep 20, 2026

La función de envío de datos es un servicio de datos de DataWorks que recupera información de un origen de datos mediante consultas SQL y la envía a un Webhook o a una dirección de correo electrónico. Con esta función, se configuran fácilmente envíos periódicos de datos de negocio a varios Webhooks o direcciones de correo. En este tema se describe cómo configurar y utilizar la función de envío de datos.

Descripción general

Es posible programar tareas periódicas para enviar datos a un Webhook o a una dirección de correo electrónico de destino.

image

Orígenes de datos y canales compatibles

  • Tipos de orígenes de datos compatibles:

    • MySQL (compatible con StarRocks y Doris)

    • PostgreSQL (compatible con Snowflake y Redshift)

    • Hologres

    • MaxCompute (ODPS)

    • ClickHouse

  • Los canales de envío compatibles incluyen DingTalk, Lark, WeCom, correo electrónico y Teams.

Límites

  • Cada instrucción SELECT del servicio de envío de datos devuelve un máximo de 10 000 filas.

  • Si necesita recuperar más de 10 000 filas, utilice una de las siguientes alternativas:

    • Utilice el comando MaxCompute Tunnel para exportar los datos a su entorno local y procesarlos posteriormente.

    • Utilice la integración de datos de DataWorks para exportar los datos a otro sistema de almacenamiento.

  • Límites de tamaño de datos según el destino:

    • En DingTalk, el tamaño de los datos enviados no debe superar los 20 KB.

    • En Lark, el tamaño de los datos enviados no debe superar los 20 KB, y cada imagen debe ser menor de 10 MB.

    • En WeCom, cada bot puede enviar hasta 20 mensajes por minuto.

    • En Teams, el contenido enviado no debe superar los 28 KB.

    • Para el correo electrónico, cada tarea de envío de datos admite un solo cuerpo de mensaje. Para conocer otros límites, consulte las restricciones SMTP de su servicio de correo.

  • La función de envío de datos solo está disponible en los espacios de trabajo de DataWorks de las siguientes regiones: China (Hangzhou), China (Shanghai), China (Beijing), China (Shenzhen), China (Chengdu), China (Hong Kong), Singapore, Japan (Tokyo), US (Silicon Valley), US (Virginia) y Germany (Frankfurt).

Requisitos previos

Paso 1: Crear una tarea de envío

  1. Acceda a Data Service.

    Inicie sesión en la . En la barra de navegación superior, seleccione la región donde reside su origen de datos. En el panel de navegación izquierdo, elija Data Analysis and Service > Data Services. Seleccione el espacio de trabajo deseado en la lista desplegable y haga clic en Go to Data Service.

  1. Cree una tarea de envío de datos.

    En el panel de navegación izquierdo de Data Services, elija Service Development > Data Push para ir a la página Data Push. Haga clic en el icono image, seleccione Create Data Push Task, introduzca un nombre para la tarea y haga clic en OK. Se abrirá la página de configuración de la tarea.

Paso 2: Configurar la tarea de envío

Preparación (opcional)

Para ayudarle a enviar datos rápidamente, este tema utiliza un ejemplo que explica cómo enviar los resultados de una consulta desde una tabla de MaxCompute. En este caso, se usa la función de envío de datos para mandar la información de una tabla llamada sales a un canal específico. Los datos incluyen el monto de ventas diarias de cada departamento y la variación respecto al día anterior. Si desea seguir los pasos de este ejemplo, primero debe crear la tabla sales en su entorno. A continuación se muestran las instrucciones para crear la tabla sales e insertarle datos. Para obtener más información sobre cómo crear una tabla, consulte Create and use MaxCompute tables.

CREATE TABLE IF NOT EXISTS sales (
    id BIGINT COMMENT 'Unique identifier',
    department STRING COMMENT 'Department name',
    revenue DOUBLE COMMENT 'Revenue amount'
) PARTITIONED BY (ds STRING);
-- Insert sample data into partitions
INSERT INTO TABLE sales PARTITION(ds='20240101')(id, department, revenue ) VALUES (1, 'Department 1', 12000.00);
INSERT INTO TABLE sales PARTITION(ds='20240101')(id, department, revenue ) VALUES (2, 'Department 2', 21000.00);
INSERT INTO TABLE sales PARTITION(ds='20240101')(id, department, revenue ) VALUES (3, 'Department 3', 5000.00);
INSERT INTO TABLE sales PARTITION(ds='20240102')(id, department, revenue ) VALUES (1, 'Department 1', 11000.00);
INSERT INTO TABLE sales PARTITION(ds='20240102')(id, department, revenue ) VALUES (2, 'Department 2', 20000.00);
INSERT INTO TABLE sales PARTITION(ds='20240102')(id, department, revenue ) VALUES (3, 'Department 3', 10000.00);

Seleccionar un origen de datos

Seleccione Data Source Type, Data Source Name y Data Source Environment para definir el entorno de la tabla de datos que se usará en el envío. El entorno del origen de datos se elige según si el envío corresponde a una tabla de desarrollo o de producción. Si está siguiendo este ejercicio práctico, confirme el entorno donde se ubica la tabla sales que creó durante la fase de preparación.

Por ejemplo, establezca Data source type en odps, Data source name en MaxCompute_Source y Data source environment en production environment. Para crear un nuevo origen de datos, haga clic en el enlace situado debajo del campo Data source name.

Nota

Para consultar la lista de tipos de orígenes de datos compatibles, vea Supported data sources and channels.

Escribir la consulta SQL

  • Defina el alcance de los datos y recupérelos.

    En la sección Edit Query SQL, utilice consultas SQL de una o varias tablas para definir los datos que se enviarán. Por ejemplo:

    -- Get the sales revenue for each department on 20240102
    SELECT id, department, revenue FROM sales WHERE ds='20240102';
    -- Get the change in sales revenue compared to the previous day
    SELECT  a.revenue - b.revenue AS diff FROM sales a LEFT JOIN sales b ON a.id = b.id AND a.ds > b.ds WHERE a.ds = '20240102'AND b.ds = '20240101';

    Después de escribir el código SQL, los campos resultantes se completan automáticamente en la sección Parameters > Output Parameters. Si el análisis sintáctico de los parámetros de salida falla o los valores son incorrectos, deshabilite Automatically Parse Parameters y agregue manualmente los parámetros con Add Parameter.

    También es posible configurar variables personalizadas en el código SQL mediante el formato ${variable_name}. Esta variable corresponde a un elemento de Assignment Parameters(Assignment Parameters admite expresiones de tiempo y constantes como valores asignados ) para implementar la entrada dinámica de parámetros en su código. Para obtener más información, consulte Configure push content.

    -- Use scheduling parameters to dynamically assign time variables.
    -- Get the latest daily sales revenue for each department
    SELECT id, department, revenue FROM sales WHERE ds='${date}';
    -- Get the change in sales revenue compared to the previous day
    SELECT a.revenue - b.revenue AS diff FROM sales a LEFT JOIN sales b ON a.id = b.id  and  a.ds > b.ds WHERE a.ds = '${date}' AND b.ds = '${previous_date}';
  • Consulta paginada.

    Para tablas grandes, el envío de datos admite consultas paginadas mediante un Next Token. Haga clic en Code Help > Code Template > Next Token en la barra de herramientas del editor de código para ver las instrucciones de uso.

Configurar el contenido de envío

En la sección Content to Push, edite el contenido del mensaje con los formatos Markdown y Table. Este contenido se enviará al Webhook.

Una vez que personalice el título del mensaje en el campo Title, haga clic en Add en el área del cuerpo. Luego, elija Markdown, Table o Email Body para editar el contenido. A continuación se muestra un ejemplo de configuración. Haga clic en Preview en la barra de herramientas para visualizar el formato del mensaje.

Nota
  • Si el destino del envío es una dirección de correo electrónico, el contenido personalizado en las secciones Markdown y Table se envía como archivo adjunto. El cuerpo del correo se renderiza y se muestra dentro del mensaje.

  • Si el destino no es una dirección de correo electrónico, el contenido personalizado en las secciones Markdown y Table se mostrará como el cuerpo principal del mensaje del Webhook. La sección Email Body permanecerá oculta en el mensaje enviado al Webhook.

Contenido Markdown

  • Usar variables de parámetros: Al redactar el contenido de envío, agregue elementos de Assignment Parameters y Output Parameters al texto enriquecido mediante el formato ${parameter_name}. Estas variables se sustituyen por los datos asignados correspondientes o por los resultados de la consulta SQL cuando se ejecuta la tarea de envío de datos.

    • Assignment Parameters: Debe asignar una Constant o la Time Expression de un parámetro de programación a la variable en la sección Parameters > Assignment Parameters.

    • Output Parameters: Estos parámetros corresponden a los nombres de campo o alias de su consulta SQL, como A, B, ... en una instrucción tipo SELECT A, B, ... FROM TABLE. Representan los datos consultados.

  • Mencionar miembros con @: Configure esta opción al enviar datos a un Webhook de Lark para mencionar automáticamente a usuarios específicos con @.

    • De forma predeterminada, el modo Markdown utiliza texto enriquecido para configurar el contenido del mensaje. Al enviar datos a Lark, use la función de mención con @ para notificar al personal correspondiente. Haga clic en el icono image para cambiar al modo de código fuente Markdown y luego utilice <at id="all" /> o <at email="username@example.com" /> para lograrlo.

  • Además de las funciones anteriores, Markdown también admite opciones como Add Image e inserción de DingTalk Emoji.

    En el área de contenido de envío, seleccione Markdown como tipo de plantilla. En el cuerpo, utilice la sintaxis ${parameter_name} para hacer referencia a los parámetros definidos en el panel Input Parameters de la derecha. Por ejemplo, si escribe ${creator} y ${subscriber} en el cuerpo, y establece creator en "admin" y subscriber en "user" en la pestaña Input parameters, las variables se sustituirán automáticamente por sus valores cuando se ejecute la tarea. Los parámetros de entrada también admiten variables de tiempo de programación. Por ejemplo, puede establecer date en ${yyyymmdd} y previous_date en ${yyyymmdd-1}. La sección para escribir la consulta SQL también puede hacer referencia a los parámetros de entrada para obtener valores dinámicos; por ejemplo, SELECT id, department, revenue FROM sales WHERE ds='${date}';.

    Si el contenido de envío incluye etiquetas HTML (por ejemplo, texto pegado desde un editor externo), podría producirse un error al cambiar al modo de texto enriquecido: Error parsing markdown: Unexpected closing tag. Si esto ocurre, cambie al modo de código fuente en el editor Markdown, elimine las etiquetas HTML del contenido para que solo quede texto Markdown sin formato y vuelva al modo de texto enriquecido. Así, el contenido se renderizará correctamente.

Contenido de tabla

  • Haga clic en Add Column para aumentar el número de columnas de la tabla. Después, asocie los Parameters con las columnas correspondientes.

  • Cuando el destino del envío sea un Webhook de Lark, haga clic en el icono image a la derecha de una columna creada para abrir el cuadro de diálogo Modify Field. En este cuadro, ajuste Field, Display Name, Display Style y Condition para generar distintos efectos visuales en el contenido enviado.

    • Field: Cambie a otro campo de Output Parameters.

    • Display Name: El nombre que desea mostrar en el encabezado de la tabla al enviar datos a herramientas de colaboración.

    • Display Style: Agregue un prefijo o sufijo fijo antes o después del Value en la tabla.

    • Condition: Compara el Value de la tabla con un valor de comparación configurado. Personalice el color de visualización para los valores que cumplan la condición (Yes) o no la cumplan (No), y especifique un Additional Unicode. Condition: Habilite la lógica condicional, establezca un operador (como >=) y un umbral (como 60). Si se cumple la condición, seleccione Change to green. Si no se cumple, seleccione Change to red. También configure un Appended Identifier.

    Nota
    • El método para crear tablas varía según el canal. La compatibilidad del contenido de tablas en los distintos canales es la siguiente:

      • DingTalk: Admite tablas Markdown y las tablas integradas del envío de datos. No renderiza las configuraciones de Display Style y Condition definidas en el cuadro de diálogo Modify Field. Además, DingTalk mobile no admite la visualización de tablas.

      • Lark: Admite tanto tablas Markdown como integradas, incluida la renderización de estilos de visualización y condiciones personalizados.

      • WeCom: Permite enviar tablas Markdown, pero no las renderiza.

      • Teams mobile: Permite enviar tablas Markdown y las renderiza.

Cuerpo del correo electrónico

El envío de datos de DataWorks permite agregar un cuerpo de correo electrónico al contenido de envío. Al editarlo, tenga en cuenta lo siguiente:

  • Cada tarea de envío de datos admite un solo cuerpo de correo electrónico.

  • El cuerpo del correo solo se renderiza cuando el destino del envío es una dirección de correo electrónico. Si el destino no es una dirección de correo, la sección Email Body permanece oculta en el mensaje enviado al Webhook.

Paso 3: Configurar los ajustes de envío

Antes de configurar Push Settings, haga clic en el icono image en la esquina inferior izquierda de la página Service Development para abrir el panel de configuración. Cambie a la pestaña Destination Management y haga clic en Create Destination para crear un destino. Los tipos de canal compatibles incluyen DingTalk, Lark, WeCom, Teams y Email.

Crear un destino Webhook

Al hacer clic en Create Destination, configure los siguientes parámetros:

  • Type: Seleccione un tipo de canal. Las opciones incluyen DingTalk, Lark, WeCom y Teams.

  • Destination Name: Introduzca un nombre personalizado para el nuevo destino de envío.

  • Webhook: La URL del Webhook del canal de envío seleccionado.

Nota

La lista desplegable Type también admite el canal Email. Una vez completada la configuración, haga clic en OK.

Crear un destino de correo electrónico

Antes de configurar Push Settings, haga clic en el icono image en la esquina inferior izquierda de la página Service Development para abrir el panel de configuración. Cambie a la pestaña Destination Management y haga clic en Create Destination para crear un destino.

Al hacer clic en Create Destination, debe configurar los siguientes parámetros:

  • Type: Seleccione Email.

  • Destination Name: Introduzca un nombre personalizado para el nuevo destino de envío.

  • SMTP Host: La dirección del servidor de correo.

  • SMTP Port: El número de puerto del servidor de correo. El valor predeterminado es 465, aunque se puede modificar manualmente.

  • Sender Address: La dirección de correo electrónico del remitente.

  • SMTP Account: La cuenta de correo electrónico completa.

  • SMTP Password: La contraseña de la cuenta de correo electrónico.

  • Receiver Address: La dirección de correo electrónico de destino.

Ajustes de envío

Haga clic en Push Settings en el lado derecho para configurar el ciclo de programación, los recursos de programación y los destinos de envío de la tarea. Los elementos de configuración específicos son los siguientes:

  • Configuración del ciclo de programación y la hora de ejecución: Defina el ciclo de programación y la hora exacta en la que el servicio de envío de datos mandará el contenido editado.

    Ciclo de programación

    Hora especificada

    Hora de programación

    Ejemplo

    Month

    Especifique los días del mes en los que se ejecutará la tarea de envío.

    La hora de programación de la tarea de envío de datos para el día indicado.

    Scheduling Frequency: Month

    Specified Time: 1st of every month

    Data Timestamp: 08:00

    Hora de ejecución real: La tarea de envío se ejecuta a las 08:00 el primer día de cada mes.

    Week

    Especifique los días de la semana en los que se ejecutará la tarea de envío.

    La hora de programación de la tarea de envío de datos para el día indicado.

    Scheduling Frequency: Week

    Specified Time: Monday

    Data Timestamp: 09:00

    Hora de ejecución real: La tarea de envío se ejecuta a las 09:00 todos los lunes.

    Day

    Nota

    El ciclo diario programa la tarea para que se ejecute todos los días.

    La hora de programación de la tarea de envío de datos para el día indicado.

    Scheduling Frequency: Day

    Data Timestamp: 08:00

    Hora de ejecución real: La tarea de envío se ejecuta a las 08:00 todos los días.

    Hour

    Nota

    Puede elegir entre dos modos de envío:

    • Envío en un intervalo horario especificado.

    • Envío en horas y minutos especificados.

    Envío en un intervalo horario:

    Start Time: 00:00

    Time Interval: 1 hour

    End Time: 23:59

    Hora de ejecución real: Envía una vez cada hora desde las 00:00 hasta las 23:59 diariamente.

    Envío en horas y minutos especificados:

    Hour: 0, 1

    Specified Minute: 10

    Hora de ejecución real: Envía a las 00:10 y a las 01:10 diariamente.

  • Timeout Definition: Establece un límite de tiempo para la ejecución de la tarea. Si se supera este límite, la tarea finaliza.

    • Default Value: Con la configuración Default Value, el tiempo de espera de la tarea se ajusta dinámicamente según la carga del sistema, con un valor de entre 3 y 7 días. Las tareas que superan este tiempo finalizan.

    • Ejemplo: Si establece un tiempo de espera Custom de 1 hora, la tarea de envío finalizará si transcurre más de 1 hora desde su hora de inicio programada.

  • Valid From: Configure el intervalo de tiempo durante el cual la tarea de envío de datos estará activa.

    • Permanent: La tarea de envío de datos permanece vigente de forma permanente y no está limitada por un intervalo de fechas de validez.

    • Example: Si configura un intervalo Specified Time del 2024-01-01 al 2024-12-31, la tarea de envío se ejecutará según el ciclo de programación configurado dentro de ese periodo.

  • Resource Group for Scheduling: Configure un Exclusive resource group for scheduling o un serverless resource group (resource group de propósito general) para proporcionar recursos de programación a la tarea de envío de datos. Para obtener más información sobre los resource groups, consulte Resource Group Management.

  • Push Every Time: Controla si se envía una notificación cuando la consulta SQL no devuelve datos.

    • Habilitado (valor predeterminado): El envío se ejecuta en cada ejecución programada, independientemente de si la consulta devuelve datos.

    • Deshabilitado: Si todas las variables utilizadas en el contenido de envío, excepto los parámetros de entrada, están vacías, el mensaje no se manda. Utilice las cláusulas WHERE o HAVING en el código SQL para filtrar datos. Si no se cumplen las condiciones de filtrado y el resultado de la consulta está vacío, la tarea de envío se omite automáticamente y no se manda ningún mensaje.

  • Destination: Envíe el contenido configurado a un destino seleccionado. Solo puede elegir entre los destinos de envío existentes, los cuales se configuran en Data Push Task Management.

    Nota

    Al enviar datos a un Webhook de DingTalk, debe agregar una palabra clave en la sección Security Settings > Custom Keywords de la configuración del bot. Asegúrese de que el contenido de envío incluya esta palabra clave para que el envío se complete correctamente.

Paso 4: Probar la tarea de envío

Después de crear la tarea de envío de datos, haga clic en el botón Save de la barra de herramientas para guardar la configuración actual. Luego, haga clic en Test para ejecutar una prueba en la etapa de desarrollo y comprobar que el envío de datos funciona correctamente. Para esta prueba, debe asignar manualmente valores constantes a las variables.

Nota

Una tarea de envío de datos debe superar una prueba de envío en el entorno de desarrollo antes de poder enviarse con Submit y publicarse con Publish.

Paso 5: Publicar la tarea de envío

Gestionar las versiones de la tarea

  1. Una vez que confirme que las pruebas durante el desarrollo se completaron correctamente, haga clic en Submit. Si no envía la tarea de envío, esta permanecerá en estado de borrador y no se generará una nueva versión.

  2. Después de enviar el servicio, se genera una nueva versión. En el panel Version del lado derecho, busque la versión enviada con estado Can Be Published y haga clic en Publish. Al publicar la tarea, se activa su programación tal como se definió en Push Settings.

    En el panel Version, gestione la tarea de envío de datos de la siguiente manera.

    Status

    Actions

    Description

    Publish

    Data Push Task Management

    Abre la página Data Push Task Management, donde puede consultar información detallada sobre las tareas publicadas. Para obtener más información, consulte Manage data push tasks.

    Can Be Published

    Publish

    Publica la versión correspondiente de la tarea.

    Abandoned

    Descarta la versión correspondiente de la tarea y cambia su estado a Abandoned.

    Off-Line, Abandoned

    Version Details

    Consulte la información de configuración y el contenido de envío correspondiente para esa versión de la tarea de envío de datos.

    Roll Back

    Restaura esta versión y la convierte en la configuración actual.

    Nota

    Las operaciones Version Details y Roll Back están disponibles y funcionan de manera idéntica para las tareas en todos los estados.

Gestionar las tareas de envío

Cuando la tarea de envío de datos se publique correctamente, haga clic en Data Push Task Management dentro de la columna Operation del panel Version. También puede ir a la página de lista Data Push Tasks mediante la ruta Service Management > Data Push Task Management.

Esta página enumera todas las Data Push Tasks publicadas. Además, muestra detalles como ID, Name, Data Source Name, Data Source Environment, Node Mode, Resource Group for Scheduling, Owner, Deployer y Published Time. En la columna Operation, aplique las siguientes acciones a las tareas de envío de datos publicadas:

Acciones

Description

Unpublish

Desconecta la tarea seleccionada.

Test

Abre la página Test Data Push Task, donde puede probar una tarea publicada.

Nota

Si hace clic en el icono image de la columna Service Development, accederá a la página Name de la tarea seleccionada.

Probar una tarea publicada

Vaya a la página Version Details con cualquiera de los siguientes métodos:

  • Método 1: Elija Service Management > Test Data Push Task.

  • Método 2: Elija Service Management > Data Push Task Management > Data Push Tasks.

Al probar una tarea publicada, usted comprueba que se ejecute correctamente y que el destino reciba los datos según lo esperado.

En la página Data Push Test, seleccione o busque la tarea de envío de datos deseada en la lista desplegable. Marque la casilla Push to Destination si lo requiere y, a continuación, haga clic en Start Test.

Preguntas frecuentes

P: ¿El envío de datos admite ejecuciones bajo demanda?

R: Para envíos ocasionales y bajo demanda, utilice la función Test con la opción Push to Destination seleccionada. Si necesita envíos recurrentes condicionales, deshabilite la configuración Data Push Tasks. De este modo, la tarea solo se ejecutará cuando su consulta SQL devuelva datos.