Este tópico descreve informações básicas sobre o Realtime Compute for Apache Flink.
O que é o Realtime Compute for Apache Flink?
O valor comercial dos dados atinge seu pico no momento exato da geração. Por isso, a capacidade de processar dados assim que surgem representa um diferencial valioso para as empresas. O Realtime Compute for Apache Flink foi desenvolvido para atender aos rigorosos requisitos de pontualidade e velocidade desses cenários. Com o aumento da demanda por alta tempestividade e operacionalidade dos dados, os sistemas de software precisam processar volumes maiores em intervalos cada vez menores. Nas aplicações tradicionais de big data, o processamento de transações online (OLTP) e a análise de dados offline ocorrem em momentos distintos, seguindo um cronograma predefinido. Somado ao grande volume de dados a processar, esse método frequentemente resulta em ciclos de computação que duram horas ou até dias. Fica evidente que essa abordagem já não atende às necessidades dos negócios atuais, nos quais dados em streaming exigem processamento em tempo real. Atrasos no processamento podem comprometer a precisão e o desempenho de cargas de trabalho sensíveis ao tempo, como análises de big data em tempo real, controle de riscos e alertas, previsões instantâneas e transações financeiras.
O Realtime Compute for Apache Flink utiliza tecnologias de computação em tempo real para reduzir o tempo de processamento de dados e diminuir significativamente os custos. Trata-se de uma solução ideal para as demandas atuais de computação em tempo real. Isso é possível graças aos seguintes recursos:
-
Streams de dados em tempo real e ilimitados
Atualmente, os dados são gerados continuamente e devem ser consumidos em ordem cronológica para gerar insights acionáveis. Por exemplo, quando um visitante acessa um site, logs são gerados. Esses logs são transmitidos continuamente para o Realtime Compute for Apache Flink e só param quando o visitante fecha o site. O Realtime Compute for Apache Flink ingere e processa esses dados de log em tempo real para fornecer insights imediatos.
-
Computação contínua e eficiente
O Realtime Compute for Apache Flink é um sistema orientado a eventos, no qual streams ilimitados de eventos ou dados acionam continuamente cálculos em tempo real. Cada nova ingestão de dados dispara uma nova tarefa. Combinado com streams contínuos, isso forma um pipeline de computação ininterrupto.
-
Integração em tempo real de dados em streaming
Os dados processados são gravados no armazenamento de sua escolha em tempo real. Por exemplo, o Realtime Compute for Apache Flink pode gravar resultados diretamente em uma instância do ApsaraDB RDS para gerar e visualizar relatórios. Essa capacidade também torna o Realtime Compute for Apache Flink uma source de dados viável para processos e armazenamentos downstream.
O que são dados em streaming?
A geração de big data pode ser vista como uma série de eventos discretos. Esses eventos formam streams de eventos ou de dados ao longo de uma linha do tempo. Dados em streaming têm escala menor que dados offline e originam-se de fluxos contínuos de eventos. Os tipos a seguir são exemplos de dados em streaming:
Arquivos de log gerados por aplicativos móveis e web
Dados de compras online
Atividades de jogadores dentro de jogos
Dados provenientes de redes sociais
Dados de telemetria de dispositivos conectados em pregões ou data centers geoespaciais
Informações de serviços geoespaciais
Dados de telemetria de dispositivos e instrumentos
Quais são as diferenças entre computação em tempo real e processamento em lote?
Esta seção descreve as diferenças entre computação em tempo real e processamento em lote sob a perspectiva de usuários e produtos.
-
Processamento em lote
Usuários ou sistemas iniciam implantações de processamento em lote sob demanda ou em intervalos agendados. Isso gera um atraso significativo entre a coleta de dados e a produção dos resultados. A maioria dos serviços tradicionais de computação e análise de dados baseia-se no modelo de processamento em lote. Sistemas de extração, transformação e carga (ETL) ou OLTP carregam dados em armazenamentos, que posteriormente são consultados por serviços downstream. A figura a seguir ilustra o modelo tradicional de processamento em lote.

O procedimento tradicional de processamento em lote consiste nas etapas a seguir:
-
Carregue os dados.
Para executar o processamento em lote, o sistema de computação precisa carregar os dados antecipadamente. Utilize um sistema ETL ou OLTP como sistema de computação. Com base nos métodos de armazenamento e cálculo, o sistema realiza otimizações de consulta, análises e computações sobre os dados carregados.
-
Envie uma solicitação.
Um sistema inicia uma implantação de computação, como uma implantação SQL do MaxCompute ou do Hive, e envia solicitações ao sistema de computação. Em seguida, o sistema agenda nós de computação para lidar com essas solicitações. Todo o processo pode levar vários minutos ou até horas. Esse atraso prolongado antes da obtenção de insights torna o modelo inadequado para aplicações sensíveis ao tempo.
NotaNo processamento em lote, ajuste instruções SQL a qualquer momento conforme suas necessidades comerciais. Também é possível executar consultas ad hoc para modifique e consultar dados instantaneamente.
-
Retorne os dados de resultado.
Após a conclusão da implantação de computação, os resultados retornam como um conjunto de resultados, geralmente bastante extenso. Esses dados precisam então ser gravados no armazenamento ou em serviços downstream. Esse processo pode levar vários minutos ou até horas para ser concluído.
-
-
Computação em tempo real
Eventos acionam continuamente implantações de computação em tempo real. Os resultados geralmente são obtidos com atraso mínimo. Devido à simplicidade do modelo, a computação em tempo real é considerada um serviço de valor agregado ao processamento em lote na maioria dos cenários de big data. Ela fornece cálculos sobre streams de dados com baixa latência. A figura a seguir ilustra o modelo de computação em tempo real.

-
Envie streams de dados em tempo real.
Ferramentas de integração de dados enviam dados em streaming para armazenamentos de streaming, como Message Queue e DataHub, em tempo real. Para minimizar a latência na integração, os dados em streaming são enviados em microlotes em tempo real.
Os dados em streaming são gravados continuamente nos armazenamentos sem necessidade de pré-carregamento. O Realtime Compute for Apache Flink não retém dados já processados; eles são descartados imediatamente após o processamento.
-
Publique um rascunho de streaming.
No processamento em lote, uma implantação de computação só pode ser iniciada após a conclusão da integração de dados. Já uma implantação de computação em tempo real funciona como um serviço residente. Ao iniciar uma implantação do Realtime Compute for Apache Flink, o sistema começa a computar os dados em streaming e gera resultados assim que um pequeno lote entra no armazenamento de streaming. Ele também divide grandes lotes em lotes menores, processando-os incrementalmente. Isso reduz efetivamente a latência de processamento. Para uma implantação de streaming, defina a lógica computacional e publique o rascunho da implantação no Realtime Compute for Apache Flink.
NotaDurante a execução de uma implantação de streaming em tempo real, modifique a lógica da implantação se necessário, mas a alteração não terá efeito imediato. Reinicie a implantação para aplicar a modificação. Dados já calculados não podem ser recalculados.
-
Gere streams de dados de resultado em tempo real.
No processamento em lote, os dados de resultado só podem ser gravados simultaneamente em um sistema online após o processamento de todos os dados acumulados. Uma implantação de streaming entrega dados de resultado a um sistema online ou em lote imediatamente após o processamento de cada microlote de registros.
A computação em tempo real segue esta sequência:
Um usuário envie um rascunho de computação em tempo real.
Dados em streaming acionam a implantação de computação em tempo real.
Os dados de resultado da implantação são gravados continuamente no sistema de destino.
-
A tabela a seguir descreve as diferenças entre processamento em lote e computação em tempo real.
|
Item |
Processamento em lote |
Computação em tempo real |
|
Integração de dados |
O sistema de processamento deve carregar os dados antecipadamente. |
O Realtime Compute for Apache Flink carrega dados em tempo real. |
|
Lógica computacional |
A lógica pode ser alterada e os dados reprocessados. |
Se a lógica for alterada, os dados não podem ser reprocessados, pois o streaming ocorre em tempo real. |
|
Escopo dos dados |
Consulte e processe todos ou a maioria dos dados de um conjunto. |
Consulte e processe o registro mais recente ou dados dentro de uma janela deslizante. |
|
Volume de dados |
Processa grandes quantidades de dados. |
Processa registros individuais ou microlotes compostos por poucos registros. |
|
Desempenho |
O processamento leva vários minutos ou horas. |
O processamento leva milissegundos ou segundos. |
|
Análise |
A análise é complexa. |
A análise baseia-se em funções de resposta simples, agregações e métricas deslizantes. |