- Análises›
- Amazon Managed Service for Apache Flink›
- Perguntas frequentes
Perguntas frequentes sobre o Amazon Managed Service for Apache Flink
Geral
Abrir tudoCom o Amazon Managed Service for Apache Flink, é possível transformar e analisar dados de transmissão em tempo real com o Apache Flink. O Apache Flink é uma estrutura e um mecanismo de código aberto para o processamento de fluxos de dados. O Amazon Managed Service for Apache Flink reduz a complexidade de criar, gerenciar e integrar aplicações do Apache Flink com outros serviços da AWS.
O Amazon Managed Service for Apache Flink se encarrega de tudo o que é necessário para executar continuamente as aplicações de transmissão e escalar automaticamente para atender ao volume e ao throughput de dados recebidos. Com o Amazon Managed Service for Apache Flink, não há servidores a serem gerenciados nem taxa mínima ou custo de configuração, e você paga apenas pelos recursos que suas aplicações de transmissão utilizam.
Você pode usar o Amazon Managed Service for Apache Flink em vários casos de uso para processar dados continuamente, obtendo insights em segundos ou minutos, em vez de esperar dias ou até semanas. O Amazon Managed Service for Apache Flink permite que você crie rapidamente aplicações de processamento de streams completas para análise de logs, análise de clickstream, Internet das Coisas (IoT), tecnologia de anúncios, jogos e muito mais. Os quatro casos de uso mais comuns são o ETL - streaming extract, transform and load (extração, transformação e carregamento), a geração contínua de métricas, a análise responsiva em tempo real e a consulta interativa de fluxos de dados.
ETL de transmissão
Com aplicações de ETL de transmissão, você pode limpar, aprimorar, organizar e transformar dados brutos antes de carregar seu data lake ou data warehouse em tempo real, reduzindo ou eliminando as etapas de ETL em lote. Essas aplicações podem armazenar em buffer pequenos registros em arquivos maiores antes da entrega, além de realizar associações complexas em fluxos e tabelas. Por exemplo, você pode criar um aplicativo que lê continuamente os dados do sensor de IoT armazenados no Amazon Managed Streaming for Apache Kafka (Amazon MSK), organizar os dados por tipo de sensor, remover dados duplicados, normalizar os dados de acordo com um esquema especificado e, em seguida, entregar os dados ao Amazon Simple Storage Service (Amazon S3).
Geração contínua de métricas
Com aplicações de geração contínua de métricas, você pode monitorar e compreender como está a tendência dos seus dados com o passar do tempo. Suas aplicações podem agregar dados de transmissão em informações essenciais e integrá-los com facilidade a bancos de dados de relatórios e serviços de monitoramento a fim de atender suas aplicações e usuários em tempo real. Com o Amazon Managed Service for Apache Flink, é possível usar o código Apache Flink (em Java, Scala, Python ou SQL) para gerar continuamente análises de séries temporais ao longo de janelas temporais. Por exemplo, você pode criar um placar ao vivo para um jogo para dispositivos móveis computando os melhores jogadores a cada minuto e enviando ao Amazon DynamoDB. Você também pode rastrear o tráfego para seu site ao calcular o número de visitantes únicos do site a cada cinco minutos e enviar os resultados processados para o Amazon Redshift.
Análise responsiva em tempo real
As aplicações de análise responsiva em tempo real enviam alarmes ou notificações em tempo real quando determinadas métricas atingem limites predefinidos ou, em casos mais avançados, quando a aplicação detecta anomalias usando algoritmos de machine learning (ML). Com essas aplicações, é possível responder imediatamente às alterações em seus negócios em tempo real, como prever o abandono do usuário em aplicações móveis e identificar sistemas degradados. Por exemplo, uma aplicação pode calcular a disponibilidade ou a taxa de sucesso de uma API do cliente com o passar do tempo e enviar os resultados ao Amazon CloudWatch. Você pode criar outra aplicação para procurar por eventos que atendam a determinados critérios e notificar automaticamente os clientes certos usando o Amazon Kinesis Data Streams e o Amazon Simple Notification Service (Amazon SNS).
Análise interativa de fluxos de dados
A análise interativa ajuda a transmitir a exploração de dados em tempo real. Com programas ou consultas ad hoc, é possível inspecionar fluxos do Amazon MSK ou do Amazon Kinesis Data Streams e visualizar a aparência dos dados nesses fluxos. Por exemplo, você pode visualizar como uma métrica em tempo real que calcula a média em uma janela de tempo se comporta e enviar os dados agregados a um destino de sua escolha. A análise interativa também ajuda no desenvolvimento iterativo de aplicações de processamento de fluxos. As consultas que você cria são atualizadas continuamente à medida que novos dados chegam. Com o Amazon Managed Service for Apache Flink, você pode implantar essas consultas para execução contínua com ajuste de escala automático e backups de estado duráveis habilitados.
Conceitos básicos
Abrir tudoSim, usando os conectores do Apache Flink DataStream, as aplicações do Amazon Managed Service for Apache Flink podem usar o AWS Glue Schema Registry, um atributo sem servidor do AWS Glue. Você pode integrar o Apache Kafka, o Amazon MSK e o Amazon Kinesis Data Streams, como um coletor ou uma fonte, com suas workloads do Amazon Managed Service for Apache Flink. Visite o Guia do desenvolvedor do AWS Glue Schema Registry para começar e saber mais.
Principais conceitos
Abrir tudoUma aplicação é a entidade do Amazon Managed Service for Apache Flink com a qual você trabalha. As aplicações do Amazon Managed Service for Apache Flink leem e processam continuamente dados de transmissão em tempo real. Grave o código da aplicação em uma linguagem compatível com o Apache Flink para processar dados de transmissão recebidos e gerar a saída. Em seguida, o Amazon Managed Service for Apache Flink grava a saída em um destino configurado.
Cada aplicação consiste em três componentes principais:
- Entrada: a entrada é a fonte de streaming da aplicação. Na configuração de entrada, mapeie as fontes de streaming para fluxos de dados. Os dados fluem das fontes de dados para os fluxos de dados. Você processa dados desses fluxos de dados usando o código da aplicação, enviando dados processados para destinos ou fluxos de dados subsequentes. Adicione entradas ao código das aplicações do Apache Flink e dos cadernos do Studio e à API em aplicações do Amazon Managed Service for Apache Flink.
- Código da aplicação: o código da aplicação é uma série de operadores do Apache Flink que processam entradas e produzem saídas. Em sua forma mais simples, o código da aplicação pode ser um único operador do Apache Flink que lê um fluxo de dados associado a uma fonte de streaming e grava em outro fluxo de dados associado a uma saída. Para um caderno do Studio, isso poderia ser uma consulta simples de seleção do Flink SQL, com os resultados exibidos no contexto dentro do caderno. Você pode escrever o código Apache Flink nas linguagens compatíveis com aplicações do Amazon Managed Service for Apache Flink ou cadernos do Studio.
- Saída: você pode configurar, como opção, uma saída de aplicação para manter os dados em um destino externo. Adicione essas saídas ao código das aplicações do Amazon Managed Service for Apache Flink e dos cadernos Studio.
Gerenciamento de aplicativos
Abrir tudoA AWS fornece várias ferramentas que você pode usar para monitorar suas aplicações do Amazon Managed Service for Apache Flink, incluindo acesso ao Flink Dashboard para aplicações do Apache Flink. É possível configurar algumas dessas ferramentas para que façam o monitoramento para você. Para obter mais informações sobre como monitorar sua aplicação, explore os seguintes guias para desenvolvedores:
- Monitoramento do Amazon Managed Service para Apache Flink no Guia do desenvolvedor do Amazon Managed Service para Apache Flink.
- Monitoramento do Amazon Managed Service para Apache Flink no Guia do desenvolvedor do Amazon Managed Service para Apache Flink Studio.
O Amazon Managed Service for Apache Flink precisa de permissões para ler os registros de fontes de dados de transmissão que você especifica nas aplicações. O Amazon Managed Service for Apache Flink também precisa de permissões para gravar a saída das aplicações nos destinos especificados na configuração de saída dessas aplicações. É possível conceder essas permissões criando perfis do AWS Identity and Access Management (IAM) que o Amazon Managed Service for Apache Flink pode assumir. As permissões concedidas a esse perfil determinam o que o Amazon Managed Service for Apache Flink pode fazer quando o serviço assume o perfil. Para obter mais informações, consulte os seguintes guias:
- Concessão de permissões no Guia do desenvolvedor do Amazon Managed Service para Apache Flink.
- Concessão de permissões no Guia do desenvolvedor do Amazon Managed Service para Apache Flink Studio.
O Amazon Managed Service for Apache Flink escala de maneira elástica a aplicação para acomodar o throughput de dados do fluxo de origem e a complexidade da consulta para a maioria dos cenários. O Amazon Managed Service for Apache Flink provisiona a capacidade na forma de KPUs da Amazon. Uma KPU fornece 1 vCPU e 4 GB de memória.
Para aplicações Apache Flink e cadernos do Studio, o Amazon Managed Service for Apache Flink atribui 50 GB de armazenamento de aplicações em execução por KPU que sua aplicação usa para pontos de verificação e está disponível para uso por meio de um disco temporário. O ponto de verificação é um backup atualizado de uma aplicação em execução que é usado para recuperação imediata após uma interrupção da aplicação. Você também pode controlar a execução paralela do Amazon Managed Service for Apache Flink para tarefas de aplicações do Apache Flink (como ler de uma fonte ou executar um operador) usando os parâmetros Parallelism e ParallelismPerKPU na API. O parâmetro Parallelism define o número de instâncias simultâneas de uma tarefa. Todos os operadores, fontes e coletores executam com um paralelismo definido no valor de 1, por padrão. O parâmetro Parallelism per KPU define a quantidade do número de tarefas paralelas que podem ser agendadas por KPU da aplicação, definido no valor de 1, por padrão. Para obter mais informações, consulte Scaling no Guia do desenvolvedor do Amazon Managed Service for Apache Flink.
Para obter informações sobre as melhores práticas para o Apache Flink, consulte a seção Melhores práticas do Guia do desenvolvedor do Amazon Managed Service para Apache Flink. A seção abrange as práticas recomendadas para lidar com tolerância a falhas, performance, registro em log, codificação e muito mais.
Para obter informações sobre as práticas recomendadas do Amazon Managed Service for Apache Flink Studio, consulte a seção Best Practices do Guia do desenvolvedor do Amazon Managed Service for Apache Flink Studio. Além das práticas recomendadas, a seção contém exemplos para aplicações SQL, Python e Scala, requisitos para implantar seu código como uma aplicação de processamento de fluxo em execução contínua, performance, registro em log e muito mais.
Sim. É possível acessar os recursos subjacentes de uma Amazon VPC. Você pode aprender a configurar seu aplicativo para acesso à VPC na seção Usando uma Amazon VPC do Guia do desenvolvedor do Amazon Managed Service for Apache Flink.
As aplicações do Amazon Managed Service for Apache Flink e os cadernos do Amazon Managed Service for Apache Flink Studio configurados para acessar recursos em determinada VPC não têm acesso à Internet como parte da configuração padrão. Você pode aprender a configurar o acesso à Internet para seu aplicativo na seção Acesso à Internet e a serviços do Guia do desenvolvedor do Amazon Managed Service para Apache Flink.
Preço e faturamento
Abrir tudoCom o Amazon Managed Service for Apache Flink, você paga somente pelo que usar. Não há recursos para provisionar ou custos iniciais associados ao Amazon Managed Service for Apache Flink.
É cobrada uma taxa por hora com base no número de KPUs usadas para executar a aplicação de transmissão. Uma KPU única é uma unidade de capacidade de processamento de fluxos composta por 1 vCPU e 4 GB de memória. O Amazon Managed Service for Apache Flink escala automaticamente o número de KPUs necessárias para sua aplicação de processamento de fluxo, já que as demandas de memória e de computação variam em resposta à complexidade de processamento e ao throughput de dados de transmissão processados.
Para aplicações do Apache Flink e do Apache Beam, você paga por uma KPU única adicional por aplicação para orquestração de aplicações. As aplicações do Apache Flink e do Apache Beam também são cobradas pelo armazenamento de aplicações em execução e pelos backups de aplicações duráveis. O armazenamento de aplicações em execução é usado pelos recursos de processamento com estado no Amazon Managed Service for Apache Flink e é cobrado por GB/mês. Os backups de aplicações duráveis são opcionais, cobrados por GB/mês e oferecem um ponto de recuperação do ponto anterior no tempo para aplicações.
No Amazon Managed Service for Apache Flink Studio, no modo de desenvolvimento ou interativo, você paga uma KPU adicional para orquestração de aplicações e 1 KPU para desenvolvimento interativo. Você também paga pela execução do armazenamento da aplicação. Você não paga por backups de aplicações duráveis.
Para obter mais informações sobre preços, consulte a página de preços do Amazon Managed Service para Apache Flink.
Para aplicações do Apache Flink e do Apache Beam, será cobrado um mínimo de 2 KPUs e o armazenamento de aplicação em execução de 50 GB, caso a aplicação do Amazon Managed Service for Apache Flink esteja em execução.
Para cadernos do Amazon Managed Service for Apache Flink, você pagará no mínimo por 3 KPUs e 50 GB de armazenamento de aplicação em execução, se a aplicação estiver em execução.
Desenvolver aplicações do Apache Flink
Abrir tudoO Apache Flink é uma estrutura e mecanismo de código aberto para processamento de dados em stream e em lote. Ele facilita a criação de aplicações de transmissão porque fornece operadores robustos e resolve os principais problemas de transmissão, como o processamento duplicado. O Apache Flink fornece distribuição de dados, comunicação e tolerância a falhas para computação distribuída em fluxos de dados.
Você pode começar baixando as bibliotecas de código aberto que incluem o AWS SDK, o Apache Flink e os conectores de serviços da AWS. Obtenha instruções sobre como baixar as bibliotecas e criar seu primeiro aplicativo no Guia do desenvolvedor do Amazon Managed Service para Apache Flink.
Você escreve o código do Apache Flink usando streams de dados e operadores de stream. Os streams de dados da aplicação são a estrutura de dados que são executadas durante o processamento em relação ao uso do seu código. Os dados fluem continuamente das origens para os fluxos de dados da aplicação. Um ou mais operadores de fluxo são usados para definir seu processamento nos fluxos de dados da aplicação, incluindo transformação, partição, agregação, associação e janelas. Os fluxos de dados e operadores podem ser conectados em cadeias seriais e paralelas. Veja abaixo um pequeno exemplo usando um pseudocódigo abaixo.
DataStream <GameEvent> rawEvents = env.addSource(
New KinesisStreamSource(“input_events”));
DataStream <UserPerLevel> gameStream =
rawEvents.map(event - > new UserPerLevel(event.gameMetadata.gameId,
event.gameMetadata.levelId,event.userId));
gameStream.keyBy(event -> event.gameId)
.keyBy(1)
.window(TumblingProcessingTimeWindows.of(Time.minutes(1)))
.apply(...) - > {...};
gameStream.addSink(new KinesisStreamSink("myGameStateStream"));
Os operadores usam um fluxo de dados do aplicativo como entrada e enviam dados processados para um fluxo de dados do aplicativo como saída. Os operadores podem ser conectados para criar aplicações com várias etapas e não exigem conhecimento avançado de sistemas distribuídos para implementação e operação.
O Amazon Managed Service for Apache Flink oferece suporte a todos os operadores do Apache Flink que podem ser usados para resolver uma grande variedade de casos de uso, como map, KeyBy, agregações, janelas, junções e muito mais. Por exemplo, o operador de mapas permite executar um processamento arbitrário, pegando um elemento de um fluxo de dados de entrada e produzindo outro elemento. O KeyBy organiza logicamente os dados usando uma chave específica para que os pontos de dados semelhantes sejam processados juntos. As agregações executam o processamento em várias chaves, como sum, min e max. O Window Join junta dois fluxos de dados em uma chave e janela específicas.
Será possível criar operadores personalizados se eles não atenderem às suas necessidades. Encontre mais exemplos na seção de operadores do Guia do desenvolvedor do Amazon Managed Service for Apache Flink. Você pode encontrar uma lista completa dos operadores do Apache Flink na documentação do Apache Flink.
Você pode configurar integrações pré-criadas fornecidas pelo Apache Flink com o mínimo de código ou criar sua própria integração para se conectar a praticamente qualquer fonte de dados. As bibliotecas de código aberto baseadas no Apache Flink oferecem suporte a fontes e destinos de transmissão, ou coletores, para processar a entrega de dados. Isso também inclui suporte a aprimoramento de dados por meio de conectores assíncronos de E/S. Alguns desses conectores incluem o seguinte:
- Fontes de dados de transmissão: Amazon Managed Streaming for Apache Kafka (Amazon MSK), Amazon Kinesis Data Streams Destinos ou coletores: Amazon Kinesis Data Streams
- Amazon Kinesis Data Firehose, Amazon DynamoDB, Amazon Elasticsearch Service e Simple Storage Service (Amazon S3) (por meio de integrações do coletor de arquivos)
Sim. Você pode usar as aplicações do Amazon Managed Service for Apache Flink para replicar dados entre o Amazon Kinesis Data Streams, Amazon MSK e outros sistemas. Um exemplo fornecido em nossa documentação demonstra como ler um tópico do Amazon MSK e escrever em outro.
Você pode adicionar uma origem ou um destino à sua aplicação tendo como base um conjunto de primitivos que permitem ler e gravar arquivos, diretórios, soquetes ou qualquer item que você possa acessar pela Internet. O Apache Flink fornece essas primitivas para fontes de dados e coletores de dados. Os primitivos vêm com configurações como a capacidade para ler e gravar dados continuamente ou de uma única vez, de forma assíncrona ou sincronizada, e muito mais. Por exemplo, você pode configurar uma aplicação para ler continuamente do Amazon S3 ao estender a integração existente de origens baseadas em arquivos.
As aplicações do Apache Flink no Amazon Managed Service for Apache Flink usarão um modelo de entrega “exatamente uma vez” se uma aplicação for criada usando operadores idempotentes, incluindo fontes e coletores. Isso significa que os dados processados afetarão os resultados posteriores somente uma vez.
Por padrão, as aplicações do Amazon Managed Service for Apache Flink usam a semântica exatamente uma vez do Apache Flink. A aplicação será compatível com a semântica de processamento exatamente uma vez se você criar suas aplicações usando fontes, operadores e coletores que utilizam a semântica exatamente uma vez do Apache Flink.
O Amazon Managed Service for Apache Flink faz backup automático do estado de sua aplicação em execução usando pontos de verificação e snapshots. Os pontos de verificação salvam o estado atual da aplicação e permitem que o Amazon Managed Service for Apache Flink para aplicações do Apache Flink recupere a posição da aplicação a fim de fornecer a mesma semântica de uma execução sem falhas. Os pontos de verificação usam o armazenamento de aplicações em execução. Os pontos de verificação para aplicativos Apache Flink são fornecidos por meio da funcionalidade de ponto de verificação do Apache Flink. Os snapshots salvam um ponto de recuperação para um ponto no tempo para aplicações e usam backups de aplicações duráveis. Os snapshots são análogos aos pontos de salvamento do Flink.
Para saber mais sobre as versões compatíveis do Apache Flink, visite a página de notas de lançamento do Amazon Managed Service para Apache Flink. A página também inclui as versões do Apache Beam, Java, Scala, Python e AWS SDKs compatíveis com o Amazon Managed Service for Apache Flink.
Sim, o Amazon Managed Service for Apache Flink oferece suporte a aplicativos de streaming criados usando o Apache Beam. Você pode criar aplicações de transmissão do Apache Beam no Java e executá-las em outros mecanismos e serviços, incluindo o uso do Apache Flink no Amazon Managed Service for Apache Flink. Você pode encontrar informações sobre as versões compatíveis do Apache Flink e do Apache Beam no Guia do desenvolvedor do Amazon Managed Service para Apache Flink.
Desenvolver aplicações do Amazon Managed Service for Apache Flink em um caderno gerenciado
Abrir tudoVocê pode começar com os consoles do Amazon Managed Service for Apache Flink Studio, Amazon Kinesis Data Streams ou Amazon MSK em poucas etapas para iniciar um caderno sem servidor para consultar imediatamente fluxos de dados e realizar data analytics interativas.
Análise de dados interativa: você pode escrever código no notebook em SQL, Python ou Scala para interagir com seus dados de streaming, com tempos de resposta de consulta em segundos. Você pode usar visualizações integradas para explorar os dados, visualizar insights em tempo real sobre seus dados de transmissão de dentro de seu caderno e desenvolver facilmente aplicações de processamento de fluxos com o Apache Flink.
Assim que seu código estiver pronto para ser executado como uma aplicação de produção, você poderá fazer a transição com uma única etapa para uma aplicação de processamento de fluxos que processa gigabytes de dados por segundo, sem servidores.
Aplicativo de processamento de stream: quando estiver pronto para promover seu código para produção, você pode criar seu código clicando em “Implantar como aplicativo de processamento de stream” na interface do notebook ou emitir um único comando na CLI. O Studio cuida de todo o gerenciamento de infraestrutura necessário para que você execute sua aplicação de processamento de fluxos em escala, com ajuste de escala automático e estado durável habilitados, assim como em uma aplicação do Amazon Managed Service for Apache Flink.
Você pode realizar operações SQL como estas:
- Verificar e filtrar (SELECT, WHERE)
- Agregações (GROUP BY, GROUP BY WINDOW, HAVING)
- Conjunto (UNION, UNIONALL, INTERSECT, IN, EXISTS)
- Ordenar (ORDER BY, LIMIT)
- Junções (INNER, OUTER: janela cronológica; BETWEEN, AND: junção com tabelas temporais, tabelas que rastreiam as alterações ao longo do tempo)
- Top-N
- Eliminação de duplicação
- Reconhecimento de padrões
Algumas dessas consultas, como GROUP BY, OUTER JOIN e Top-N são atualizações de resultados para dados de transmissão, o que significa que os resultados são atualizados continuamente à medida que os dados de transmissão são processados. Outras instruções DDL, como CREATE, ALTER e DROP, também são compatíveis. Para obter uma lista completa de consultas e exemplos, consulte a documentação de consultas do Apache Flink.
A API de tabela do Apache Flink oferece suporte a Python e Scala por meio da integração de linguagem usando strings in Python e expressões em Scala. As operações compatíveis são muito semelhantes às operações SQL compatíveis, incluindo selecionar, ordenar, agrupar, juntar, filtrar e criar janelas. Uma lista completa de operações e amostras está incluída em nosso guia do desenvolvedor.
Para saber mais sobre as versões compatíveis do Apache Flink, visite a página de notas de lançamento do Amazon Managed Service para Apache Flink. A página também inclui as versões do Apache Zeppelin, Apache Beam, Java, Scala, Python e AWS SDKs compatíveis com o Amazon Managed Service for Apache Flink.
- Fontes de dados: Amazon Managed Streaming for Apache Kafka (Amazon MSK), Amazon Kinesis Data Streams, Amazon S3
- Destinos ou depósitos: Amazon MSK, Amazon Kinesis Data Streams e Amazon S3
Acordo de Nível de Serviço
Abrir tudoVocê se qualificará para um crédito de serviço do SLA para o Amazon Managed Service for Apache Flink nos termos do SLA do Amazon Managed Service for Apache Flink se mais de uma zona de disponibilidade na qual você está executando uma tarefa, dentro da mesma região da AWS, tiver uma porcentagem de disponibilidade mensal inferior a 99,9% durante qualquer ciclo de cobrança mensal. Para obter detalhes completos sobre todos os termos e condições do SLA, bem como detalhes sobre como enviar uma reclamação, visite a página de detalhes do SLA do Amazon Managed Service para Apache Flink.
Você encontrou o que estava procurando hoje?
Informe-nos para que possamos melhorar a qualidade do conteúdo em nossas páginas