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á.
Amazon Managed Service 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, juntamente com 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 importantes abaixo e Guia de compatibilidade estadual para atualizações do Flink 2.2 antes da atualização da versão 1.x.
O que há de novo no Amazon Managed Service para Apache Flink 2.2
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.
Manipulação 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 ou similares.
env.getConfig().set()APIs 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
fullRestartsmétrica foi removida no Flink 2.2. Em vez disso, use anumRestartsmétrica.A
bytesRequestedPerFetchmétrica do conector KDS foi removida na versão 6.0.0 do AWS conector Flink (somente a versão do conector compatível com o Flink 2.2).As
downtimemétricasuptimee 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 derestartingTimecancellingTime,failingTimee.Consulte a página Métricas e Dimensões para ver a lista completa das métricas compatíveis.
Chamadas IMDS não credenciais 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 (como
EC2MetadataUtils.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.
Sistema de arquivos raiz somente para leitura
Para melhorar a segurança, qualquer dependência fora da
/tmpqual esteja 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 para o seu código.
/tmp/Para dependências indiretas de sistemas de arquivos de bibliotecas, use substituições de configuração de biblioteca para redirecionar as operações do sistema de arquivos para o./tmp/
Alterações e suspensões significativas
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
API do Flink e remoções de linguagem
DataSet API removida
A DataSet API antiga para processamento em lote foi completamente removida no Flink 2.0+. Todo o processamento em lote agora 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
SourceFunctione asSinkFunctioninterfaces foram substituídos pelas novas fontes unificadas (FLIP-27) e Sink (FLIP-143) APIs, 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
KinesisStreamsSource,KinesisStreamsSinkuse e 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 compatível com aplicativos baseados em JVM.
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 wrappers específicos do Scala e as conversões implícitas não estão mais disponíveis. Consulte Atualização de aplicativos e versões do Flink
para obter detalhes sobre como atualizar seus aplicativos Scala.
Considerações sobre compatibilidade de estados
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) pode 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.
Recursos do Apache Flink 2.2 suportados
Suporte de tempo de execução e idioma
| Recurso | Description | Documentação |
|---|---|---|
| Tempo de execução do Java 17 | 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. | Backends estaduais |
| Melhorias na serialização | Serializadores dedicados para Map, List, Set; Kryo atualizado de 2.24 para 5.6. | Tipo de serialização |
Recursos da API SQL e de tabela
| 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 estado e temporizadores por chave. | Funções definidas pelo usuário |
| 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 para Apache Flink. |
Previsão de ML |
| Modelo: DDL | Defina modelos de ML como objetos de catálogo de primeira classe usando instruções CREATE MODEL. | CREATE Declarações |
| Pesquisa vetorial | A API Flink SQL suporta a 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 Recursos da API
| Recurso | Description | Documentação |
|---|---|---|
| API de origem do FLIP-27 | Nova interface de origem unificada substituindo a antiga SourceFunction. | Sources (Origens) |
| API de coletor FLIP-143 | Nova interface de coletor unificada substituindo a antiga SinkFunction. | Pias |
| Python assíncrono DataStream | I/O Operações sem bloqueio na API DataStream Python usando. AsyncFunction | E/S assíncrona |
disponibilidade do conector
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 têm uma versão compatível com o Flink 2.2 ainda. A tabela a seguir resume a disponibilidade dos conectores comumente usados no Amazon Managed Service para Apache Flink:
| Conector | Versão Flink 1.20 | Versão Flink 2.0+ | Observações |
|---|---|---|---|
| Apache Kafka | flink-connector-kafka 3.4.0-1.20 | flink-connector-kafka 4.0.0-2.0 | Recomendado para o Flink 2.2 |
| Kinesis Data Streams (fonte) | flink-connector-kinesis 5.0.0-1.20 | flink-connector-aws-kinesis-streams 6.0.0-2.0 | Recomendado para o Flink 2.2 |
| Kinesis Data Streams (coletor) | flink-connector-aws-kinesis-streams 5.1.0-1.20 | flink-connector-aws-kinesis-streams 6.0.0-2.0 | Recomendado para o Flink 2.2 |
| Amazon Data Firehose | flink-connector-aws-kinesis-mangueira de incêndio 5.1.0-1.20 | flink-connector-aws-kinesis-mangueira de incêndio 6.0.0-2.0 | Compatível com Flink 2.0 |
| Amazon DynamoDB | flink-connector-dynamodb 5.1.0-1.20 | flink-connector-dynamodb 6.0.0-2.0 | Compatível com Flink 2.0 |
| Amazon SQS | flink-connector-sqs 5.1.0-1.20 | flink-connector-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 do Flink — sempre disponível |
| JDBC | flink-connector-jdbc 3.3.0-1.20 | Ainda não foi lançado para 2.x | Nenhuma versão compatível com o Flink 2.x disponível |
| OpenSearch | flink-connector-opensearch 1.2.0-1.19 | Ainda não foi lançado para 2.x | Nenhuma versão compatível com o Flink 2.x disponível |
| Elasticsearch | Somente conector antigo | Ainda não foi lançado para 2.x | Considere migrar para o conector OpenSearch |
| Amazon Managed Service for Prometheus | flink-connector-prometheus 1.0.0-1.20 | Ainda não foi lançado para 2.x | Nenhuma versão compatível com o Flink 2.x disponível |
Se seu aplicativo depende de um conector que ainda não tem uma versão 2.x do Flink, 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-firehoseparaflink-connector-aws-firehoseem 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 compatíveis com seu tempo de execução de destino.
Recursos experimentais e sem suporte
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 consultáveis e mantidos continuamente.
Alterações de telemetria personalizadas: relatórios métricos personalizados e configurações de telemetria.
ForSt State Backend: 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.
Problemas conhecidos
Amazon Managed Service para Apache Flink Studio
O Flink 2.2 no Amazon Managed Service para Apache Flink não é compatível com aplicativos Studio. Para obter mais informações, consulte Criação de um notebook do Studio.
Conector Kinesis EFO
Os aplicativos que usam o caminho
KinesisStreamsSourcewith 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
KinesisStreamsSourcecom EFO (Enhanced Fan-Out/ SubscribeToShard) introduzido nos conectores v5.0.0 e v6.0.0KinesisStreamsSinkpodem enfrentar impasses 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.
Experiência de upgrade
O Amazon Managed Service para Apache Flink oferece suporte a atualizações de versão no local que preservam a configuração, os logs, as métricas, as tags do seu aplicativo e, se o estado e os binários forem compatíveis, o estado do seu aplicativo. Para step-by-step obter instruções, consulteAtualizando para o Flink 2.2: guia completo.
Para obter orientação sobre como avaliar o risco de compatibilidade de estados e lidar com estados incompatíveis durante atualizações, consulte. Guia de compatibilidade estadual para atualizações do Flink 2.2
Próximas etapas
Novo no Flink 2.2? Para obter a documentação detalhada do Apache Flink 2.2, consulte a documentação do Apache Flink
2.2. Planejando um upgrade? Consulte Atualizando para o Flink 2.2: guia completo
Preocupações com a compatibilidade do estado? 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 Support.