

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
<a name="flink-2-2"></a>

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](state-compatibility.md) antes da atualização da versão 1.x.

## O que há de novo no Amazon Managed Service para Apache Flink 2.2
<a name="flink-2-2-whats-new"></a>

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](programmatic-configuration.md).
+ Os clientes ainda podem solicitar a alteração de determinadas configurações por meio de tickets de suporte (consulte Configurações [modificáveis](https://docs.aws.amazon.com/managed-flink/latest/java/reference-modifiable-settings.html))

**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 na versão 6.0.0 do AWS conector Flink (somente a versão do 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. `uptime`Substitua pela nova métrica`runningTime`. `downtime`Substitua por um ou mais de `restartingTime``cancellingTime`, `failingTime` e.
+ Consulte a [página Métricas e Dimensões](https://docs.aws.amazon.com/managed-flink/latest/java/metrics-dimensions.html) 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()`, ou`EC2MetadataUtils.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 `/tmp` qual 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
<a name="flink-2-2-breaking-changes"></a>

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](https://nightlies.apache.org/flink/flink-docs-stable/release-notes/flink-2.0/) de lançamento completas do Apache Flink 2.0 que introduzem essas mudanças importantes.

**DataSet API removida**
+ A DataSet API antiga para processamento em lote foi completamente removida no Flink 2.0\$1. 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](https://nightlies.apache.org/flink/flink-docs-release-1.20/docs/dev/datastream/dataset_migration/)

**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 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`, `KinesisStreamsSink` use 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](https://nightlies.apache.org/flink/flink-docs-release-2.0/docs/ops/upgrading/) 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](state-compatibility.md) 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
<a name="flink-2-2-supported-features"></a>

**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](https://nightlies.apache.org/flink/flink-docs-stable/zh/docs/deployment/java_compatibility/) | 
| Suporte ao Python 3.12 | O Python 3.12 agora é suportado; o suporte ao Python 3.8 foi removido. | [PyFlink Documentação](https://nightlies.apache.org/flink/flink-docs-release-2.2/docs/dev/python/overview/) | 

**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](https://nightlies.apache.org/flink/flink-docs-release-2.0/docs/ops/state/state_backends/) | 
| Melhorias na serialização | Serializadores dedicados para Map, List, Set; Kryo atualizado de 2.24 para 5.6. | [Tipo de serialização](https://nightlies.apache.org/flink/flink-docs-release-2.0/docs/dev/datastream/fault-tolerance/serialization/types_serialization/) | 

**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](https://nightlies.apache.org/flink/flink-docs-release-2.1/docs/dev/table/types/) | 
| 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](https://nightlies.apache.org/flink/flink-docs-release-2.1/docs/dev/table/sql/queries/joins/) | 
| StreamingMultiJoinOperator | Executa uniões multidirecionais como um único operador, eliminando a materialização intermediária. | [FLIP-516](https://cwiki.apache.org/confluence/display/FLINK/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](https://nightlies.apache.org/flink/flink-docs-release-2.1/docs/dev/table/functions/udfs/) | 
| Função ML\$1PREDICT | 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](https://nightlies.apache.org/flink/flink-docs-release-2.1/docs/dev/table/sql/queries/model-inference/) | 
| Modelo: DDL | Defina modelos de ML como objetos de catálogo de primeira classe usando instruções CREATE MODEL. | [CREATE Declarações](https://nightlies.apache.org/flink/flink-docs-release-2.1/docs/dev/table/sql/create/#create-model) | 
| 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](https://nightlies.apache.org/flink/flink-docs-stable/release-notes/flink-2.2/#support-vector_search-in-flink-sql) | 

**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)](https://nightlies.apache.org/flink/flink-docs-release-2.0/docs/dev/datastream/sources/) | 
| API de coletor FLIP-143 | Nova interface de coletor unificada substituindo a antiga SinkFunction. | [Pias](https://nightlies.apache.org/flink/flink-docs-release-2.0/docs/dev/datastream/sinks/) | 
| Python assíncrono DataStream |  I/O Operações sem bloqueio na API DataStream Python usando. AsyncFunction | [E/S assíncrona](https://nightlies.apache.org/flink/flink-docs-release-2.2/docs/dev/python/datastream/operators/async_io/) | 

## disponibilidade do conector
<a name="flink-2-2-connectors"></a>

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:


**Disponibilidade de conectores para Flink 2.2**  

| Conector | Versão Flink 1.20 | Versão Flink 2.0\$1 | 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-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](https://docs.aws.amazon.com/managed-flink/latest/java/how-flink-connectors.html) 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
<a name="flink-2-2-unsupported"></a>

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
<a name="flink-2-2-known-issues"></a>

**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](https://docs.aws.amazon.com/managed-flink/latest/java/how-zeppelin-creating.html).

**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](https://issues.apache.org/jira/browse/FLINK-37648).
+ Os aplicativos que usam o caminho `KinesisStreamsSource` com EFO (Enhanced Fan-Out/ SubscribeToShard) introduzido nos conectores v5.0.0 e v6.0.0 `KinesisStreamsSink` podem 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](https://issues.apache.org/jira/browse/FLINK-34071).

## Experiência de upgrade
<a name="flink-2-2-upgrade"></a>

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, consulte[Atualizando para o Flink 2.2: guia completo](flink-2-2-upgrade-guide.md).

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](state-compatibility.md)

## Próximas etapas
<a name="flink-2-2-next-steps"></a>
+ Novo no Flink 2.2? Para obter a documentação detalhada do Apache Flink 2.2, consulte a documentação do [Apache Flink](https://nightlies.apache.org/flink/flink-docs-release-2.2/) 2.2.
+ Planejando um upgrade? Consulte [Atualizando para o Flink 2.2: guia completo](flink-2-2-upgrade-guide.md)
+ Preocupações com a compatibilidade do estado? Consulte [Guia de compatibilidade estadual para atualizações do Flink 2.2](state-compatibility.md)

Em caso de dúvidas ou problemas, consulte [Solucionar problemas do Managed Service for Apache Flink](troubleshooting.md) ou entre em contato com o AWS Support.