Os nós Flink SQL Streaming no DataWorks Data Studio permitem definir lógica de processamento em tempo real em SQL padrão. Eles oferecem gerenciamento de estado robusto, tolerância a falhas, semântica de tempo de evento e de processamento, além de integração com sistemas como Kafka e HDFS. Este tópico descreve como desenvolver, configurar e executar um nó Flink SQL Streaming para processar dados em tempo real.
Pré-requisitos
Um recurso de computação do Realtime Compute for Apache Flink está associado na Administração. Para mais informações, consulte Bind a compute engine.
Um nó Flink SQL Streaming foi criado. Para mais informações, consulte Create a node for a scheduling workflow.
-
As permissões necessárias da OpenAPI foram granted the required OpenAPI permissions ao usuário RAM ou à função RAM que o DataWorks usa para chamar as APIs do Realtime Compute for Apache Flink. Essas permissões permitem que o DataWorks envie e implante tarefas de nó em um cluster Flink.
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": ["stream:CreateDeployment", "stream:UpdateDeployment", "stream:GetDeployment", "stream:DeleteDeployment"], "Resource": ["*"] } ] }
Limitações
Este nó não é compatível com workflows; desenvolva-o e execute-o como um nó independente.
Somente grupos de recursos serverless são suportados. Grupos de recursos exclusivos legados para agendamento não são compatíveis.
Etapa 1: Desenvolver o nó Flink SQL Streaming
Na página de edição do nó Flink SQL Streaming, desenvolva a tarefa do nó.
Desenvolver código SQL
No editor SQL, defina variáveis no formato ${variable_name}. Atribua valores a essas variáveis na seção Script Parameters do painel Real-Time configuration para passar parâmetros dinamicamente em cenários de agendamento. Exemplo:
--Create the source table datagen_source. CREATE TEMPORARY TABLE datagen_source( name VARCHAR ) WITH ( 'connector' = 'datagen' ); --Create the result table blackhole_sink. CREATE TEMPORARY TABLE blackhole_sink( name VARCHAR ) WITH ( 'connector' = 'blackhole' ); --Insert data from the source table into the result table. INSERT INTO blackhole_sink SELECT name FROM datagen_source WHERE LENGTH(name) > ${name_length};
Neste exemplo, o valor do parâmetro name_length é 5. Esse parâmetro filtra os dados para processar apenas registros cujo nome tenha mais de 5 caracteres.
Etapa 2: Configurar o nó Flink SQL Streaming
Configure os parâmetros a seguir para o nó Flink SQL Streaming conforme seus requisitos de negócio.
Configurar recursos Flink
Na seção Flink resource information do painel Real-Time configuration, configure os parâmetros abaixo com base no Resource Mode selecionado. Para mais informações, consulte Configure Flink resources.
|
Parâmetro |
Descrição |
|
Flink cluster |
Recurso de computação Flink totalmente gerenciado associado na Administração. |
|
Flink engine version |
Versão do mecanismo a ser usada. Selecione uma versão conforme suas necessidades. |
|
Resource Group |
Selecione um serverless resource group com conectividade de rede ao Flink. |
|
O Resource Mode oferece suporte aos dois modos a seguir. Para mais informações, consulte Configure Flink resources.
Configure os parâmetros com base no modo de recurso selecionado. Compreender a arquitetura do Flink ajuda a configurar os parâmetros com mais eficácia. Para mais informações, consulte Flink Architecture | Apache Flink. |
|
|
Basic mode |
|
|
Job Manager CPU |
O JobManager requer pelo menos 0,5 núcleo de cpu e 2 GiB de memória para operação estável. A configuração recomendada é 1 núcleo de cpu e 4 GiB de memória, com máximo de 16 núcleos de cpu. Ajuste conforme a escala do cluster e a complexidade do job. |
|
Job Manager Memory |
A memória do JobManager afeta a capacidade de agendamento e gerenciamento. O intervalo recomendado é de 2 GiB a 64 GiB. Ajuste conforme a escala do cluster e os requisitos do job. |
|
Task Manager CPU |
A cpu do TaskManager influencia a capacidade de processamento de tarefas. Recomenda-se pelo menos 0,5 núcleo de cpu e 2 GiB de memória, preferencialmente 1 núcleo de cpu e 4 GiB de memória. O máximo é 16 núcleos de cpu. Ajuste conforme seus requisitos. |
|
Task Manager Memory |
A memória do TaskManager determina o volume de dados e o desempenho de processamento. O tamanho da memória deve ser de pelo menos 2 GiB e pode chegar a 64 GiB. |
|
Concurrency |
Número de execuções paralelas de tarefas em um job Flink. Maior concorrência melhora a velocidade de processamento e a utilização de recursos. Defina este valor com base nos recursos do cluster e nas características do job. |
|
Number of slots per TaskManager |
Quantidade de slots por TaskManager, que define quantas tarefas podem ser executadas em paralelo. Ajuste os slots para otimizar a utilização de recursos e o processamento paralelo. |
|
Expert mode |
|
|
Job Manager CPU |
O JobManager requer no mínimo 0,25 núcleo de cpu e 1 GiB de memória para operação estável, com limite de 16 núcleos de cpu. Ajuste conforme a escala do cluster e a complexidade do job. |
|
Job Manager Memory |
A memória do JobManager impacta a capacidade de agendamento e gerenciamento. O intervalo recomendado varia de 1 GiB a 64 GiB. Ajuste conforme a escala do cluster e os requisitos do job. |
|
Number of slots per TaskManager |
Quantidade de slots por TaskManager, que determina quantas tarefas podem rodar simultaneamente. Ajuste os slots para otimizar a utilização de recursos e o processamento paralelo. |
|
Multiple SSG mode |
Por padrão, todos os operadores compartilham um único grupo de compartilhamento de slots, o que impede a configuração individual de recursos para cada operador. Ative o Multiple SSG mode para atribuir um slot independente a cada operador e, em seguida, configure os recursos no slot correspondente. |
(Opcional) Configurar parâmetros de script
Na seção Script Parameters do painel Real-Time configuration, localizado no painel de navegação à direita, clique em Add parameters e edite o Parameter name e o Parameter Value para usá-los dinamicamente no código.
(Opcional) Configurar parâmetros de execução do Flink
Na seção Flink running parameters do painel Real-Time configuration, no painel de navegação à direita, configure os parâmetros a seguir. Para mais informações, consulte Configure Flink running parameters.
|
Parâmetro |
Descrição |
|
System Checkpoint Interval |
Intervalo de tempo em que o Flink realiza checkpoints periódicos. Um intervalo menor reduz o tempo de recuperação de falhas, mas aumenta a sobrecarga do sistema. Se deixado em branco, os checkpoints ficam desativados. |
|
Minimum time interval between two system checkpoints |
Tempo mínimo de espera entre checkpoints consecutivos, evitando que checkpoints frequentes afetem o desempenho. Isso garante um intervalo mínimo entre dois checkpoints quando o paralelismo máximo para checkpoints é 1. |
|
State Data Expiration Time |
Tempo máximo de retenção dos dados de estado sem acesso ou atualização. O padrão é 36 horas; após esse período, as informações de estado expiram automaticamente e são limpas para otimizar o armazenamento e o uso de recursos. Importante
Este valor padrão baseia-se nas melhores práticas de cloud e difere do padrão open-source (0, significando que o estado nunca expira). |
|
Others |
Parâmetros adicionais de execução do Flink. Exemplo: Nota
Para mais informações sobre configurações de parâmetros, consulte Configure Flink running parameters. |
Após configurar a tarefa, clique em Save para salvar a tarefa do nó.
Etapa 3: (Opcional) Depurar o nó Flink SQL Streaming
Antes de implantar o nó em produção, depure-o executando o código do nó com dados simulados carregados. Isso permite verificar a lógica SQL e os dados upstream/downstream sem implantar a tarefa no Operation Center.
O recurso de depuração está disponível mediante lista de permissões. Para usar este recurso, envie um ticket solicitando acesso.
Configurar informações de recursos Flink
Na seção Flink resource information do painel Run Configuration, no lado direito da página de edição do nó, configure os parâmetros conforme descrito na tabela a seguir.
|
Parâmetro |
Descrição |
|
Flink Debug Cluster |
Cluster de sessão Flink para executar a tarefa de depuração. Obrigatório. A lista suspensa exibe clusters de sessão existentes no recurso de computação atual e seus status de execução. Somente clusters no estado Running podem ser selecionados. Caso não haja clusters disponíveis na lista, clique em Create Cluster para acessar o console do Realtime Compute for Apache Flink e criar um cluster de sessão. |
|
Flink Engine Version |
Versão do mecanismo Flink do cluster de sessão selecionado. Exibida automaticamente com base na seleção do cluster. |
|
Timeout |
Tempo máximo de execução para uma única tarefa de depuração, em minutos. Padrão: 30 minutos. A tarefa de depuração é interrompida automaticamente após essa duração. |
Ao alternar o recurso de computação do nó atual, o Flink Debug Cluster selecionado e os dados de depuração carregados são limpos. Selecione novamente um cluster e recarregue os dados.
Preparar dados de depuração
Na seção Debug Data do painel Run Configuration, prepare dados simulados para as tabelas de origem referenciadas no código.
Clique em Generate Template. O sistema analisa as tabelas de origem referenciadas no SQL atual e gera registros correspondentes aos nomes das tabelas na lista abaixo. Dados carregados anteriormente não são apagados.
Na coluna Actions de um registro de nome de tabela, clique em Download Template para baixar um modelo CSV compatível com o esquema da tabela de origem.
Preencha os dados de depuração localmente seguindo a ordem das colunas do modelo e salve o arquivo no formato CSV.
Na coluna Actions de um registro de nome de tabela, clique em Upload e selecione o arquivo CSV preenchido para envio. Após o upload bem-sucedido, a coluna Status exibirá Enabled.
(Opcional) Após o upload bem-sucedido, clique em Preview para visualizar o conteúdo dos dados no painel inferior. Para modificar os dados, carregue novamente um arquivo CSV para substituir os dados existentes.
Caso não deseje que os dados simulados de uma tabela de origem específica participem da sessão de depuração atual, clique em Disable para alterar o status para Disabled. Para reativá-los, clique em Enable. Apenas dados com status Enabled são usados na sessão de depuração.
Antes de carregar dados de depuração, selecione primeiro um Flink Debug Cluster. Caso contrário, você receberá uma solicitação para selecionar primeiro um recurso de computação.
Os dados de depuração suportam apenas o formato CSV, com tamanho máximo de arquivo de 1 MB. A primeira linha do arquivo CSV deve conter os nomes das colunas, sendo recomendada a codificação UTF-8.
Executar a tarefa de depuração
Com os dados de depuração preparados, clique no botão Run na barra de ferramentas do editor (ou pressione F8). O sistema envia o código, os dados simulados e as informações de recursos Flink para o cluster de sessão selecionado para execução.
Se o código usar parâmetros no formato ${variable_name}, certifique-se de ter atribuído valores às variáveis na seção Script Parameters. Durante a depuração, o sistema substitui os placeholders no código pelos valores atribuídos antes do envio.
Visualizar resultados da depuração
Após a execução da tarefa de depuração, a área de resultados na parte inferior do nó exibe as seguintes informações:
Código: Código SQL enviado ao mecanismo Flink (com substituição de variáveis aplicada).
Logs: Logs de execução e informações de erro.
Resultados da consulta: Dados de saída da tarefa de depuração.
Etapa 4: Iniciar o nó Flink SQL Streaming
-
Implante o nó Flink SQL Streaming.
A tarefa deve ser implantada no Operation Center antes de poder ser executada. Siga as instruções na tela para implantar o nó. Para mais informações, consulte Deploy a node.
NotaEsta operação também implanta a tarefa no workspace Flink VVP. Você pode visualizar as tarefas implantadas pelo DataWorks em Flink VVP Operation Center > Job O&M.
-
Inicie o nó Flink SQL Streaming.
Após a implantação da tarefa, clique em Go to operation and maintenance abaixo de Deploy to production environment. No Operation Center, acesse , localize a tarefa que deseja iniciar e clique em Start na coluna Operation para iniciar a tarefa em tempo real e visualizar seu status de execução.