O recurso de push de dados é um serviço de dados do DataWorks que recupera informações de uma fonte de dados por meio de consultas SQL e as envia para um Webhook ou endereço de e-mail. Configure facilmente pushes periódicos de dados de negócios para múltiplos Webhooks ou endereços de e-mail. Este tópico descreve como configurar e utilizar o recurso de push de dados.
Visão geral
Agende tarefas periódicas para enviar dados a um Webhook ou endereço de e-mail de destino.
Fontes de dados e canais suportados
-
Tipos de fontes de dados suportados:
MySQL (compatível com StarRocks e Doris)
PostgreSQL (compatível com Snowflake e Redshift)
Hologres
MaxCompute (ODPS)
ClickHouse
Os canais de push suportados incluem DingTalk, Lark, WeCom, e-mail e Teams.
Limitações
Cada instrução SELECT no serviço de push de dados retorna no máximo 10.000 linhas.
-
Limites de tamanho de dados para diferentes destinos:
No DingTalk, o tamanho dos dados enviados não deve exceder 20 KB.
No Lark, o tamanho dos dados enviados não deve exceder 20 KB, e cada imagem deve ser menor que 10 MB.
No WeCom, cada bot pode enviar até 20 mensagens por minuto.
No Teams, o conteúdo enviado não deve exceder 28 KB.
Para e-mail, cada tarefa de push de dados suporta apenas um corpo de e-mail. Para mais limites, consulte as restrições SMTP do seu serviço 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), Singapura, Japão (Tóquio), EUA (Vale do Silício), EUA (Virgínia) e Alemanha (Frankfurt).
Pré-requisitos
Certifique-se de ter criado uma fonte de dados. Para detalhes, consulte Gerenciamento de Fontes de Dados.
Verifique se o acesso à rede pública está habilitado para o seu grupo de recursos. Para detalhes, consulte Visão geral da solução de conectividade de rede.
Etapa 1: Criar uma tarefa de push
-
Acesse o Serviço de Dados.
Faça login no console do DataWorks. Na barra de navegação superior, selecione a região onde reside sua fonte de dados. 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 push de dados.
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.
Etapa 2: Configurar a tarefa de push
Preparação (opcional)
Para ajudar você a realizar rapidamente um push de dados, este tópico usa um exemplo para explicar como enviar resultados de consulta de uma tabela do MaxCompute. Neste exemplo, você utiliza o recurso de push de dados para enviar informações de uma tabela chamada sales para um canal especificado. Os dados incluem o valor diário de vendas de cada departamento e a variação desse valor em relação ao dia anterior. Caso queira seguir os passos deste exemplo, crie primeiro a tabela sales em seu ambiente. O código a seguir fornece as instruções para criar a tabela sales e inserir dados nela. Para mais informações sobre como criar uma tabela, consulte Criar e usar tabelas do MaxCompute.
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);
Selecionar uma fonte de dados
Selecione o Data Source Type, o Data Source Name e o Data Source Environment para determinar o ambiente da tabela de dados para o push. Escolha o ambiente da fonte de dados conforme o push seja destinado a uma tabela de desenvolvimento ou de produção. Se estiver realizando um exercício prático, confirme o ambiente onde a tabela sales criada durante a 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 obter uma lista dos tipos de fontes de dados suportados, consulte Fontes de dados e canais suportados.
Escrever SQL de consulta
-
Defina o escopo dos dados e recupere as informações.
Na seção Edit Query SQL, utilize 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 preenchidos automaticamente 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 manualmente os parâmetros clicando em Add Parameter.
Também é possível configurar variáveis personalizadas no SQL usando o formato
${variable_name}. Essa variável é um Assignment Parameters (os Assignment Parameters podem receber expressões de tempo e constantes) para implementar entrada dinâmica de parâmetros no seu código. Para mais informações, consulte Configurar conteúdo de push.-- 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 push de dados suporta consultas paginadas usando um Next Token. Clique em na barra de ferramentas do editor de código para obter instruções de uso.
Configurar conteúdo de push
Na seção Content to Push, edite o conteúdo da mensagem usando os formatos Markdown e Table. Esse conteúdo será enviado para o 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.
Se o destino do push for um endereço de e-mail, o conteúdo personalizado nas seções Markdown e Table é enviado como anexos. O corpo do e-mail é renderizado e exibido na mensagem de e-mail.
Caso o destino do push não seja um endereço de e-mail, o conteúdo personalizado nas seções Markdown e Table será exibido como corpo principal da mensagem do Webhook. O Email Body ficará oculto na mensagem de push do Webhook.
Conteúdo Markdown
-
Usar variáveis de parâmetro: Ao compor o conteúdo do push, adicione Assignment Parameters e Output Parameters ao texto rico usando o formato
${parameter_name}. Essas variáveis são substituídas pelos dados atribuídos correspondentes ou resultados da consulta SQL quando a tarefa de push de dados é executada.Assignment Parameters: Atribua uma Constant ou uma Time Expression de parâmetro de agendamento à variável na seção .
Output Parameters: Estes parâmetros correspondem aos nomes de campos ou alias da sua consulta SQL, como
A, B, ...em uma instrução tipoSELECT 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 texto rico para configurar o conteúdo da mensagem. Ao enviar para o Lark, utilize o recurso de menção @ para notificar as pessoas relevantes. Clique no ícone
para alternar para o modo de origem Markdown e use <at id="all" />ou<at email="username@example.com" />para realizar essa ação.
-
Além dos recursos acima, o Markdown também suporta funções como Adicionar Imagem e inserção de Emoji do DingTalk.
Na área de conteúdo de 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 por 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}';.
Conteúdo de Tabela
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 for um Webhook do Lark, clique no ícone
à direita de uma coluna de tabela criada para abrir a caixa de diálogo Modify Field. Nesta caixa de diálogo, ajuste o Field, o Display Name, o Display Style e a Condition para criar efeitos de exibição diversificados para o conteúdo enviado.Field: Alterne para outro campo de Output Parameters.
Display Name: O nome que você deseja mostrar 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 em uma tabela com um valor de comparação configurado. Personalize a cor de exibição para valores que atendem (Yes) ou não (No) à condição, e especifique um Additional Unicode. Condition: Habilite 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. Também é possível configurar um Appended Identifier.
Nota-
O método de criação de tabelas varia conforme o canal. O suporte a conteúdo de tabela para os diferentes canais é o seguinte:
DingTalk: Suporta tabelas Markdown e as tabelas integradas do push de dados. Não suporta a renderização das configurações de Display Style e Condition configuradas na caixa de diálogo Modify Field. Além disso, o DingTalk mobile não suporta a exibição de tabelas.
Lark: Suporta tabelas Markdown e integradas, 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.
Corpo do e-mail
O push de dados do DataWorks permite adicionar um corpo de e-mail ao conteúdo do push. Ao editar o corpo do e-mail, observe o seguinte:
Cada tarefa de push de dados suporta apenas um corpo de e-mail.
O corpo do e-mail é renderizado apenas quando o destino do push é um endereço de e-mail. Se o destino não for um e-mail, o Email Body fica oculto na mensagem de push do Webhook.
Etapa 3: Configurar definições de push
Antes de configurar as Push Settings, clique no ícone
no canto inferior esquerdo da página Service Development para abrir o painel de configurações. Alterne para a aba Destination Management e clique em Create Destination para criar um destino. Os tipos de canal suportados incluem DingTalk, Lark, WeCom, Teams e E-mail.
Criar um destino Webhook
Ao clicar em Create Destination, configure os seguintes parâmetros:
Type: Selecione um tipo de canal. As opções incluem 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 um Webhook de bot do Lark, consulte Configurar um gatilho de Webhook do Lark.
Para saber como obter um Webhook do Teams, consulte Usar fluxos de trabalho do Microsoft Teams para criar um Webhook de entrada.
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 as Push Settings, clique no ícone
no canto inferior esquerdo da página Service Development para abrir o painel de configurações. Alterne para a aba Destination Management e clique em Create Destination para criar um destino.
Ao clicar em Create Destination, configure os seguintes parâmetros:
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, podendo ser alterado manualmente.
Sender Address: O endereço de envio de e-mail.
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.
Configurações de push
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 específicos de configuração são:
-
Configuração de ciclo de agendamento e horário de execução: Defina o ciclo de agendamento e o horário específico para o serviço de push de dados enviar o conteúdo editado.
Ciclo de agendamento
Tempo 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 do push.
Scheduling Frequency: Month
Specified Time: 1º de cada mês
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 do push.
Scheduling Frequency: Week
Specified Time: Segunda-feira
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 do push.
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
NotaEscolha entre dois modos de push:
-
Push em um intervalo horário especificado.
-
Push em horas e minutos especificados.
Push em intervalo horário:
Start Time: 00:00
Time Interval: 1 hora
End Time: 23:59
Horário real de execução: Envia uma vez a cada 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 01:10 diariamente.
-
-
Timeout Definition: Define um limite de tempo para a execução da tarefa. A tarefa é encerrada se exceder esse limite.
Default Value: Com a configuração Default Value, o tempo limite da tarefa é ajustado dinamicamente com base na carga do sistema, variando de 3 a 7 dias. Tarefas que atingem o tempo limite são encerradas.
Exemplo: Se você definir um tempo limite Custom de 1 hora, a tarefa de push será encerrada caso execute por mais de 1 hora após o início agendado.
-
Valid From: Configure o intervalo de tempo durante o qual a tarefa de push de dados permanece ativa.
Permanent: A tarefa de push de dados permanece efetiva permanentemente, sem limitação por um intervalo de datas de vigência.
Example: Se configurar um intervalo de Specified Time de 01/01/2024 a 31/12/2024, 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 para a tarefa de push de dados. Para mais informações sobre grupos de recursos, consulte Gerenciamento de Grupos de Recursos.
-
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 ou não.
Desativado: Se todas as variáveis usadas no conteúdo do push, exceto os parâmetros de entrada, estiverem vazias, a mensagem não será enviada. Utilize cláusulas
WHEREouHAVINGno SQL para filtrar dados. Se as condições de filtro não forem atendidas e o resultado da consulta estiver vazio, a tarefa de push será ignorada automaticamente e nenhuma mensagem será enviada.
-
Destination: Envie o conteúdo configurado para um destino selecionado. Escolha apenas entre destinos de push existentes, configurados em Data Push Task Management.
NotaAo enviar para um Webhook do DingTalk, adicione uma palavra-chave na seção da configuração 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 em ambiente 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 passar por um teste de push no ambiente de desenvolvimento antes de poder ser submetida (Submit) e publicada (Publish).
Etapa 5: Publicar a tarefa de push
Gerenciar versões de tarefas
Após confirmar que os testes durante o desenvolvimento foram bem-sucedidos, clique em Submit. Se a tarefa de push não for submetida, ela permanecerá em estado de rascunho e nenhuma nova versão será gerada.
-
Depois de submeter o serviço, uma nova versão é gerada. No painel Version à direita, localize a versão submetida que está Can Be Published e clique em Publish. Publicar a tarefa ativa seu agendamento conforme definido nas Push Settings.
No painel Version, gerencie a tarefa de push de dados da seguinte forma.
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 tarefas publicadas. Para mais informações, consulte Gerenciar tarefas de push de dados.
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 para aquela 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 maneira 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, realize 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 Service Development leva você à página Name da tarefa selecionada.
Testar uma tarefa publicada
Acesse a página Version Details de uma das seguintes maneiras:
Método 1: Escolha .
Método 2: Escolha .
Testar uma tarefa publicada confirma que ela executa 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 alvo na lista suspensa, marque a caixa de seleção Push to Destination conforme necessário e clique em Start Test.
Perguntas frequentes
P: O push de dados suporta pushes sob demanda?
R: Para pushes ocasionais e sob demanda, utilize a função Test com a opção Push to Destination selecionada. Para pushes recorrentes condicionais, desative a configuração Data Push Tasks; assim, a tarefa só será executada se sua consulta SQL retornar dados.