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.
Novità di Amazon Managed Service per Apache Flink 2.2
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
MSF Flink 2.2 ora segnala un'eccezione quando i clienti tentano di modificare configurazioni non supportate da MSF o simili.
env.getConfig().set()APIs Per informazioni, consulta Proprietà di configurazione programmatiche di Flink.
Rimozione delle metriche
La
fullRestartsmetrica è stata rimossa in Flink 2.2. Usa invece lanumRestartsmetrica.La
bytesRequestedPerFetchmetrica 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
downtimemetricheuptimee sono entrambe contrassegnate come obsolete in Flink 2.2 e verranno rimosse a breve. Sostituisci con la nuova metricauptime.runningTimeSostituiscidowntimecon uno o più direstartingTimecancellingTime, 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/documentLe applicazioni che utilizzano le funzioni dell'SDK AWS che si basano su chiamate IMDS senza credenziali (come
EC2MetadataUtils.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
/tmpquale 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/
Interruzione delle modifiche e delle deprecazioni
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
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
SourceFunctione leSinkFunctioninterfacce 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 Streams
KinesisStreamsSource,KinesisStreamsSinkutilizzare e da.flink-connector-aws-kinesis-streams:6.0.0-2.0
API Scala rimossa
L'API Flink Scala è stata rimossa. L'API Java di Flink è ora l'unica API supportata per le applicazioni basate su JVM.
Se la tua applicazione è scritta in Scala, puoi comunque utilizzare l'API Java di Flink dal codice Scala: la modifica principale è che i wrapper specifici di Scala e le conversioni implicite non sono più disponibili. Vedi Aggiornamento delle applicazioni e delle versioni Flink per i dettagli sull'aggiornamento delle applicazioni
Scala.
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à traArrayListstatiHashSet.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.
Funzionalità di Apache Flink 2.2 supportate
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 |
Disponibilità del connettore
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:
| 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-firehoseaflink-connector-aws-firehosein 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.
Funzionalità sperimentali e non supportate
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.
Problemi noti
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
KinesisStreamsSourcecon 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
KinesisStreamsSourcewith EFO (Enhanced Fan-Out/ SubscribeToShard) introdotto insieme ai connettori v5.0.0 e v6.0.0KinesisStreamsSinkpotrebbero 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.
Esperienza di aggiornamento
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
Fasi successive
Sei nuovo a Flink 2.2? Per la documentazione dettagliata di Apache Flink 2.2, consultate la documentazione di Apache
Flink 2.2. Stai pianificando un aggiornamento? Per informazioni, consultare Aggiornamento a Flink 2.2: guida completa.
Problemi di compatibilità a livello statale? Per informazioni, consultare 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.