O DataWorks DataStudio permite adicionar nós de push de dados a um workflow e oferece suporte a cinco métodos de envio: push simples, push combinado, push via script, push condicional e push de dados do MaxCompute. Este tutorial demonstra cada método.
Contexto
Você pode adicionar um nó de push de dados a um processo de negócios do DataWorks. Após o processamento dos dados pelo processo de negócios, o nó executa uma consulta simples para obter os resultados. Com base no agendamento de tarefas, o nó entrega os dados a destinos como DingTalk, Lark, WeCom, Microsoft Teams ou e-mail.
Abordagem
Adicione um nó para preparar dados de teste para os workflows de push subsequentes.
-
Inclua nós de consulta de dados, atribuição e outros nós de processamento para consultar e tratar os dados de teste.
NotaAdapte os nós de preparação de dados de teste e processamento de consultas conforme suas necessidades de negócios. Este tutorial utiliza um nó MySQL para demonstrar o envio de dados.
Adicione um nó de push de dados para receber os parâmetros de saída do nó de consulta. Esse nó envia os dados, transmitidos como parâmetros de contexto, para o DingTalk, Lark, WeCom, Microsoft Teams ou e-mail.
Métodos de push
Este tutorial aborda cinco métodos para utilizar nós de push de dados em um workflow: Push Simples, Push Combinado, Push Baseado em Script, Push Condicional e Push de Dados do MaxCompute.
Simple Push: Um workflow upstream executa uma consulta SQL e transmite os resultados para um nó de push de dados por meio de Input and Output Parameters.
Combined Push: Vários workflows upstream executam consultas SQL e enviam seus resultados para um único nó de push de dados utilizando Input and Output Parameters.
Script-based Push: Um Assignment Node upstream processa dados com um script e repassa os resultados para um nó de push usando Input and Output Parameters. Para mais informações, consulte Assignment node.
Conditional Push: Um workflow upstream emprega um Branch Node para avaliar dados com base em condições configuradas e encaminha os dados qualificados para um nó de push de dados através de Input and Output Parameters. Para mais detalhes, veja Branch node.
MaxCompute Data Push: Envia dados de uma fonte de dados MaxCompute. Utilize um assignment node para consultar o MaxCompute e, em seguida, envie os resultados.
Pré-requisitos
Antes de começar, certifique-se de ter o seguinte:
Um workspace do DataWorks. Para detalhes, consulte Create a workspace.
Uma instância do ApsaraDB RDS for MySQL e uma fonte de dados MySQL no seu workspace. Para detalhes, consulte Data source management.
-
Uma fonte de dados MaxCompute no seu workspace. Para detalhes, consulte Associate a MaxCompute computing resource.
NotaEste tutorial usa uma fonte de dados MySQL e uma fonte de dados MaxCompute como exemplos. Adicione outros tipos de fontes de dados conforme as necessidades do seu negócio.
Um grupo de recursos serverless. Apenas grupos de recursos serverless podem executar nós de push de dados. Para adquirir e utilizar um, consulte Use serverless resource groups.
Limitações
-
O recurso de push de dados possui os seguintes limites:
Para o DingTalk, o tamanho dos dados não pode exceder 20 KB.
No Lark, o tamanho dos dados não pode ultrapassar 20 KB e as imagens devem ser menores que 10 MB.
No WeCom, cada chatbot pode enviar no máximo 20 mensagens por minuto.
Para o Microsoft Teams, o tamanho dos dados não pode exceder 28 KB.
Para e-mail, cada tarefa de push de dados suporta apenas um corpo de e-mail. Para limites adicionais, consulte as restrições SMTP do seu service de e-mail.
O recurso de push de dados está disponível apenas em workspaces do DataWorks nas seguintes regiões: China (Hangzhou), China (Shanghai), China (Beijing), China (Shenzhen), China (Chengdu), China (Hong Kong), Singapore, Malaysia (Kuala Lumpur), US (Silicon Valley), US (Virginia) e Germany (Frankfurt).
Preparação
Criar um workflow
Faça login no console do DataWorks. Na região de destino, clique em no painel de navegação à esquerda. Selecione um workspace na lista suspensa e clique em Go to Data Development.
No painel Data Studio, clique com o botão direito em Workflow e selecione Create Workflow. Insira um nome para o workflow. Neste exemplo, nomeie o workflow como
Data Push Demo.
Criar nós
Após criar o workflow Data Push Demo, clique duas vezes no nome do workflow para abrir a tela de edição. Dependendo do método de push necessário na tabela abaixo, clique em
para criar os nós correspondentes. Nomeie os nós criados exatamente conforme especificado na tabela.
Método de push | Nome do nó | Tipo de nó | Descrição |
| Nó MySQL | Consulta o total de vendas do mês anterior nos dados de teste e passa o resultado como parâmetro de contexto para o nó de ramificação. | |
| Branch Node | Recebe o parâmetro de saída do nó MySQL, avalia-o em relação a uma condição e, com base no resultado, roteia os dados como parâmetros de contexto para diferentes nós MySQL. | |
| Nó MySQL | Recebe o parâmetro de saída 'meta atingida' do nó de ramificação, consulta os dados correspondentes e passa o resultado como parâmetro de contexto para o nó Data Push. | |
| Recebe o parâmetro de saída 'meta não atingida' do nó de ramificação, consulta os dados correspondentes e passa o resultado como parâmetro de contexto para o nó Data Push. | ||
| Nó Data Push | Recebe o parâmetro de saída 'meta atingida' e envia os dados do parâmetro de contexto de entrada para o destino. | |
| Recebe o parâmetro de saída 'meta não atingida' e envia os dados do parâmetro de contexto de entrada para o destino. | ||
| Nó MySQL | Consulta o total de vendas da semana anterior para as três principais categorias e passa o resultado como parâmetro de contexto para o nó de atribuição. | |
| Assignment Node | Utiliza Python para receber o parâmetro de saída do nó MySQL, convertê-lo em uma lista e passar a lista como parâmetro de contexto para o nó Data Push. | |
| Nó Data Push | Recebe a lista do nó de atribuição e a envia para o destino. | |
| Nó MySQL |
| |
| |||
| Nó Data Push | Recebe parâmetros de saída de dois nós MySQL simultaneamente e envia os dados dos parâmetros de contexto de entrada para o destino. | |
| Nó MySQL | Consulta o total de vendas de ontem nos dados de teste e passa o resultado como parâmetro de contexto para o nó Data Push. | |
| Nó Data Push | Recebe o parâmetro de saída do nó MySQL e envia os dados do parâmetro de contexto de entrada para o destino. | |
| Nó Batch Synchronization | Usa o Data Integration para sincronizar dados do MySQL para uma fonte de dados ODPS. | |
| Assignment Node | Consulta dados da fonte de dados ODPS e passa o resultado como parâmetro de contexto para o nó Data Push. | |
| Nó Data Push | Recebe o resultado da consulta do nó de atribuição e o envia para o destino. |
Preparar dados
Configurar o fluxo de push
O DataWorks oferece vários métodos de implantação para adequar-se à sua lógica de negócios: implantação condicional, implantação baseada em script, implantação mesclada, implantação simples e implantação de dados do MaxCompute. Este tutorial usa MySQL para demonstrar os métodos para várias fontes de dados e fornece um exemplo específico para implantar dados do MaxCompute.
Push de dados condicional
Etapa 1: Construir o workflow de push
Clique duas vezes no workflow Data_Push_Demo para abrir a tela de edição. Conecte os nós em sequência para criar um workflow de push de dados condicional, conforme mostrado na figura abaixo. O workflow roteia os dados do nó Query_Last_Month_Sales_Total para o nó Check_Sales_Target. O nó Check_Sales_Target divide o fluxo em uma ramificação "conforme" (que inclui os nós Last_Month_Sales_Target_Met e Push_Top_3_Categories_Target_Met) e uma ramificação "não conforme" (que inclui os nós Last_Month_Sales_Target_Not_Met e Push_Bottom_3_Categories_Target_Not_Met).

Etapa 2: Configurar o nó de consulta SQL
Configure o nó de consulta SQL para consultar os dados de teste. O resultado da consulta é passado como um parâmetro de saída (outputs) para o nó de ramificação downstream usando Input and Output Parameters.
-
Clique duas vezes no nó
Query_Last_Month_Sales_Totale insira o seguinte código SQL.-- Calculate the total sales for the previous month SELECT SUM(sales) AS sales_amount FROM orders WHERE datetime BETWEEN DATE_FORMAT(CURRENT_DATE - INTERVAL 1 MONTH, '%Y-%m-01 00:00:00') AND DATE_FORMAT(LAST_DAY(CURRENT_DATE - INTERVAL 1 MONTH), '%Y-%m-%d 23:59:59'); -
Após inserir o código SQL, clique em Scheduling Settings à direita. No painel Propriedades, configure os seguintes parâmetros.
Scheduling Time:
08:00.Resource Group for Scheduling: Selecione seu grupo de recursos serverless.
Upstream Nodes: Selecione Add Root Node.
Output Parameters: Em Input and Output Parameters, clique em Add assignment parameter ao lado de Output Parameters para adicionar um parâmetro de saída que transmitirá o resultado da consulta ao nó downstream.
Etapa 3: Configurar o nó de ramificação
Em um nó de ramificação, dentro de Input and Output Parameters, utilize os Input Parameters para obter o parâmetro de saída outputs de um nó de consulta SQL upstream. O nó então realiza uma avaliação condicional e usa os Output Parameters para gerar os dados que atendem à condição.
-
Clique duas vezes no nó
Check_Sales_Target. Clique em Add Branch para criar duas ramificações, uma para "conforme" e outra para "não conforme". Configure-as da seguinte forma.Parâmetro
Ramificação Conforme
Ramificação Não Conforme
Condition
${inputs[0][0]}>=500000${inputs[0][0]}<500000Associated Node Output
Conforme
Não conforme
Description
O total de vendas do mês anterior está conforme.
O total de vendas do mês anterior não está conforme.
NotaA expressão [0][0] é uma referência de array bidimensional para localizar o ponto de dados específico para a condição.
Quando o nó upstream for um nó de consulta SQL, use um array bidimensional para localizar os dados condicionais no parâmetro.
Quando o nó upstream for um nó Python, use um array unidimensional.
-
Clique duas vezes para abrir o nó
Condition Check. À direita, clique em Scheduling Settings e configure as seguintes definições na caixa de diálogo exibida.Tipo de parâmetro
Descrição
Schedule
Scheduling Frequency
DayScheduling Time
08:00Rerun
Permite reexecução após execuções bem-sucedidas e com falha.
Resource Group
Resource Group for Scheduling
Selecione seu grupo de recursos serverless.
NotaNa primeira vez que usar um nó de push de dados, você deve enviar um ticket para atualizar o grupo de recursos de agendamento.
Output Name of Current Node
Após configurar as ramificações, os nomes de saída são analisados automaticamente e adicionados aqui. O Output Name deve corresponder ao Associated Node Output definido para a ramificação.
Input and Output Parameters
Input Parameters
Parameter name:
inputsValue Source: Do nó upstream
Query last month's total sales, selecione o parâmetro de saídaoutputs.Output Parameters
O sistema adiciona
outputspor padrão. Após a configuração, clique no ícone
para salvar o nó Check_Sales_Target.
Etapa 4: Configurar os nós SQL de ramificação
Neste tutorial, o nó de consulta SQL de ramificação é dividido em dois nós: Last_Month_Sales_Target_Met_Data e Last_Month_Sales_Target_Not_Met_Data. Você precisa enviar os parâmetros de contexto do Branch Node para os nós Last_Month_Sales_Target_Met_Data e Last_Month_Sales_Target_Not_Met_Data. Em seguida, use os Output Parameters de Input and Output Parameters para enviar o resultado da consulta SQL do nó de ramificação para os nós Data Push correspondentes de meta atingida e meta não atingida.
-
Clique duas vezes nos nós
Last_Month_Sales_Target_MeteLast_Month_Sales_Target_Not_Metpara abrir seus editores e insira o seguinte código SQL em cada um.Meta de vendas do mês anterior atingida
SET @all_cat_sales_volume_month := 0.0; SELECT SUM(sales) INTO @all_cat_sales_volume_month FROM orders WHERE datetime BETWEEN DATE_FORMAT(CURRENT_DATE - INTERVAL 1 MONTH, '%Y-%m-01 00:00:00') AND DATE_FORMAT(LAST_DAY(CURRENT_DATE - INTERVAL 1 MONTH), '%Y-%m-%d 23:59:59'); -- Create a temporary table CREATE TEMPORARY TABLE IF NOT EXISTS temp_array ( category VARCHAR(255), sales DOUBLE, all_cat_sales_volume_month DOUBLE ); -- Query and write to the temporary table INSERT INTO temp_array (category, sales, all_cat_sales_volume_month) SELECT category, SUM(sales) AS amount, @all_cat_sales_volume_month FROM orders WHERE datetime BETWEEN DATE_FORMAT(CURRENT_DATE - INTERVAL 1 MONTH, '%Y-%m-01 00:00:00') AND DATE_FORMAT(LAST_DAY(CURRENT_DATE - INTERVAL 1 MONTH), '%Y-%m-%d 23:59:59') GROUP BY category ORDER BY amount DESC limit 3; -- Query the data for the top three compliant categories SELECT category, sales, all_cat_sales_volume_month FROM temp_array;Meta de vendas do mês anterior não atingida
SET @all_cat_sales_volume_month := 0.0; SELECT SUM(sales) INTO @all_cat_sales_volume_month FROM orders WHERE datetime BETWEEN DATE_FORMAT(CURRENT_DATE - INTERVAL 1 MONTH, '%Y-%m-01 00:00:00') AND DATE_FORMAT(LAST_DAY(CURRENT_DATE - INTERVAL 1 MONTH), '%Y-%m-%d 23:59:59'); -- Create a temporary table CREATE TEMPORARY TABLE IF NOT EXISTS temp_array ( category VARCHAR(255), sales DOUBLE, all_cat_sales_volume_month DOUBLE ); -- Query and write to the temporary table INSERT INTO temp_array (category, sales, all_cat_sales_volume_month) SELECT category, SUM(sales) AS amount, @all_cat_sales_volume_month FROM orders WHERE datetime BETWEEN DATE_FORMAT(CURRENT_DATE - INTERVAL 1 MONTH, '%Y-%m-01 00:00:00') AND DATE_FORMAT(LAST_DAY(CURRENT_DATE - INTERVAL 1 MONTH), '%Y-%m-%d 23:59:59') GROUP BY category ORDER BY amount ASC limit 3; -- Query the data for the bottom three non-compliant categories SELECT category, sales, all_cat_sales_volume_month FROM temp_array; -
Após inserir o código SQL, clique em Scheduling Settings à direita. No painel Propriedades, configure os seguintes parâmetros.
Scheduling Time:
08:00.Resource Group for Scheduling: Selecione seu grupo de recursos serverless.
-
Parent Nodes: O workflow foi criado em Step 1: Build the push workflow, portanto verifique se a dependência upstream está correta.
Para o nó Last_Month_Sales_Target_Met, o nome de saída do nó upstream deve ser Compliant.
Para o nó Last_Month_Sales_Target_Not_Met, o nome de saída do nó upstream deve ser Non-compliant.
Output Parameters: Em Input and Output Parameters, clique em Add assignment parameter ao lado de Output Parameters para adicionar um parâmetro de saída.
Clique no ícone
para salvar os nós Last_Month_Sales_Target_MeteLast_Month_Sales_Target_Not_Met.
Etapa 5: Configurar os nós de push de dados de ramificação
Crie dois nós de push de dados. Para cada nó, em Input and Output Parameters, configure os Input Parameters para obter o parâmetro outputs dos nós de consulta SQL de ramificação Last_Month_Sales_Target_Met_Data e Last_Month_Sales_Target_Not_Met_Data, respectivamente. Em seguida, use esses parâmetros no Corpo e envie-os para seus respectivos alvos.
-
Clique duas vezes nos nós
Push_Top_3_Categories_Target_MetePush_Bottom_3_Categories_Target_Not_Met. No editor de nós, clique em Scheduling Settings e configure o seguinte no painel Scheduling Settings.Tipo de parâmetro
Valor
Ilustração
Scheduling Parameter
Parameter name
curdate
Parameter Value
$[yyyymmddhh:mi:ss]Schedule
Scheduling Frequency
Day
Scheduling Time
08:00NotaEste tutorial usa 08:00 como exemplo para garantir que os dados sejam enviados ao destino às 08:00. Configure um horário diferente conforme necessário.
Rerun
Permite reexecução após execuções bem-sucedidas e com falha.
Resource Group
Resource Group for Scheduling
Selecione seu grupo de recursos serverless.
NotaNa primeira vez que usar um nó de push de dados, você deve enviar um ticket para atualizar o grupo de recursos de agendamento.

Input and Output Parameters
Input Parameters
Clique em Add para adicionar um parâmetro de entrada:
Parameter Name:
inputs.Value Source:
No nó
Push Top 3 Sales Goal Categories, selecione o parâmetro de saídaoutputsdo nóLast Month's Sales Goal Data.No nó
Push Bottom Three Underperforming Categories, selecione o parâmetro de saídaoutputsdo nóLast Month's Underperforming Sales Data.
Nó
Push_Top_3_Categories_Target_Met
Nó
Push_Bottom_3_Categories_Target_Not_Met
-
Após configurar as Scheduling Settings, configure o conteúdo do push de dados da seguinte forma.
Destination: Na lista suspensa Destination, selecione seu alvo. Se o alvo não estiver listado, clique em Create Destination na parte inferior da lista para criá-lo.
Para saber como obter um Webhook de bot do Lark, consulte Configure a Lark Webhook trigger.
Para saber como obter um Webhook do Teams, consulte Use Microsoft Teams workflows to create an incoming Webhook.
Title:
Push_Top_3_Categories_Target_MetePush_Bottom_3_Categories_Target_Not_Met.-
Body: Configure conforme necessário. Para detalhes, consulte Configure the push content.
NotaNo corpo, você pode referenciar parâmetros de entrada do nó de consulta SQL upstream usando os nomes dos campos retornados como placeholders.
Exemplo para Push_Top_3_Categories_Target_Met

Exemplo para Push_Bottom_3_Categories_Target_Not_Met

Parâmetro
Descrição
Type
Suporta DingTalk, Lark, WeCom, Microsoft Teams e Email.
Object
Insira um nome personalizado com base nas necessidades do seu negócio.
Webhook
Obtenha a URL do webhook para chatbots do DingTalk, Lark, WeCom ou Microsoft Teams, ou os detalhes SMTP para E-mail, na respectiva plataforma.
Nota Após a configuração, clique no ícone
para salvar os nós Push_Top_3_Categories_Target_MetePush_Bottom_3_Categories_Target_Not_Met.
Etapa 6: Testar o workflow de push condicional
Após configurar o workflow de push condicional, teste-o antes de enviá-lo e implantá-lo.
Clique duas vezes para abrir a página do workflow
Data_Push_Demo.-
Selecione o nó
Query Last Month's Total Sales, clique com o botão direito e selecione Executar nó atual e seus nós downstream, e aguarde a conclusão da execução.NotaSe uma tarefa falhar, clique com o botão direito no nó com falha e selecione View Log para visualizar o log.
Push de dados via script
Etapa 1: Construir o workflow
Clique duas vezes no workflow DataPushDemo para abrir a tela de edição. Conecte os nós SalesAmountPreWeek, Top3CategoryList e Top3CategoriesPreWeek em sequência para criar um workflow de push de dados via script.

Etapa 2: Configurar o nó de consulta SQL
Configure um nó de consulta SQL para consultar dados de teste e use Input and Output Parameters para gerar o parâmetro de saída outputs para o nó de consulta SQL. Isso permite passar o resultado da consulta SQL para um nó de atribuição.
-
Clique duas vezes no nó
SalesAmountPreWeekpara abrir seu editor e insira o seguinte código SQL.-- Query the top three categories by sales from the previous week SELECT category, SUM(sales) AS amount FROM orders WHERE datetime BETWEEN DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 WEEK), '%Y-%m-%d 00:00:00') AND DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 DAY), '%Y-%m-%d 23:59:59') GROUP BY category ORDER BY amount DESC limit 3; -
Após inserir o código SQL, clique em Scheduling Settings à direita. No painel Propriedades, configure os seguintes parâmetros.
Scheduling Time:
08:00.Resource Group for Scheduling: Selecione seu grupo de recursos serverless.
Upstream Nodes: Selecione Add Root Node.
Output Parameters: Em Input and Output Parameters, clique em Add assignment parameter ao lado de Output Parameters para adicionar um parâmetro de saída que transmitirá o resultado da consulta ao nó descendente.

Clique em
Salvar no nó Query last week's sales data.
Etapa 3: Configurar o nó de atribuição
O nó de atribuição usa Input Parameters em Input and Output Parameters para receber o parâmetro outputs do nó de consulta SQL upstream. O nó processa esses dados, gera um novo valor para Output Parameters e o transmite para o nó de push de dados.
-
Clique duas vezes no nó de atribuição
Top3CategoryList. No editor de nós, insira o seguinte código Python.def main(): from datetime import date today = date.today() formatted_date = today.strftime('%Y-%m-%d') msg = 'Stat date: ' + formatted_date + ' \\n\\n ' \ '- 1: ${inputs[0][0]}, sales: ${inputs[0][1]} \\n\\n ' \ '- 2: ${inputs[1][0]}, sales: ${inputs[1][1]} \\n\\n ' \ '- 3: ${inputs[2][0]}, sales: ${inputs[2][1]} \\n\\n ' print(msg) if __name__ == "__main__": import sys main() -
Após inserir o código, clique em Scheduling Settings à direita. No painel resultante, configure os seguintes parâmetros.
Scheduling Time:
08:00.Resource Group for Scheduling: Selecione seu grupo de recursos de agendamento.
-
Input and Output Parameters.
-
Input Parameters:
Parameter name:
inputs.Value Source: Selecione o parâmetro
outputsdo nó upstreamSalesAmountPreWeek.
Output Parameters: Gerado automaticamente pelo sistema.
-
Clique em
para salvar o nó de atribuição Top 3 Sales in Organization List.
Etapa 4: Configurar o nó de push de dados
Configure Input Parameters em Input and Output Parameters para receber o parâmetro outputs do nó de atribuição upstream. Em seguida, use esse parâmetro no corpo da mensagem e envie-o para o destino.
-
Clique duas vezes no nó de push de dados chamado
Push Top 3 Categories of Last Week, clique em Scheduling Settings e, no painel Scheduling Settings, configure as definições da seguinte forma.Tipo de parâmetro
Conteúdo do parâmetro
Ilustração
Scheduling Parameter
Parameter name
curdate.
Parameter Value
$[yyyymmddhh:mi:ss].Schedule
Scheduling Frequency
Daily.
Scheduling Time
08:00.NotaEste tutorial usa 08:00 como exemplo para garantir que os dados sejam enviados ao destino às 08:00. Configure um horário diferente conforme necessário.
Rerun
O nó pode ser reexecutado após sucesso ou falha.
Resource Group
Resource Group for Scheduling
Selecione seu grupo de recursos de agendamento.
NotaNa primeira vez que usar um nó de push de dados, você deve enviar um ticket para atualizar o grupo de recursos de agendamento.

Input and Output Parameters
Input Parameters
Clique em Add para adicionar um parâmetro de entrada:
Parameter Name:
inputs.Value source: Selecione o parâmetro de saída
outputsdo nó upstreamTop 3 sales categories last week.
-
Após configurar as Scheduling Settings, configure o conteúdo do push de dados da seguinte forma.
Destination: Selecione um destino na lista suspensa Destination. Se o destino não estiver listado, clique em Create Destination na parte inferior da lista para adicioná-lo.
Para saber como obter um Webhook de bot do Lark, consulte Configure a Lark Webhook trigger.
Para saber como obter um Webhook do Teams, consulte Use Microsoft Teams workflows to create an incoming Webhook.
Title:
Top 3 categories by sales for the previous week.-
Body: Configure o corpo da mensagem conforme necessário. Para detalhes, consulte Configure push content.
NotaNo corpo, você pode referenciar parâmetros de entrada do nó de consulta SQL upstream usando os nomes dos campos retornados como placeholders.

Parâmetro
Descrição
Type
Suporta DingTalk, Lark, WeCom, Teams e Email.
Object
Especifique um nome personalizado com base nas necessidades do seu negócio.
Webhook
Obtenha a URL do webhook para bots do DingTalk, Lark, WeCom ou Teams, e os detalhes do servidor SMTP para e-mail, em suas respectivas plataformas.
Nota Após concluir a configuração, clique em
para salvar o nó de push Push Top Three Categories of Last Week.
Etapa 5: Testar o workflow de push via script
Após configurar o workflow de push via script, teste-o antes de enviá-lo e implantá-lo.
Clique duas vezes no workflow
DataPushDemopara abrir a tela de edição.-
Clique com o botão direito no nó
SalesAmountPreWeeke selecione Run Current Node and Its Descendant Nodes. Aguarde a conclusão do processo.NotaSe uma tarefa falhar, clique com o botão direito no nó com falha e selecione View Log para visualizar o log.

Push de dados simples
Etapa 1: Construir o workflow de push
Clique duas vezes em Data_Push_Demo_Workflow. Na tela de edição, você verá vários nós existentes. Arraste o nó de consulta MySQL Query_Yesterday_Sales_Total como nó upstream e conecte-o ao nó de push de dados downstream Push_Yesterday_Sales_Total. Isso cria um workflow de push de dados simples, conforme mostrado na figura a seguir.

Etapa 2: Configurar o nó de consulta SQL
Use Input and Output Parameters para gerar um parâmetro outputs que transmite o resultado da consulta SQL para o nó de push de dados.
-
Clique duas vezes no nó
Query_Yesterday_Sales_Totale insira o seguinte código SQL.-- Create a temporary table named temp_array CREATE TEMPORARY TABLE IF NOT EXISTS temp_array ( total_amount DOUBLE ); -- Write the total sales from yesterday into the temp_array table INSERT INTO temp_array (total_amount) SELECT SUM(sales) FROM orders WHERE datetime BETWEEN DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 DAY), '%Y-%m-%d 00:00:00') AND DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 DAY), '%Y-%m-%d 23:59:59'); -- Query the temp_array table select total_amount FROM temp_array; -
Após inserir o código SQL, clique em Scheduling Settings à direita. No painel Propriedades, configure os seguintes parâmetros.
Scheduling Time:
08:00.Resource Group for Scheduling: Selecione um grupo de recursos Serverless existente.
Upstream Nodes: Selecione Add Root Node.
Output Parameters: Na seção Input and Output Parameters, clique em Add assignment parameter ao lado de Output Parameters para adicionar um parâmetro de saída. Os nós downstream poderão então acessar seu valor.

Clique em
Salvar para salvar o nó Query_Yesterday_Sales_Total.
Etapa 3: Configurar o nó de push de dados
Configure os Input Parameters dentro da seção Input and Output Parameters para receber o parâmetro outputs do nó de consulta SQL upstream. Você pode então usar esse parâmetro no corpo da mensagem e enviá-lo para o destino.
-
Clique duas vezes no nó de push de dados
Push_Yesterday_Sales_Total. No editor de nós, clique em Scheduling Settings à direita. No painel Scheduling Settings, configure os seguintes parâmetros.Tipo de parâmetro
Detalhes
Ilustração
Scheduling Parameter
Parameter name
curdate
Parameter Value
$[yyyymmddhh:mi:ss]Schedule
Scheduling Frequency
Daily
Scheduling Time
08:00NotaEste tutorial usa 08:00 como exemplo para garantir que os dados sejam enviados ao destino às 08:00. Configure um horário diferente conforme necessário.
Rerun
O nó pode ser reexecutado após uma execução bem-sucedida ou com falha.
Resource Group
Resource Group for Scheduling
Selecione um grupo de recursos de agendamento existente.
NotaNa primeira vez que usar um nó de push de dados, você deve enviar um ticket para atualizar o grupo de recursos de agendamento.

Input and Output Parameters
Input Parameters
Clique em Add para adicionar um parâmetro de entrada:
Parameter name:
inputs.Value Source: Selecione o parâmetro
outputsdo nó upstreamQuery_Yesterday_Sales_Total.
-
Após configurar as Scheduling Settings, configure o conteúdo do push de dados da seguinte forma.
-
Destination: Na lista suspensa Destination, selecione um destino. Se o destino não estiver listado, clique em Create Destination.
Parâmetro
Descrição
Type
Os tipos suportados incluem DingTalk, Feishu, WeCom, Teams e Email.
Object
Insira um nome personalizado com base nas necessidades do seu negócio.
Webhook
Obtenha a URL do webhook para bots do DingTalk, Feishu ou WeCom, ou para um workflow do Microsoft Teams, nas respectivas plataformas. Para e-mail, obtenha os detalhes SMTP.
NotaPara saber como obter um Webhook de bot do Lark, consulte Configure a Lark Webhook trigger.
Para saber como obter um Webhook do Teams, consulte Use Microsoft Teams workflows to create an incoming Webhook.
Title:
Push_Yesterday_Sales_Total.-
Body: Configure o corpo da mensagem conforme necessário. Para mais informações, consulte Configure the push content.
NotaNo corpo, você pode referenciar parâmetros de entrada do nó de consulta SQL upstream usando os nomes dos campos retornados como placeholders.

-
Clique em
Salvar para salvar o nó de push de dados Push_Yesterday_Sales_Total.
Etapa 4: Testar o workflow de push simples
Após configurar o workflow de push de dados simples, teste-o antes de enviá-lo para implantação.
Clique duas vezes em
Data_Push_Demo_Workflowpara abrir a tela de edição.-
Selecione o nó
Query_Yesterday_Sales_Total, clique com o botão direito nele e selecione Run current node and its downstream nodes. Aguarde a conclusão da execução.NotaSe uma tarefa falhar, clique com o botão direito no nó com falha e selecione View Log para visualizar o log.

Push de dados combinado
Etapa 1: Construir o workflow
Clique duas vezes para abrir a tela de edição do workflow Data Push Demo Flow. Na tela, arraste e conecte os nós upstream Query Yesterday's Total Sales e Query Yesterday's Sales Growth ao nó descendente Push Yesterday's Total Sales and Growth para criar um workflow de push de dados combinado, conforme mostrado na figura a seguir.
O nó Query yesterday's total sales pode ser o mesmo utilizado no workflow de push de dados simples.

Etapa 2: Configurar o nó de consulta SQL
Configure um nó de consulta SQL para consultar dados de teste e use Input and Output Parameters para gerar o parâmetro de saída outputs, que transmite o resultado da consulta SQL para um nó de push de dados.
-
Clique no nó
Query Yesterday's Sales Growthe escreva o seguinte código SQL de consulta.-- Create the temporary table temp_array1 to store data from the day before yesterday CREATE TEMPORARY TABLE IF NOT EXISTS temp_array1 ( category VARCHAR(255), sales DOUBLE ); -- Write data from the day before yesterday to temp_array1 INSERT INTO temp_array1 (category, sales) SELECT category, SUM(sales) FROM orders WHERE datetime BETWEEN DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 2 DAY), '%Y-%m-%d 00:00:00') AND DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 2 DAY), '%Y-%m-%d 23:59:59') GROUP BY category; -- Create the temporary table temp_array2 to store yesterday's data CREATE TEMPORARY TABLE IF NOT EXISTS temp_array2 ( category VARCHAR(255), sales DOUBLE ); -- Write yesterday's data to temp_array2 INSERT INTO temp_array2 (category, sales) SELECT category, SUM(sales) FROM orders WHERE datetime BETWEEN DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 DAY), '%Y-%m-%d 00:00:00') AND DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 DAY), '%Y-%m-%d 23:59:59') GROUP BY category; -- Create the result temporary table to store yesterday's sales growth CREATE TEMPORARY TABLE IF NOT EXISTS result ( category VARCHAR(255), diff DOUBLE ); -- Write the growth data to the result table INSERT INTO result (category, diff) SELECT temp_array2.category AS category, temp_array2.sales - temp_array1.sales AS diff FROM temp_array1 LEFT JOIN temp_array2 ON temp_array1.category = temp_array2.category; -- Query the growth data from the result temporary table SELECT category, diff FROM result; -
Após inserir o código SQL, clique em Scheduling Settings à direita. No painel Propriedades, configure os seguintes parâmetros.
Scheduling Time:
08:00.Resource Group for Scheduling: Selecione um grupo de recursos serverless existente.
Upstream Nodes: Selecione Add Root Node.
Output Parameters: Na seção Input and Output Parameters, clique em Add assignment parameter ao lado de Output Parameters para adicionar parâmetros de saída como valores para os parâmetros de entrada dos nós descendentes.

Clique em
Salvar para salvar o nó Query Yesterday's Sales Growth.
Etapa 3: Configurar o nó de push de dados
Use os Input Parameters de Input and Output Parameters para receber o parâmetro de saída outputs dos nós upstream Query Yesterday's Total Sales e Query Yesterday's Sales Growth, para que você possa usar os parâmetros no Corpo e enviá-los para o alvo.
-
Clique duas vezes no nó de push de dados chamado
Push Yesterday's Total Sales and Growth. Após a abertura da página do nó, clique em Scheduling Settings e configure as seguintes definições no painel Scheduling Settings.Tipo de parâmetro
Descrição
Exemplo
Scheduling Parameter
Parameter name
curdate
Parameter Value
$[yyyymmddhh:mi:ss]Schedule
Scheduling Frequency
Day
Scheduling Time
08:00NotaEste tutorial usa 08:00 como exemplo para garantir que os dados sejam enviados ao destino às 08:00. Configure um horário diferente conforme necessário.
Rerun
O nó pode ser reexecutado independentemente de a execução anterior ter sido bem-sucedida ou ter falhado.
Resource Group
Resource Group for Scheduling
Selecione um grupo de recursos existente.
NotaNa primeira vez que usar um nó de push de dados, você deve enviar um ticket para atualizar o grupo de recursos de agendamento.

Input and Output Parameters
Input Parameters
Clique em Add para adicionar parâmetros de entrada para este nó:
Parameter 1:
Parameter name:
inputs1.Value Source: Selecione o parâmetro de saída
outputsdo nó upstreamQuery Yesterday's Total Sales.
Parameter 2:
Parameter name:
inputs2.Value Source: Selecione o parâmetro de saída
outputsdo nó upstreamQuery Yesterday's Sales Growth.

-
Após configurar as Scheduling Settings, configure o conteúdo do push de dados da seguinte forma.
Destination: Na lista suspensa Destination, selecione um destino. Se o destino desejado não estiver disponível, clique em Create Destination no canto inferior direito da lista suspensa para criar um novo.
Para saber como obter um Webhook de bot do Lark, consulte Configure a Lark Webhook trigger.
Para saber como obter um Webhook do Teams, consulte Use Microsoft Teams workflows to create an incoming Webhook.
Title:
Push Yesterday's Total Sales and Growth-
Body: Configure o corpo conforme necessário. Para mais informações, consulte Configure push content.
NotaNo corpo, você pode referenciar parâmetros de entrada do nó de consulta SQL upstream usando os nomes dos campos retornados como placeholders.
Parâmetro
Descrição
Type
Os tipos suportados incluem DingTalk, Lark, WeCom, Microsoft Teams e Email.
Object
Especifique um nome personalizado com base nos requisitos do seu negócio.
Webhook
Obtenha a URL do webhook para chatbots do DingTalk, Lark, WeCom ou Microsoft Teams, ou os detalhes SMTP para Email, na respectiva plataforma.
Nota Após concluir a configuração, clique em
Salvar para salvar o nó de push Push Yesterday's Total Sales and Growth.
Etapa 4: Testar o workflow de push combinado
Antes de testar o workflow de push combinado, você deve concluir a configuração do workflow de push simples. Essa configuração é um pré-requisito para a implantação subsequente.
Clique duas vezes em
Data Push Demo Flowpara abrir a página do diagrama do processo de negócios.-
Selecione o nó
Push Yesterday's Total Sales and Growth, clique com o botão direito e selecione Run Till Current Node, e aguarde a conclusão da execução.NotaSe uma tarefa falhar, clique com o botão direito no nó com falha e selecione View Log para visualizar o log.

Enviar dados do MaxCompute
Etapa 1: Construir o fluxo de push de dados
Clique duas vezes em Data Push Demo Flow. Na tela de edição, você verá os nós criados. Arraste um nó Batch Synchronization para ser o nó upstream do Assignment Node. Conecte os nós Sync MySQL data to ODPS, Query ODPS data e Push ODPS data em sequência.
Etapa 2: Configurar o nó de sincronização em lote
Configure o nó Synchronize MySQL data to ODPS para sincronizar os dados de teste gravados no MySQL durante a fase Prepare data para a fonte de dados ODPS, para uso posterior.
-
Clique duas vezes no nó
Synchronize data from MySQL to ODPSpara configurar o nó de sincronização em lote.Parâmetro
Configuração
Exemplo
Source
Data Source
MySQL

Data Source Name
Selecione a fonte de dados MySQL que você criou.
My Resource Group
Selecione um grupo de recursos serverless.
Destination
Destination
MaxCompute (ODPS)
Data Source Name
Selecione a fonte de dados MaxCompute vinculada ao workspace.
Após concluir a configuração, o sistema testa automaticamente a conectividade entre a fonte de dados e o grupo de recursos. Após o teste ser bem-sucedido, clique em Próximo para configurar os detalhes de origem e destino.
-
Configure a origem e o destino.
Parâmetro
Configuração
Exemplo
Data Source
Data Sources
Mantenha as configurações padrão:
MySQL.
Selecione a fonte de dados MySQL que você criou.

Table
Selecione a tabela
orders.Data Filter
Configure conforme necessário. Para este tutorial, deixe em branco.
Shard Key
Use uma coluna da tabela de origem como chave de divisão. Recomendamos usar a chave primária ou uma coluna indexada.
Data Preview
Visualize os dados recuperados da fonte de dados MySQL para verificar se atendem às suas expectativas.
Destination
Data Sources
Mantenha as configurações padrão:
MaxCompute (ODPS).
Selecione a fonte de dados MaxCompute vinculada ao workspace.

Tunnel Resource Group
Isso especifica a Cota do Tunnel. O padrão é "Public transmission resources", a cota gratuita para o MaxCompute.
schema
Clique em Generate Destination Table Schema para criar a tabela de destino.
Table
Para carregar dados incrementais diariamente, configure uma partição baseada em data. Por exemplo, defina a partição
ptcomo${bizdate}.Partition Information
LimparWrite Method
Após configurar a origem e o destino, você pode existing data before writing (Insert Overwrite) os campos.

-
Configure o controle de canal.
Map Fields with the Same Name: A concorrência real durante a execução pode ser menor ou igual a este valor devido a limitações de recursos ou à natureza da tarefa. A cobrança é baseada na concorrência real. Para este tutorial, uma concorrência de 2 é suficiente.
Expected Maximum Concurrency: Use o limitador para proteger a carga de leitura/gravação na origem ou no destino. Se você não configurar o limitador, o sistema fornecerá o desempenho máximo de transferência que o hardware atual suporta. Para este tutorial, o limitador não está configurado.
Bandwidth Throttling: Dados incorretos não são tolerados.
Policy for Dirty Data Records: Este recurso está desativado por padrão. É necessária uma concorrência de 8 ou superior para ativá-lo.

-
Configure as propriedades de agendamento.
Após configurar a tarefa de integração, clique em Properties no lado direito da página. No painel Properties, configure os seguintes parâmetros.
-
Distributed Execution:
Scheduling Parameter:
bizdateParameter name:
$[yyyymmdd-1]
Parameter Value:
08:00Scheduling Time: Na lista suspensa, selecione Permitir Independentemente do Status de Execução.
Rerun: Selecione o grupo de recursos de agendamento que você criou.
Resource Group for Scheduling: Selecione o nó raiz do workspace para usá-lo como dependência upstream para a tarefa de sincronização em lote.
-
Clique em
Salvar para salvar o nó de sincronização em lote Synchronize MySQL data to ODPS.
Etapa 3: Configurar o nó de atribuição
Fontes de dados ODPS não suportam o uso de um nó ODPS SQL para consultar dados e enviá-los para um nó de push de dados usando Dependencies. Use um nó de atribuição para consultar os dados ODPS e, em seguida, utilize Input and Output Parameters para enviar os dados ao nó de push de dados.
-
Clique duas vezes no nó
Query ODPS datapara abrir sua página de configuração.Na lista suspensa Language na parte superior do editor, selecione ODPS SQL.
-
Insira o código ODPS SQL.
-- Create a subquery with a ranking to calculate the descending order of sales within each partition (pt). -- The DENSE_RANK() function assigns a unique rank to each row within a partition. -- Rows with equal sales values receive the same rank, and no rank numbers are skipped. -- -- Subquery details: -- 1. Select the required columns from the 'orders' table: order_id, category, sales, datetime, and pt (business date). -- 2. Use DENSE_RANK() OVER (PARTITION BY pt ORDER BY sales DESC): -- PARTITION BY pt specifies that ranking is performed separately for each unique value in the pt column. -- ORDER BY sales DESC sorts rows within each partition by sales in descending order. -- The 'rank' column stores the sales rank of each row within its partition. -- -- Main query details: -- The main query selects records from the ranked subquery where the rank is 3 or less. -- This ensures that for each business date, only the top three orders by sales are retrieved. SELECT order_id, -- Select the order ID category, -- Select the product category sales, -- Select the sales amount datetime, -- Select the order time pt -- Select the business date FROM ( SELECT order_id, category, sales, datetime, pt, DENSE_RANK() OVER (PARTITION BY pt ORDER BY sales DESC) AS rank -- Calculate sales rank within each pt partition FROM orders WHERE pt = '${bizdate}' -- Filter records for the specified business date ) AS ranked_orders WHERE rank <= 3 -- Keep only the top three records by sales for each pt partition
-
Após inserir o código SQL, clique em Input and Output Parameters à direita. No painel Propriedades, configure os seguintes parâmetros.
Scheduling Settings:
08:00.Scheduling Time: Selecione um grupo de recursos serverless que você tenha criado.
Resource Group for Scheduling: Verifique se o nó pai é um nó de sincronização em lote
MySQL to ODPS.-
Parent Nodes: Clique em Input and Output Parameters após os parâmetros de saída para adicionar um parâmetro de saída como valor para um parâmetro de entrada de um nó descendente.

Clique em
Salvar para salvar o nó ODPS data query.
Etapa 4: Configurar o nó de push de dados
Configure os Add de Input Parameters para obter o parâmetro outputs do nó de atribuição upstream e, em seguida, use esses parâmetros no Corpo e envie-os para o alvo.
-
Clique duas vezes no nó de push de dados chamado
ODPS Data Push, clique em Input and Output Parameters e configure as seguintes definições no painel Scheduling.Tipo de parâmetro
Configuração
Exemplo
Scheduling
Scheduling Parameter
curdate
Parameter name
$[yyyymmddhh:mi:ss]Parameter Value
Schedule
DD
Scheduling Frequency
08:00NotaEste tutorial usa 08:00 como exemplo para garantir que os dados sejam enviados ao destino às 08:00. Configure um horário diferente conforme necessário.
Scheduling Time
Permitir Independentemente do Status de Execução.
Rerun
Resource Group
Selecione um grupo de recursos criado após a data de lançamento do recurso de push de dados. Se o seu grupo de recursos foi criado antes desta data, envie um ticket para atualizá-lo.
NotaO recurso de nó de push de dados foi lançado em 28 de junho de 2024. Para mais notas de versão do DataWorks, consulte Release History.

Resource Group for Scheduling
Input and Output Parameters
Clique em Input Parameters para adicionar parâmetros de entrada para este nó:
Add:
inputsParameter name: Selecione o parâmetro de saída outputs do nó upstream
ODPS Data Query.

-
Após configurar as Value Source, configure o conteúdo do push de dados da seguinte forma.
Scheduling Settings: Selecione o destino necessário na lista suspensa Destination. Se o destino não existir, clique em Destination no canto inferior direito da lista suspensa para criar um novo.
Para saber como obter um Webhook de bot do Lark, consulte Configure a Lark Webhook trigger.
Para saber como obter um Webhook do Teams, consulte Use Microsoft Teams workflows to create an incoming Webhook.
Título:
ODPS Data Push-
Corpo: Configure conforme necessário. Para detalhes, consulte Configure push content.
NotaNo corpo da mensagem, você pode usar os nomes dos campos do resultado da consulta do nó de atribuição upstream diretamente como placeholders.
Parâmetro
Descrição
Create Destination
Os destinos suportados incluem DingTalk, Lark, WeChat Work, Microsoft Teams e Email.
Type
Especifique um nome personalizado com base nos requisitos do seu negócio.
Object
Obtenha a URL do webhook para bots do DingTalk, Lark, WeChat Work ou Microsoft Teams, ou os detalhes SMTP para email, nas respectivas plataformas.
Nota Após concluir a configuração, clique no ícone
Save para salvar o nó de push de dados.
Etapa 5: Testar o fluxo de push de dados do MaxCompute
Após configurar todos os nós no fluxo de push de dados, teste o fluxo antes de confirmá-lo e implantá-lo.
Clique duas vezes para abrir a página do workflow
Data_Push_Demo.-
Selecione o nó
Sync Data from MySQL to ODPS, clique com o botão direito e selecione Executar nó atual e seus nós downstream, e aguarde a conclusão da execução.NotaSe uma tarefa falhar, clique com o botão direito no nó com falha e selecione Webhook para visualizar o log.

Enviar e publicar
Após configurar o fluxo de push de dados, clique duas vezes no diagrama do processo de negócios Data Push Demo Example para verificar se todos os fluxos de push de dados estão funcionando corretamente. Quando os testes forem bem-sucedidos, envie e publique os fluxos.
Na página de edição do fluxo de push de dados, clique no ícone
para executar o processo de negócios.Depois que o ícone
aparecer em todos os nós do fluxo de push de dados, clique no ícone
para enviar o fluxo.Na caixa de diálogo View Log, selecione os nós a serem enviados e marque a caixa de seleção Submission.
Clique em Ignore I/O Inconsistency Alerts.
Após enviar o fluxo, publique seus nós na página de publicação. Para mais informações, consulte Publish Task.
Próximas etapas
Um push de dados é executado em seu ciclo de agendamento configurado. No Operation Center, gerencie os nós de tarefa de um push de dados publicado. Para detalhes, consulte Basic operations on scheduled tasks.
e selecione