View a markdown version of this page

Serviço gerenciado da Amazon para Apache Flink 2.2 - Managed Service 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á.

Serviço gerenciado da Amazon para Apache Flink 2.2

O Amazon Managed Service para Apache Flink agora oferece suporte ao Apache Flink versão 2.2. Essa é a primeira grande atualização de versão do serviço. Esta página aborda os recursos introduzidos no Flink 2.2, além de considerações importantes para a atualização do Flink 1.x.

nota

O Flink 2.2 introduz mudanças significativas que exigem um planejamento cuidadoso. Veja a lista completa de alterações e suspensões de uso abaixo e Guia de compatibilidade estadual para atualizações do Flink 2.2 antes da atualização da versão 1.x.

O Amazon Managed Service para Apache Flink 2.2 introduz mudanças comportamentais que podem interromper os aplicativos existentes após a atualização. Analise-as cuidadosamente junto com as alterações da API Flink na próxima seção.

Tratamento de configuração programática

  • O MSF Flink 2.2 agora relata uma exceção quando os clientes tentam modificar configurações não suportadas pelo MSF por meio env.getConfig().set() de APIs ou similares. Consulte Propriedades de configuração programática do Flink.

  • Os clientes ainda podem solicitar a alteração de determinadas configurações por meio de tickets de suporte (consulte Configurações modificáveis)

Remoção de métricas

  • A fullRestarts métrica foi removida no Flink 2.2. Em vez disso, use a numRestarts métrica.

  • A bytesRequestedPerFetch métrica do conector KDS foi removida no conector Flink versão 6.0.0 (somente a versão do AWS conector compatível com o Flink 2.2).

  • As downtime métricas uptime e estão marcadas como obsoletas no Flink 2.2 e serão removidas em breve. uptimeSubstitua pela nova métricarunningTime. downtimeSubstitua por um ou mais de restartingTimecancellingTime, failingTime e.

  • Consulte a página Métricas e Dimensões para ver a lista completa das métricas suportadas.

Non-Credential Chamadas IMDS bloqueadas

  • Esses endpoints permitidos são usados pelos AWS SDKs DefaultCredentialsProvider (/latest/meta-data/iam/security-credentials/) e DefaultAwsRegionProviderChain (/latest/dynamic/instance-identity/document) para configurar automaticamente as credenciais e a região do seu aplicativo.

  • Os aplicativos que usam funções do AWS SDK que dependem de chamadas IMDS não credenciais (comoEC2MetadataUtils.getInstanceId(), EC2MetadataUtils.getInstanceType()EC2MetadataUtils.getLocalHostName(), ouEC2MetadataUtils.getAvailabilityZone()) receberão erros HTTP 4xx ao tentarem essas chamadas.

  • Se seu aplicativo usa IMDS, por exemplo, metadados ou outras informações fora dos caminhos permitidos, refatore seu código para usar variáveis de ambiente ou configuração do aplicativo.

Read-Only Sistema de arquivos raiz

  • Para melhorar a segurança, qualquer dependência fora da /tmp qual seja o diretório de trabalho padrão do flink resultará em:. java.io.FileNotFoundException: /{path}/{filename} (Read-only file system)

  • As dependências do sistema de arquivos podem se originar diretamente do seu código ou indiretamente das bibliotecas incluídas nas suas dependências. Substitua as dependências diretas do sistema de arquivos em seu código. /tmp/ Para dependências indiretas do sistema de arquivos de bibliotecas, use substituições de configuração de bibliotecas para redirecionar as operações do sistema de arquivos para o. /tmp/

Abaixo está um resumo das principais alterações e suspensões introduzidas no Managed Service for Apache Flink 2.2. Consulte as notas de lançamento do Apache Flink 2.0 para ver as notas de lançamento completas do Apache Flink 2.0 que introduz essas mudanças importantes.

API Flink e remoções de linguagem

DataSet API removida

  • A DataSet API antiga para processamento em lote foi completamente removida no Flink 2.0+. Agora, todo o processamento em lote deve usar a DataStream API unificada.

  • Os aplicativos que usam a DataSet API devem ser migrados para a DataStream API antes da atualização. Consulte o guia de migração do Apache Flink para conversão DataSet DataStream

Java 11 e Python 3.8 removidos

  • O suporte ao Java 11 foi completamente removido; o Java 17 é o tempo de execução padrão e recomendado.

  • O suporte ao Python 3.8 foi removido; o Python 3.12 agora é o padrão.

Classes de conectores legadas removidas

  • O legado SourceFunction e as SinkFunction interfaces foram substituídos pelas novas APIs unificadas Source (FLIP-27) e Sink (FLIP-143), que fornecem melhor suporte à bounded/unbounded dualidade, melhor coordenação de pontos de verificação e um modelo de programação mais limpo.

  • Para Kinesis Data Streams, use KinesisStreamsSource e KinesisStreamsSink de. flink-connector-aws-kinesis-streams:6.0.0-2.0

API Scala removida

  • A API Flink Scala foi removida. A API Java do Flink agora é a única API suportada para JVM-based aplicativos.

  • Se seu aplicativo for escrito em Scala, você ainda poderá usar a API Java do Flink a partir do código Scala — a principal mudança é que os Scala-specific wrappers e as conversões implícitas não estão mais disponíveis. Consulte Atualizando aplicativos e versões do Flink para obter detalhes sobre como atualizar seus aplicativos Scala.

Considerações sobre compatibilidade estadual

  • O serializador Kryo atualizado da versão 2.24 para 5.6 pode causar problemas de compatibilidade de estado.

  • POJOs com coleções (HashMap,ArrayList,HashSet) podem ter problemas de compatibilidade de estado.

  • A serialização do Avro e do Protobuf não foi afetada.

  • Consulte Guia de compatibilidade estadual para atualizações do Flink 2.2 para obter uma avaliação detalhada para fazer a triagem do nível de risco do seu aplicativo.

Suporte de tempo de execução e idioma

Recurso Description Documentação
Java 17 Runtime O Java 17 agora é o tempo de execução padrão e recomendado; o suporte ao Java 11 foi removido. Compatibilidade com Java
Suporte ao Python 3.12 O Python 3.12 agora é suportado; o suporte ao Python 3.8 foi removido. PyFlink Documentação

Gestão e desempenho do estado

Recurso Description Documentação
RocksDB 8.10.0 I/O Desempenho aprimorado com a atualização do RocksDB. Back-ends estaduais
Melhorias na serialização Serializadores dedicados para Map, List, Set; Kryo atualizados de 2.24 para 5.6. Serialização de tipos

Recursos da API SQL e Table

Recurso Description Documentação
Tipo de dados VARIANT Suporte nativo para dados semiestruturados (JSON) sem análise repetida de strings. Tipos de dados
Delta Join Reduz os requisitos de estado para junções de streaming mantendo somente a versão mais recente de cada chave; requer infraestrutura gerenciada pelo cliente (por exemplo, Apache Fluss). Junta-se
StreamingMultiJoinOperator Executa uniões multidirecionais como um único operador, eliminando a materialização intermediária. FLIP-516
ProcessTableFunction (PTF) Permite lógica com estado e orientada por eventos diretamente no SQL com temporizadores e estados por chave. User-Defined Funções
Função ML_PREDICT Chame modelos de ML registrados em streaming/batch tabelas diretamente do SQL. Exige que o cliente agrupe uma ModelProvider implementação (por exemplo,flink-model-openai). ModelProvider as bibliotecas não são enviadas pelo Managed Service for Apache Flink. Previsão de aprendizado de máquina
Modelo DDL Defina modelos de ML como objetos de catálogo de primeira classe usando instruções CREATE MODEL. DECLARAÇÕES CREATE
Pesquisa vetorial A API Flink SQL oferece suporte à pesquisa em bancos de dados vetoriais. Nenhuma VectorSearchTableSource implementação de código aberto está disponível no momento; os clientes devem fornecer sua própria implementação. SQL no Flink

DataStream Características da API

Recurso Description Documentação
FLIP-27 API de origem Nova interface de origem unificada substituindo a antiga SourceFunction. Sources (Origens)
FLIP-143 API Sink Nova interface de coletor unificada substituindo a antiga SinkFunction. Pias
Python assíncrono DataStream Non-blocking I/O operações na DataStream API Python usando AsyncFunction. Assíncrono I/O

Ao atualizar para o Flink 2.2, você também precisa atualizar as dependências do conector para versões compatíveis com o tempo de execução do Flink 2.2. Os conectores Flink são lançados independentemente do tempo de execução do Flink, e nem todos os conectores ainda têm uma versão compatível com o Flink 2.2. A tabela a seguir resume a disponibilidade dos conectores comumente usados no Amazon Managed Service para Apache Flink:

Disponibilidade de conectores para o Flink 2.2
Conector Versão Flink 1.20 Versão Flink 2.0+ Observações
Apache Kafka conector flink-kafka 3.4.0-1.20 conector flink-kafka 4.0.0-2.0 Recomendado para Flink 2.2
Kinesis Data Streams (fonte) conector flink-kinesis 5.0.0-1.20 conector flink-aws-kinesis-streams 6.0.0-2.0 Recomendado para Flink 2.2
Kinesis Data Streams (coletor) conector flink-aws-kinesis-streams 5.1.0-1.20 conector flink-aws-kinesis-streams 6.0.0-2.0 Recomendado para Flink 2.2
Amazon Data Firehose conector flink-aws-kinesis-firehose 5.1.0-1.20 conector flink-aws-kinesis-firehose 6.0.0-2.0 Compatível com Flink 2.0
Amazon DynamoDB conector flink-dynamodb 5.1.0-1.20 conector flink-dynamodb 6.0.0-2.0 Compatível com Flink 2.0
Amazon SQS conector flink-sqs 5.1.0-1.20 conector flink-sqs 6.0.0-2.0 Compatível com Flink 2.0
FileSystem (S3, HDFS) Empacotado com o Flink Empacotado com o Flink Integrado à distribuição Flink — sempre disponível
JDBC conector flink-jdbc 3.3.0-1.20 Ainda não foi lançado para 2.x Nenhuma versão compatível com Flink 2.x disponível
OpenSearch conector flink-opensearch 1.2.0-1.19 Ainda não foi lançado para 2.x Nenhuma versão compatível com Flink 2.x disponível
Elasticsearch Somente conector legado Ainda não foi lançado para 2.x Considere migrar para o conector OpenSearch
Amazon Managed Service for Prometheus conector flink-prometheus 1.0.0-1.20 Ainda não foi lançado para 2.x Nenhuma versão compatível com Flink 2.x disponível
  • Se seu aplicativo depende de um conector que ainda não tenha uma versão Flink 2.x, você tem duas opções: esperar que o conector lance uma versão compatível ou avaliar se você pode substituí-lo por uma alternativa (por exemplo, usando o catálogo JDBC ou um coletor personalizado).

  • Ao atualizar as versões do conector, preste atenção às mudanças no nome do artefato — alguns conectores foram renomeados entre as versões principais (por exemplo, o conector Firehose mudou de flink-connector-aws-kinesis-firehose para flink-connector-aws-firehose em algumas versões intermediárias).

  • Sempre verifique a documentação do conector Amazon Managed Service para Apache Flink para ver os nomes e versões exatos dos artefatos suportados em seu tempo de execução de destino.

Os seguintes recursos não são compatíveis com o Amazon Managed Service para Apache Flink 2.2:

  • Tabelas materializadas: instantâneos de tabelas que podem ser consultados e mantidos continuamente.

  • Alterações de telemetria personalizadas: relatórios métricos personalizados e configurações de telemetria.

  • ForSt Backend estadual: armazenamento de estado desagregado (experimental em código aberto).

  • Java 21: suporte experimental em código aberto, não suportado no Managed Service for Apache Flink.

Serviço gerenciado da Amazon para Apache Flink Studio

O Flink 2.2 no Amazon Managed Service para Apache Flink não oferece suporte a aplicativos Studio. Para obter mais informações, consulte Criação de um notebook do Studio.

Conector Kinesis EFO

  • Os aplicativos que usam o caminho KinesisStreamsSource with EFO (Enhanced Fan-Out / SubscribeToShard) introduzido nos conectores v5.0.0 e v6.0.0 podem falhar quando os streams do Kinesis são refragmentados. Esse é um problema conhecido na comunidade. Para obter mais informações, consulte FLINK-37648.

  • Os aplicativos que usam o caminho KinesisStreamsSource with EFO (Enhanced Fan-Out / SubscribeToShard) introduzido nos conectores v5.0.0 e v6.0.0 junto com KinesisStreamsSink podem enfrentar bloqueios se o aplicativo Flink estiver sob contrapressão, resultando na interrupção completa do processamento de dados em um ou mais. TaskManagers Uma operação de parada forçada e uma operação de início do aplicativo são necessárias para recuperar o aplicativo. Esse é um subcaso do problema conhecido na comunidade. Para obter mais informações, consulte FLINK-34071.

O Amazon Managed Service for Apache Flink oferece suporte a atualizações de versão in-loco que preservam a configuração, os registros, as métricas, as tags e, se o estado e os binários forem compatíveis, o estado do seu aplicativo. Para obter instruções detalhadas, consulte Atualizando para o Flink 2.2: guia completo.

Para obter orientação sobre como avaliar o risco de compatibilidade do estado e lidar com o estado incompatível durante as atualizações, consulte. Guia de compatibilidade estadual para atualizações do Flink 2.2

Em caso de dúvidas ou problemas, consulte Solucionar problemas do Managed Service for Apache Flink ou entre em contato com o AWS Suporte.