O recurso de data push é um service do DataWorks que recupera dados de uma fonte de dados por meio de consultas SQL e os envia para um Webhook ou endereço de e-mail. Configure envios periódicos de dados de negócio para múltiplos Webhooks ou endereços de e-mail de forma simples. Este tópico descreve como configurar e utilizar o recurso de data push.
Overview
Agende tarefas periódicas para enviar dados a um Webhook ou endereço de e-mail de destino.
Supported data sources and channels
-
Tipos de fonte de dados suportados:
MySQL (compatível com StarRocks e Doris)
PostgreSQL (compatível com Snowflake e Redshift)
Hologres
MaxCompute (ODPS)
ClickHouse
Os canais de envio suportados incluem DingTalk, Lark, WeCom, e-mail e Teams.
Limitations
Cada instrução SELECT no service de data push pode retornar no máximo 10.000 linhas.
-
Para recuperar mais de 10.000 linhas, utilize uma das seguintes alternativas:
Use o comando MaxCompute Tunnel para exportar dados para o seu ambiente local e processá-los posteriormente.
Use a integração de dados do DataWorks para exportar dados para outro sistema de armazenamento.
-
Limites de tamanho de dados por destino:
Para DingTalk, o tamanho dos dados enviados não pode ultrapassar 20 KB.
Para Lark, o tamanho dos dados enviados não pode ultrapassar 20 KB, e cada imagem deve ter menos de 10 MB.
Para WeCom, cada bot pode enviar até 20 mensagens por minuto.
Para Teams, o conteúdo enviado não pode ultrapassar 28 KB.
Para e-mail, cada tarefa de data push suporta apenas um corpo de e-mail. Para mais restrições, consulte as limitações SMTP do seu service de e-mail.
O recurso de data push 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, Japan (Tokyo), US (Silicon Valley), US (Virginia) e Germany (Frankfurt).
Prerequisites
Verifique se uma fonte de dados foi criada. Para mais detalhes, consulte Data Source Management.
Verifique se o acesso à rede pública está ativado para seu grupo de recursos. Para mais detalhes, consulte Network connectivity solution overview.
Step 1: Create a push task
-
Acesse Data Service.
Faça login no . Na barra de navegação superior, selecione a região onde sua fonte de dados reside. No painel de navegação à esquerda, escolha . Selecione o workspace desejado na lista suspensa e clique em Go to Data Service.
-
Crie uma tarefa de data push.
No painel de navegação à esquerda de Data Services, escolha para acessar a página Data Push. Clique no ícone
, selecione Create Data Push Task, insira um nome para a tarefa e clique em OK. A página de configuração da tarefa será aberta.
Step 2: Configure the push task
Preparation (optional)
Para ajudá-lo a realizar um data push rapidamente, este tópico usa um exemplo que demonstra como enviar resultados de consulta de uma tabela MaxCompute. Neste exemplo, o recurso de data push é utilizado para enviar dados de uma tabela chamada sales para um canal específico. Os dados incluem o valor de vendas diário de cada departamento e a variação em relação ao dia anterior. Para acompanhar as etapas deste exemplo, crie previamente a tabela sales em seu ambiente. O código a seguir contém as instruções para criar a tabela sales e inserir dados nela. Para mais informações sobre como criar uma tabela, 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);
Select a data source
Selecione o Data Source Type, o Data Source Name e o Data Source Environment para determinar o ambiente da tabela de dados do data push. Escolha o ambiente de fonte de dados com base em se o data push é para uma tabela de desenvolvimento ou de produção. Ao realizar o exercício prático, confirme o ambiente onde a tabela sales criada na fase de preparação está localizada.
Por exemplo, defina Data source type como odps, Data source name como MaxCompute_Source e Data source environment como production environment. Para criar uma nova fonte de dados, clique no link abaixo do campo Data source name.
Para a lista de tipos de fonte de dados suportados, consulte Supported data sources and channels.
Write query SQL
-
Defina o escopo dos dados e recupere-os.
Na seção Edit Query SQL, use consultas SQL de tabela única ou múltiplas tabelas para definir os dados a serem enviados. Por exemplo:
-- 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';Após escrever o SQL, os campos de resultado são automaticamente preenchidos na seção . Se a análise dos parâmetros de saída falhar ou estiver incorreta, desative a opção Automatically Parse Parameters e adicione os parâmetros manualmente em Add Parameter.
Configure variáveis personalizadas no SQL usando o formato
${variable_name}. Essa variável é um Assignment Parameters(Assignment Parameters aceitam expressões de tempo e constantes) para implementar entrada dinâmica de parâmetros no seu código. Para mais informações, 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 tabelas grandes, o data push suporta consultas paginadas usando um Next Token. Clique em na barra de ferramentas do editor de código para obter as instruções de uso.
Configure push content
Na seção Content to Push, edite o conteúdo da mensagem nos formatos Markdown e Table. Esse conteúdo será enviado ao Webhook.
Após personalizar o título da mensagem no campo Title, clique em Add na área do corpo. Em seguida, escolha Markdown, Table ou Email Body para editar o conteúdo. O exemplo a seguir mostra uma configuração de amostra. Clique em Preview na barra de ferramentas para visualizar o formato da mensagem.
Quando o destino do envio é um endereço de e-mail, o conteúdo configurado nas seções Markdown e Table é enviado como anexo. O corpo do e-mail é renderizado e exibido na mensagem de e-mail.
Quando o destino do envio não é um endereço de e-mail, o conteúdo configurado nas seções Markdown e Table será exibido como corpo principal da mensagem do Webhook. O Email Body ficará oculto na mensagem de push via Webhook.
Markdown content
-
Uso de variáveis de parâmetro: Ao compor o conteúdo do push, adicione Assignment Parameters e Output Parameters ao rich text usando o formato
${parameter_name}. Essas variáveis são substituídas pelos dados atribuídos correspondentes ou pelos resultados da consulta SQL quando a tarefa de data push é executada.Assignment Parameters: Atribua uma Constant ou uma Time Expression de parâmetro de agendamento à variável na seção .
Output Parameters: Esses parâmetros correspondem aos nomes de campo ou aliases da sua consulta SQL, como
A, B, ...em uma instrução comoSELECT A, B, ... FROM TABLE. Eles representam os dados consultados.
-
Mencionar membros com @: Configure esta opção ao enviar para um Webhook do Lark para mencionar automaticamente usuários específicos com @.
Por padrão, o modo Markdown usa rich text para configurar o conteúdo da mensagem. Ao enviar para o Lark, use o recurso de menção com @ para notificar as pessoas relevantes. Clique no ícone
para alternar para o modo source do Markdown e use <at id="all" />ou<at email="username@example.com" />para alcançar esse resultado.
-
Além dos recursos acima, o Markdown também suporta funcionalidades como Add Image e inserção de DingTalk Emoji.
Na área de conteúdo do push, selecione Markdown como tipo de modelo. No corpo, use a sintaxe
${parameter_name}para referenciar parâmetros definidos no painel Input Parameters à direita. Por exemplo, se você escrever${creator}e${subscriber}no corpo, e definir creator como "admin" e subscriber como "user" na aba Input parameters, as variáveis serão substituídas automaticamente pelos seus valores quando a tarefa for executada. Os parâmetros de entrada também suportam variáveis de tempo de agendamento. Por exemplo, defina date como${yyyymmdd}e previous_date como${yyyymmdd-1}. A seção Write Query SQL também pode referenciar parâmetros de entrada para valores dinâmicos, por exemplo,SELECT id, department, revenue FROM sales WHERE ds='${date}';.Se o conteúdo do push contiver tags HTML (por exemplo, texto colado de um editor externo), poderá ocorrer um erro ao alternar para o modo rich text:
Error parsing markdown: Unexpected closing tag. Nesse caso, alterne para o modo source no editor Markdown, remova as tags HTML do conteúdo deixando apenas texto Markdown puro e volte ao modo rich text. O conteúdo será renderizado corretamente.
Table content
Clique em Add Column para aumentar o número de colunas na tabela. Em seguida, associe os Parameters às colunas correspondentes.
-
Quando o destino do push é um Webhook do Lark, clique no ícone
à direita de uma coluna de tabela criada para abrir a caixa de diálogo Modify Field. Nessa caixa de diálogo, ajuste o Field, o Display Name, o Display Style e a Condition para criar efeitos de exibição variados para o conteúdo enviado.Field: Alterne para outro campo de Output Parameters.
Display Name: O nome a ser exibido no cabeçalho da tabela ao enviar para ferramentas de colaboração.
Display Style: Adicione um prefixo ou sufixo fixo antes ou depois do Value na tabela.
Condition: Compara o Value de uma tabela com um valor de comparação configurado. Personalize a cor de exibição para valores que atendam à condição (Yes) ou não (No), e especifique um Additional Unicode. Condition: Ative a lógica condicional, defina um operador (como
>=) e um limiar (como60). Se a condição for atendida, selecione Change to green. Caso contrário, selecione Change to red. Configure também um Appended Identifier.
Nota-
O método de criação de tabelas varia de acordo com o canal. O suporte a conteúdo de tabela por canal é o seguinte:
DingTalk: Suporta tabelas Markdown e as tabelas nativas do data push. Não renderiza as configurações de Display Style e Condition da caixa de diálogo Modify Field. Além disso, o DingTalk mobile não suporta a exibição de tabelas.
Lark: Suporta tanto tabelas Markdown quanto tabelas nativas, incluindo a renderização de estilos de exibição e condições personalizadas.
WeCom: Suporta o envio de tabelas Markdown, mas não as renderiza.
Teams mobile: Suporta o envio de tabelas Markdown e consegue renderizá-las.
Email body
O DataWorks data push suporta a adição de um corpo de e-mail ao conteúdo do push. Ao editar o corpo do e-mail, observe o seguinte:
Cada tarefa de data push suporta apenas um corpo de e-mail.
O corpo do e-mail é renderizado somente quando o destino do push é um endereço de e-mail. Se o destino não for um endereço de e-mail, o Email Body ficará oculto na mensagem de push via Webhook.
Etapa 3: Configure as Push Settings
Antes de configurar Push Settings, clique no ícone
no canto inferior esquerdo da página Service Development para abrir o painel de configurações. Acesse a aba Destination Management e clique em Create Destination para criar um destino. Os tipos de canais suportados incluem DingTalk, Lark, WeCom, Teams e Email.
Criar um destino Webhook
Ao clicar em Create Destination, configure os seguintes parâmetros:
Type: Selecione o tipo de canal. As opções disponíveis são DingTalk, Lark, WeCom e Teams.
Destination Name: Insira um nome personalizado para o novo destino de push.
Webhook: A URL do Webhook do canal de push selecionado.
Para saber como obter o Webhook do bot Lark, consulte Configure a Lark Webhook trigger.
Para saber como obter o Webhook do Teams, consulte Use Microsoft Teams workflows to create an incoming Webhook.
A lista suspensa Type também suporta o canal Email. Após concluir a configuração, clique em OK.
Criar um destino de e-mail
Antes de configurar Push Settings, clique no ícone
no canto inferior esquerdo da página Service Development para abrir o painel de configurações. Acesse a aba Destination Management e clique em Create Destination para criar um destino.
Ao clicar em Create Destination, configure os seguintes parâmetros obrigatórios:
Type: Selecione Email.
Destination Name: Insira um nome personalizado para o novo destino de push.
SMTP Host: O endereço do servidor de e-mail.
SMTP Port: O número da porta do servidor de e-mail. O valor padrão é 465 e pode ser alterado manualmente.
Sender Address: O endereço de e-mail do remetente.
SMTP Account: A conta de e-mail completa.
SMTP Password: A senha da conta de e-mail.
Receiver Address: O endereço de e-mail de destino.
Push settings
Clique em Push Settings no lado direito para configurar o ciclo de agendamento, os recursos de agendamento e os destinos de push da tarefa. Os itens de configuração são os seguintes:
-
Configuração do ciclo de agendamento e horário de execução: Configure o ciclo de agendamento e o horário específico para que o service de push de dados envie o conteúdo editado.
Ciclo de agendamento
Horário especificado
Horário de agendamento
Exemplo
Month
Especifique os dias do mês em que a tarefa de push deve ser executada.
O horário de agendamento da tarefa de push de dados no dia configurado.
Scheduling Frequency: Month
Specified Time: 1st of every month
Data Timestamp: 08:00
Horário real de execução: A tarefa de push é executada às 08:00 no dia 1º de cada mês.
Week
Especifique os dias da semana em que a tarefa de push deve ser executada.
O horário de agendamento da tarefa de push de dados no dia configurado.
Scheduling Frequency: Week
Specified Time: Monday
Data Timestamp: 09:00
Horário real de execução: A tarefa de push é executada às 09:00 toda segunda-feira.
Day
NotaO ciclo diário agenda a tarefa para execução todos os dias.
O horário de agendamento da tarefa de push de dados no dia configurado.
Scheduling Frequency: Day
Data Timestamp: 08:00
Horário real de execução: A tarefa de push é executada às 08:00 todos os dias.
Hour
NotaHá dois modos de push disponíveis:
Push em intervalo de horas especificado.
Push em horas e minutos especificados.
Push em intervalo de horas:
Start Time: 00:00
Time Interval: 1 hour
End Time: 23:59
Horário real de execução: Envia uma vez por hora, das 00:00 às 23:59, diariamente.
Push em horas e minutos especificados:
Hour: 0, 1
Specified Minute: 10
Horário real de execução: Envia às 00:10 e às 01:10 diariamente.
-
Timeout Definition: Define um limite de tempo para a execução da tarefa. A tarefa é encerrada caso esse limite seja excedido.
Default Value: Com a configuração Default Value, o timeout da tarefa é ajustado dinamicamente com base na carga do sistema, com valor entre 3 e 7 dias. Tarefas que atingem o timeout são encerradas automaticamente.
Exemplo: Se você definir um timeout Custom de 1 hora, a tarefa de push será encerrada caso sua execução ultrapasse 1 hora após o horário de início agendado.
-
Valid From: Configure o intervalo de tempo durante o qual a tarefa de push de dados estará ativa.
Permanent: A tarefa de push de dados permanece ativa indefinidamente, sem restrição de período de vigência.
Example: Se você configurar um intervalo Specified Time de 2024-01-01 a 2024-12-31, a tarefa de push será executada conforme o ciclo de agendamento configurado dentro desse período.
Resource Group for Scheduling: Configure um Exclusive resource group for scheduling ou um serverless resource group (grupo de recursos de uso geral) para fornecer recursos de agendamento à tarefa de push de dados. Para mais informações sobre grupos de recursos, consulte Resource Group Management.
-
Push Every Time: Controla se uma notificação de push deve ser enviada quando a consulta SQL não retornar dados.
Ativado (padrão): O push é executado em cada execução agendada, independentemente de a consulta retornar dados.
Desativado: Se todas as variáveis usadas no conteúdo de push, exceto os parâmetros de entrada, estiverem vazias, a mensagem não é enviada. Use as cláusulas
WHEREouHAVINGno SQL para filtrar os dados. Caso as condições de filtro não sejam atendidas e o resultado da consulta seja vazio, a tarefa de push é ignorada automaticamente e nenhuma mensagem é enviada.
-
Destination: Envie o conteúdo configurado para um destino selecionado. Apenas destinos de push já existentes podem ser escolhidos, configurados em Data Push Task Management.
NotaAo enviar para um Webhook do DingTalk, adicione uma palavra-chave na seção das configurações do bot. Certifique-se de que o conteúdo do push inclua essa palavra-chave para que o envio seja bem-sucedido.
Etapa 4: Testar a tarefa de push
Após criar a tarefa de push de dados, clique no botão Save na barra de ferramentas para salvar a configuração atual. Em seguida, clique em Test para realizar um teste na fase de desenvolvimento e verificar se o push de dados funciona corretamente. Atribua manualmente valores constantes às variáveis para o teste.
Uma tarefa de push de dados deve ser aprovada em um teste de push no ambiente de desenvolvimento antes de poder ser Submit e Publish.
Etapa 5: Publicar a tarefa de push
Gerenciar versões da tarefa
Após confirmar que os testes no ambiente de desenvolvimento foram bem-sucedidos, clique em Submit. Se a tarefa de push não for enviada, ela permanecerá em estado de rascunho e nenhuma nova versão será gerada.
-
Após enviar o service, uma nova versão é gerada. No painel Version à direita, localize a versão enviada com status Can Be Published e clique em Publish. Ao publicar a tarefa, o agendamento definido nas Push Settings é ativado.
No painel Version, gerencie a tarefa de push de dados conforme descrito a seguir.
Status
Ações
Description
Publish
Data Push Task Management
Acessa a página Data Push Task Management, onde é possível visualizar informações detalhadas sobre as tarefas publicadas. Para mais informações, consulte Manage data push tasks.
Can Be Published
Publish
Publica a versão correspondente da tarefa.
Abandoned
Descarta a versão correspondente da tarefa e altera seu status para Abandoned.
Off-Line, Abandoned
Version Details
Visualize as informações de configuração e o conteúdo de push correspondente dessa versão da tarefa de push de dados.
Roll Back
Restaura esta versão, tornando-a a configuração atual.
NotaAs operações Version Details e Roll Back estão disponíveis e funcionam de forma idêntica para tarefas em todos os status.
Gerenciar tarefas de push
Após a publicação bem-sucedida de uma tarefa de push de dados, clique em Data Push Task Management na coluna Operation do painel Version, ou acesse a página de lista Data Push Tasks pelo caminho .
Esta página lista todas as Data Push Tasks publicadas e exibe detalhes como ID, Name, Data Source Name, Data Source Environment, Node Mode, Resource Group for Scheduling, Owner, Deployer e Published Time. Na coluna Operation, execute as seguintes operações nas tarefas de push de dados publicadas:
|
Ações |
Description |
|
Unpublish |
Coloca a tarefa selecionada offline. |
|
Test |
Acessa a página Test Data Push Task, onde é possível testar uma tarefa publicada. |
Clicar no ícone
na coluna Name direciona você para a página Version Details da tarefa selecionada.
Testar uma tarefa publicada
Acesse a página Data Push Test por um dos seguintes caminhos:
Método 1: Escolha .
Método 2: Escolha .
Testar uma tarefa publicada confirma que ela é executada corretamente e que o destino recebe os dados conforme esperado.
Na página Data Push Test, selecione ou pesquise a tarefa de push de dados desejada na lista suspensa, marque a caixa de seleção Push to Destination conforme necessário e clique em Start Test.
FAQ
P: O push de dados suporta envios sob demanda?
R: Para envios pontuais e sob demanda, use a função Test com a opção Push to Destination selecionada. Para envios recorrentes condicionais, desative a configuração Push Every Time; a tarefa será executada somente se a consulta SQL retornar dados.