Servizio gestito Amazon per Apache Flink 2.2 - Servizio gestito per Apache Flink

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Servizio gestito Amazon per Apache Flink 2.2

Amazon Managed Service per Apache Flink ora supporta la versione 2.2 di Apache Flink. Questo è il primo aggiornamento della versione principale del servizio. Questa pagina illustra le funzionalità introdotte in Flink 2.2, insieme a importanti considerazioni per l'aggiornamento da Flink 1.x.

Nota

Flink 2.2 introduce modifiche epocali che richiedono un'attenta pianificazione. Consulta l'elenco completo delle ultime modifiche e delle modifiche obsolete di seguito e prima dell'aggiornamento dalla Guida alla compatibilità dello stato per gli aggiornamenti di Flink 2.2 1.x.

Amazon Managed Service for Apache Flink 2.2 introduce modifiche comportamentali che potrebbero interrompere le applicazioni esistenti al momento dell'aggiornamento. Esaminali attentamente insieme alle modifiche all'API Flink nella sezione successiva.

Gestione della configurazione programmatica

Rimozione delle metriche

  • La fullRestarts metrica è stata rimossa in Flink 2.2. Usa invece la numRestarts metrica.

  • La bytesRequestedPerFetch metrica per il connettore KDS è stata rimossa nella versione 6.0.0 del AWS connettore Flink (solo la versione del connettore è compatibile con Flink 2.2).

  • Le downtime metriche uptime e sono entrambe contrassegnate come obsolete in Flink 2.2 e verranno rimosse a breve. Sostituisci con la nuova metricauptime. runningTime Sostituisci downtime con uno o più di restartingTimecancellingTime, efailingTime.

  • Consulta la pagina Metriche e dimensioni per l'elenco completo delle metriche supportate.

Chiamate IMDS senza credenziali bloccate

  • Questi endpoint consentiti vengono utilizzati dagli AWS SDK () e DefaultCredentialsProvider(/latest/meta-data/iam/security-credentials/) per configurare automaticamente le credenziali e DefaultAwsRegionProviderChainla regione per l'applicazione. /latest/dynamic/instance-identity/document

  • Le applicazioni che utilizzano le funzioni dell'SDK AWS che si basano su chiamate IMDS senza credenziali (comeEC2MetadataUtils.getInstanceId(), EC2MetadataUtils.getInstanceType()EC2MetadataUtils.getLocalHostName(), oEC2MetadataUtils.getAvailabilityZone()) riceveranno errori HTTP 4xx quando tentano di effettuare queste chiamate.

  • Se la tua applicazione utilizza IMDS, ad esempio metadati o altre informazioni al di fuori dei percorsi consentiti, rifattorizza il codice per utilizzare invece le variabili di ambiente o la configurazione dell'applicazione.

Filesystem root di sola lettura

  • Per migliorare la sicurezza, qualsiasi dipendenza al di fuori della /tmp quale sia la directory di lavoro flink predefinita risulterà in:. java.io.FileNotFoundException: /{path}/{filename} (Read-only file system)

  • Le dipendenze del filesystem possono provenire direttamente dal codice o indirettamente dalle librerie incluse nelle dipendenze. Sostituisci le dipendenze dirette del filesystem nel tuo codice. /tmp/ Per le dipendenze indirette del filesystem dalle librerie, utilizzate gli override di configurazione delle librerie per reindirizzare le operazioni del file system verso. /tmp/

Di seguito è riportato un riepilogo delle ultime modifiche e delle deprecazioni introdotte in Managed Service for Apache Flink 2.2. Consulta le note di rilascio di Apache Flink 2.0 per le note di rilascio complete di Apache Flink 2.0 che introducono queste modifiche epocali.

API Flink e rimozioni linguistiche

DataSet API rimossa

  • L' DataSet API legacy per l'elaborazione in batch è stata completamente rimossa in Flink 2.0+. Tutte le elaborazioni in batch devono ora utilizzare l'API DataStream unificata.

  • Le applicazioni che utilizzano l' DataSet API devono essere migrate all' DataStream API prima dell'aggiornamento. Consulta la guida alla migrazione di Apache Flink per la conversione DataSet DataStream

Java 11 e Python 3.8 rimossi

  • Supporto per Java 11 completamente rimosso; Java 17 è il runtime predefinito e consigliato.

  • Il supporto per Python 3.8 è stato rimosso; Python 3.12 è ora l'impostazione predefinita.

Classi Legacy Connector rimosse

  • La versione precedente SourceFunction e le SinkFunction interfacce sono state sostituite dai nuovi Source (FLIP-27) e Sink (FLIP-143) unificati APIs, che offrono un migliore supporto per la bounded/unbounded dualità, un migliore coordinamento dei checkpoint e un modello di programmazione più pulito.

  • Per Kinesis Data StreamsKinesisStreamsSource, KinesisStreamsSink utilizzare e da. flink-connector-aws-kinesis-streams:6.0.0-2.0

API Scala rimossa

Considerazioni sulla compatibilità degli stati

  • Il serializzatore Kryo aggiornato dalla versione 2.24 alla 5.6 può causare problemi di compatibilità dello stato.

  • POJOs con collections (HashMap,,) potrebbe avere problemi di compatibilità tra ArrayList statiHashSet.

  • La serializzazione di Avro e Protobuf non è influenzata.

  • Consultate Guida alla compatibilità dello stato per gli aggiornamenti di Flink 2.2 questa pagina per una valutazione dettagliata del livello di rischio dell'applicazione.

Runtime e supporto linguistico

Funzionalità Description Documentazione
Java 17 Runtime Java 17 è ora il runtime predefinito e consigliato; il supporto per Java 11 è stato rimosso. Compatibilità con Java
Python 3.12 Support Python 3.12 ora supportato; supporto Python 3.8 rimosso. PyFlink Documentazione

Gestione dello stato e prestazioni

Funzionalità Description Documentazione
RockSDB 8.10.0 I/O Prestazioni migliorate con l'aggiornamento RockSDB. Backend statali
Miglioramenti alla serializzazione Serializzatori dedicati per Map, List, Set; Kryo aggiornato dalla 2.24 alla 5.6. Tipo di serializzazione

Funzionalità delle API SQL e Table

Funzionalità Description Documentazione
Tipo di dati VARIANT Supporto nativo per dati semistrutturati (JSON) senza analisi ripetuta delle stringhe. Tipi di dati
Delta Join Riduce i requisiti statali per gli streaming join mantenendo solo la versione più recente di ogni chiave; richiede un'infrastruttura gestita dal cliente (ad esempio, Apache Fluss). Si unisce
StreamingMultiJoinOperator Esegue giunzioni multidirezionali come operatore singolo, eliminando la materializzazione intermedia. FLIP-516
ProcessTableFunction (PTF) Abilita una logica statica basata sugli eventi direttamente in SQL con stato e timer per chiave. Funzioni definite dall'utente
Funzione ML_PREDICT Chiama i modelli ML registrati sulle streaming/batch tabelle direttamente da SQL. Richiede al cliente di raggruppare un' ModelProvider implementazione (ad es.flink-model-openai). ModelProvider le librerie non vengono fornite da Managed Service for Apache Flink. ML Predict
Modello DDL Definisci i modelli ML come oggetti di catalogo di prima classe utilizzando le istruzioni CREATE MODEL. Dichiarazioni CREATE
Ricerca vettoriale L'API Flink SQL supporta la ricerca nei database vettoriali. Al momento non è disponibile alcuna VectorSearchTableSource implementazione open source; i clienti devono fornire la propria implementazione. Flink SQL

DataStream Funzionalità dell'API

Funzionalità Description Documentazione
API sorgente FLIP-27 Nuova interfaccia sorgente unificata che sostituisce quella precedente. SourceFunction Origini
API Sink FLIP-143 Nuova interfaccia sink unificata che sostituisce la versione precedente. SinkFunction Lavelli
Python asincrono DataStream I/O Operazioni non bloccanti nell'API DataStream Python utilizzando. AsyncFunction I/O asincrono

Quando si esegue l'aggiornamento a Flink 2.2, è inoltre necessario aggiornare le dipendenze dei connettori a versioni compatibili con il runtime Flink 2.2. I connettori Flink vengono rilasciati indipendentemente dal runtime Flink e non tutti i connettori hanno ancora una versione compatibile con Flink 2.2. La tabella seguente riassume la disponibilità dei connettori di uso comune in Amazon Managed Service for Apache Flink:

Disponibilità dei connettori per Flink 2.2
Connector Versione Flink 1.20 Versione Flink 2.0+ Note
Apache Kafka flink-connector-kafka 3,4,0-1,20 flink-connector-kafka 4,0,0-2,0 Consigliato per Flink 2.2
Kinesis Data Streams (fonte) flink-connector-kinesis 5,0,0-1,20 flink-connector-aws-kinesis-stream 6.0.0-2.0 Consigliato per Flink 2.2
Kinesis Data Streams (sink) flink-connector-aws-kinesis-stream 5.1.0-1.20 flink-connector-aws-kinesis-stream 6.0.0-2.0 Consigliato per Flink 2.2
Amazon Data Firehose flink-connector-aws-kinesis-Firehose 5.1.0-1.20 flink-connector-aws-kinesis- manichetta antincendio 6.0.0-2.0 Compatibile con Flink 2.0
Amazon DynamoDB flink-connector-dynamodb 5,1,0-1,20 flink-connector-dynamodb 6,0,0-2,0 Compatibile con Flink 2.0
Amazon SQS flink-connector-sqs 5,1,0-1,20 flink-connector-sqs 6,0,0-2,0 Compatibile con Flink 2.0
FileSystem (S3, HDFS) In bundle con Flink In bundle con Flink Integrato nella distribuzione Flink, sempre disponibile
JDBC flink-connector-jdbc 3,3,0-1,20 Non ancora rilasciato per 2.x Nessuna versione compatibile con Flink 2.x disponibile
OpenSearch flink-connector-opensearch 1.2.0-1,19 Non ancora rilasciato per 2.x Nessuna versione compatibile con Flink 2.x disponibile
Elasticsearch Solo connettore Legacy Non ancora rilasciato per 2.x Prendi in considerazione la migrazione al connettore OpenSearch
Amazon Managed Service per Prometheus flink-connector-prometheus 1,0,0-1,20 Non ancora rilasciato per 2.x Nessuna versione compatibile con Flink 2.x disponibile
  • Se l'applicazione dipende da un connettore che non dispone ancora di una versione Flink 2.x, sono disponibili due opzioni: attendere che il connettore rilasci una versione compatibile o valutare se è possibile sostituirlo con un'alternativa (ad esempio, utilizzando il catalogo JDBC o un sink personalizzato).

  • Durante l'aggiornamento delle versioni dei connettori, presta attenzione alle modifiche dei nomi degli artefatti: alcuni connettori sono stati rinominati tra le versioni principali (ad esempio, il connettore Firehose è cambiato da flink-connector-aws-kinesis-firehose a flink-connector-aws-firehose in alcune versioni intermedie).

  • Consulta sempre la documentazione del connettore Amazon Managed Service for Apache Flink per i nomi esatti degli artefatti e le versioni supportate nel runtime di destinazione.

Le seguenti funzionalità non sono supportate in Amazon Managed Service for Apache Flink 2.2:

  • Tabelle materializzate: istantanee di tabelle interrogabili e gestite in modo continuo.

  • Modifiche telemetriche personalizzate: report metrici personalizzati e configurazioni di telemetria.

  • ForSt State Backend: archiviazione a stati disaggregata (sperimentale in open source).

  • Java 21: supporto sperimentale in open source, non supportato in Managed Service for Apache Flink.

Servizio gestito Amazon per Apache Flink Studio

Flink 2.2 in Amazon Managed Service for Apache Flink non supporta le applicazioni Studio. Per ulteriori informazioni, consulta Creazione di un notebook Studio.

Connettore Kinesis EFO

  • Le applicazioni che utilizzano il percorso KinesisStreamsSource con EFO (Enhanced Fan-Out/ SubscribeToShard) introdotto nei connettori v5.0.0 e v6.0.0 potrebbero fallire quando gli stream Kinesis vengono sottoposti a resharding. Si tratta di un problema noto nella comunità. Per ulteriori informazioni, vedere FLINK-37648.

  • Le applicazioni che utilizzano il percorso KinesisStreamsSource with EFO (Enhanced Fan-Out/ SubscribeToShard) introdotto insieme ai connettori v5.0.0 e v6.0.0 KinesisStreamsSink potrebbero riscontrare dei deadlock se l'applicazione Flink è sottoposta a contropressione, con conseguente arresto completo dell'elaborazione dei dati in uno o più. TaskManagers Per ripristinare l'applicazione sono necessarie un'operazione di arresto forzato e un'operazione di avvio dell'applicazione. Questo è un caso secondario del problema noto nella comunità. Per ulteriori informazioni, vedere FLINK-34071.

Amazon Managed Service for Apache Flink supporta aggiornamenti di versione in loco che preservano la configurazione dell'applicazione, i log, le metriche, i tag e, se lo stato e i binari sono compatibili, lo stato dell'applicazione. step-by-stepAggiornamento a Flink 2.2: guida completaPer istruzioni, consulta.

Per indicazioni sulla valutazione del rischio di compatibilità dello stato e sulla gestione dello stato di incompatibilità durante gli aggiornamenti, vedere. Guida alla compatibilità dello stato per gli aggiornamenti di Flink 2.2

Per domande o problemi, consulta Risoluzione dei problemi relativi al servizio gestito per Apache Flink o contatta l' AWS assistenza.