O que é o Amazon Managed Service para Apache Flink? - Managed Service for Apache Flink

Anteriormente, o Amazon Managed Service for Apache Flink era conhecido como Amazon Kinesis Data Analytics for Apache Flink.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

O que é o Amazon Managed Service para Apache Flink?

Com o Amazon Managed Service para Apache Flink, você pode usar Java, Scala, Python ou SQL para processar e analisar dados de streaming. O serviço permite que você crie e execute código em fontes de streaming e fontes estáticas para realizar análises de séries temporais, alimentar painéis e métricas em tempo real.

Você pode criar aplicativos com a linguagem de sua escolha no Managed Service for Apache Flink usando bibliotecas de código aberto baseadas no Apache Flink. O Apache Flink é uma estrutura popular e um mecanismo para o processamento de fluxos de dados.

O Managed Service for Apache Flink fornece a infraestrutura subjacente para seus aplicativos Apache Flink. Ele lida com os principais recursos, como provisionamento de recursos computacionais, resiliência de failover AZ, computação paralela, escalabilidade automática e backups de aplicativos (implementados como pontos de verificação e instantâneos). Você pode usar os recursos de programação de alto nível do Flink (como operadores, funções, fontes e coletores) da mesma forma que os usa ao hospedar você mesmo a infraestrutura do Flink.

Você tem duas opções para executar suas tarefas do Flink com o Amazon Managed Service para Apache Flink. Com o Managed Service for Apache Flink, você cria aplicativos Flink em Java, Scala ou Python (e SQL incorporado) usando um IDE de sua escolha e as APIs Apache Flink Datastream ou Table. Com o Managed Service for Apache Flink Studio, você pode consultar interativamente fluxos de dados em tempo real e criar e executar facilmente aplicativos de processamento de streams usando SQL, Python e Scala padrão.

Você pode selecionar o método mais adequado ao seu caso de uso. Se você não tiver certeza, esta seção oferecerá orientação de alto nível para ajudá-lo.

Antes de decidir se quer usar o Amazon Managed Service para Apache Flink ou o Amazon Managed Service para Apache Flink Studio, você deve considerar seu caso de uso.

Se você planeja operar um aplicativo de longa execução que executará cargas de trabalho como Streaming ETL ou Continuous Applications, considere usar o Managed Service for Apache Flink. Isso ocorre porque você pode criar seu aplicativo Flink usando as APIs do Flink diretamente no IDE de sua escolha. Desenvolver localmente com seu IDE também garante que você possa aproveitar processos e ferramentas comuns do ciclo de vida de desenvolvimento de software (SDLC), como controle de versão de código no Git, automação de CI/CD ou teste unitário.

Se você estiver interessado na exploração de dados ad-hoc, quiser consultar dados de streaming de forma interativa ou criar painéis privados em tempo real, o Managed Service for Apache Flink Studio ajudará você a atingir essas metas com apenas alguns cliques. Usuários familiarizados com o SQL podem considerar a implantação de um aplicativo de longa execução diretamente do Studio.

nota

Você pode promover seu notebook Studio em um aplicativo de longa duração. No entanto, se você quiser se integrar às suas ferramentas do SDLC, como controle de versão de código no Git e automação de CI/CD, ou técnicas como teste de unidade, recomendamos o Managed Service for Apache Flink usando o IDE de sua escolha.

Você pode criar aplicativos usando Java, Python e Scala no Managed Service for Apache Flink usando as APIs do Apache Flink em um IDE de sua escolha. Você pode encontrar orientações sobre como criar aplicativos usando a API Flink Datastream and Table na documentação. Você pode selecionar o idioma no qual você cria seu aplicativo Flink e as APIs que você usa para melhor atender às necessidades de seu aplicativo e operações. Se você não tiver certeza, esta seção fornece orientação de alto nível para ajudá-lo.

As APIs do Apache Flink têm diferentes níveis de abstração que podem afetar a forma como você decide criar seu aplicativo. Eles são expressivos e flexíveis e podem ser usados juntos para criar seu aplicativo. Você não precisa usar apenas uma API do Flink. Você pode aprender mais sobre as APIs do Flink na documentação do Apache Flink.

O Flink oferece quatro níveis de abstração de API: Flink SQL, API de tabela, DataStream API e função de processo, que são usados em conjunto com a API. DataStream Tudo isso é compatível com o Amazon Managed Service para Apache Flink. É recomendável começar com um nível mais alto de abstração sempre que possível. No entanto, alguns recursos do Flink só estão disponíveis com a API Datastream, na qual você pode criar seu aplicativo em Java, Python ou Scala. Você deve considerar o uso da API Datastream se:

  • Você precisa de um controle refinado sobre o estado

  • Você deseja aproveitar a capacidade de chamar um banco de dados externo ou endpoint de forma assíncrona (por exemplo, para inferência)

  • Você deseja usar cronômetros personalizados (por exemplo, para implementar janelas personalizadas ou tratamento tardio de eventos)

  • Você quer poder modificar o fluxo do seu aplicativo sem redefinir o estado

nota

Escolhendo um idioma com a DataStream API:

  • O SQL pode ser incorporado em qualquer aplicativo Flink, independentemente da linguagem de programação escolhida.

  • Se você planeja usar a DataStream API, nem todos os conectores são compatíveis com Python.

  • Se você precisar de baixa latência/alto rendimento, considere o Java/Scala, independentemente da API.

  • Se você planeja usar o Async IO na API Process Functions, precisará usar Java.

A escolha da API também pode afetar sua capacidade de desenvolver a lógica do aplicativo sem precisar redefinir o estado. Isso depende de um recurso específico, a capacidade de definir o UID nos operadores, que só está disponível na DataStream API para Java e Python. Para obter mais informações, consulte Definir UUIDs para todos os operadores na documentação do Apache Flink.

Introdução aos aplicativos de streaming de dados

Você pode começar criando um aplicativo do Managed Service for Apache Flink que lê e processa continuamente dados em transmissão. Em seguida, crie seu código usando o IDE de sua escolha e teste-o com dados de transmissão ao vivo. Você também pode configurar destinos para os quais o Managed Service for Apache Flink enviará os resultados.

Para começar, recomendamos que você leia as seguintes seções:

Como alternativa, você pode começar criando um serviço gerenciado para o notebook Apache Flink Studio que permite consultar interativamente fluxos de dados em tempo real e criar e executar facilmente aplicativos de processamento de fluxo usando SQL, Python e Scala padrão. Com alguns cliques no AWS Management Console, você pode iniciar um notebook sem servidor para consultar fluxos de dados e obter resultados em segundos. Para começar, recomendamos que você leia as seguintes seções: