Conceitos básicos do Amazon Managed Service for Apache Flink para Python - Managed Service for Apache Flink

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

Conceitos básicos do Amazon Managed Service for Apache Flink para Python

Esta seção apresenta os conceitos fundamentais do Managed Service for Apache Flink usando Python e a API de tabela. Ela descreve as opções disponíveis para criar e testar seus aplicativos. Ela também fornece instruções para instalar as ferramentas necessárias para concluir os tutoriais deste guia e criar seu primeiro aplicativo.

Analise os componentes de um aplicativo do Managed Service for Apache Flink

nota

O Amazon Managed Service for Apache Flink é compatível com todas as APIs do Apache Flink. Dependendo da API escolhida, a estrutura do aplicativo é um pouco diferente. Uma abordagem popular ao desenvolver um aplicativo Apache Flink em Python é definir o fluxo do aplicativo usando SQL incorporado no código Python. Essa é a abordagem que seguimos no tutorial de introdução a seguir.

Para processar dados, seu aplicativo do Managed Service for Apache Flink usa um script Python para definir o fluxo de dados que processa a entrada e produz a saída usando o runtime do Apache Flink.

Um aplicativo típico do Managed Service for Apache Flink tem os seguintes componentes:

  • Propriedades de runtime: você pode usar as propriedades de runtime para configurar seu aplicativo sem recompilar o código do aplicativo.

  • Fontes: o aplicativo consome dados de uma ou mais fontes. Uma fonte usa um conector para ler dados de um sistema externo, como um fluxo de dados do Kinesis ou um tópico do Amazon MSK. Também é possível usar conectores especiais para gerar dados de dentro do aplicativo. Quando você usa SQL, o aplicativo define fontes como tabelas de origem.

  • Transformações: o aplicativo processa dados usando uma ou mais transformações que podem filtrar, enriquecer ou agregar dados. Quando você usa SQL, o aplicativo define transformações como consultas SQL.

  • Coletores: o aplicativo envia dados para fontes externas por meio de coletores. Um coletor usa um conector para enviar dados para um sistema externo, como um fluxo de dados do Kinesis, um tópico do Amazon MSK, um bucket do Amazon S3 ou um banco de dados relacional. Você também pode usar um conector especial para imprimir a saída para fins de desenvolvimento. Quando você usa SQL, o aplicativo define coletores como tabelas de coletores nas quais você insere resultados. Para obter mais informações, consulte Grave dados com coletores no Managed Service for Apache Flink.

Seu aplicativo Python também pode exigir dependências externas, como bibliotecas Python adicionais ou qualquer conector Flink que o aplicativo use. Ao empacotar o aplicativo, você deve incluir todas as dependências que ele exige. Este tutorial demonstra como incluir dependências de conectores e como empacotar o aplicativo para implantação no Amazon Managed Service for Apache Flink.

Atenda os pré-requisitos

Para concluir este tutorial, você precisa atender aos seguintes pré-requisitos:

  • Python 3.11, de preferência usando um ambiente autônomo como VirtualEnv (venv), Conda ou Miniconda.

  • Cliente do Git - Instale o cliente do Git, se isso ainda não foi feito.

  • Java Development Kit (JDK) versão 11 - instale um Java JDK 11 e defina a variável de ambiente JAVA_HOME para apontar para seu local de instalação. Se você não tem um JDK 11, pode usar Amazon Corretto ou qualquer JDK padrão de sua escolha.

    • Para verificar se o JDK está instalado corretamente, execute o seguinte comando. A saída será diferente se estiver usando um JDK diferente do Amazon Corretto 11. Verifique se a versão é a 11.x.

      $ java --version openjdk 11.0.23 2024-04-16 LTS OpenJDK Runtime Environment Corretto-11.0.23.9.1 (build 11.0.23+9-LTS) OpenJDK 64-Bit Server VM Corretto-11.0.23.9.1 (build 11.0.23+9-LTS, mixed mode)
  • Apache Maven - instale o Apache Maven se ainda não tiver feito isso. Para obter mais informações, consulte Como instalar o Apache Maven.

    • Para testar a instalação do Apache Maven, use o seguinte comando:

      $ mvn -version
nota

Embora o aplicativo seja escrito em Python, o Apache Flink é executado na Java Virtual Machine (JVM). Ela distribui a maioria das dependências, como o conector Kinesis, em arquivos JAR. Para gerenciar essas dependências e empacotar o aplicativo em um arquivo ZIP, use o Apache Maven. Este tutorial explica como fazer isso.

Atenção

Recomendamos usar Python 3.11 para desenvolvimento local. Essa é a mesma versão do Python usada pelo Amazon Managed Service for Apache Flink com o runtime do Flink 1.19.

A instalação da biblioteca Python Flink 1.19 no Python 3.12 pode falhar.

Se você tiver outra versão do Python instalada por padrão na máquina, recomendamos criar um ambiente independente, como o VirtualEnv, usando o Python 3.11.

IDE para desenvolvimento local

Recomenda-se o uso de um ambiente de desenvolvimento como PyCharm ou Visual Studio Code para desenvolver e compilar seu aplicativo.

Em seguida, conclua duas primeiras etapas de Conceitos básicos do Amazon Managed Service for Apache Flink (API DataStream) :

Para começar, consulte o Cria uma aplicação.