Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Amazon Managed Service für Apache Flink 2.2
Amazon Managed Service für Apache Flink unterstützt jetzt Apache Flink Version 2.2. Dies ist das erste große Versionsupgrade für den Service. Diese Seite behandelt die in Flink 2.2 eingeführten Funktionen sowie wichtige Überlegungen zum Upgrade von Flink 1.x.
Anmerkung
Flink 2.2 führt wichtige Änderungen ein, die eine sorgfältige Planung erfordern. Sehen Sie sich die vollständige Liste der wichtigsten Änderungen und veralteten Änderungen unten sowie Leitfaden zur staatlichen Kompatibilität für Flink 2.2-Upgrades vor dem Upgrade von 1.x an.
Was ist neu in Amazon Managed Service für Apache Flink 2.2
Amazon Managed Service für Apache Flink 2.2 führt Verhaltensänderungen ein, die bestehende Anwendungen beim Upgrade zum Erliegen bringen können. Lesen Sie sich diese zusammen mit den Änderungen der Flink-API im nächsten Abschnitt sorgfältig durch.
Programmatische Handhabung der Konfiguration
MSF Flink 2.2 meldet jetzt eine Ausnahme, wenn Kunden versuchen, Konfigurationen, die von MSF nicht unterstützt werden, über oder ähnliche APIs zu ändern.
env.getConfig().set()Siehe Eigenschaften der programmatischen Flink-Konfiguration.Kunden können weiterhin die Änderung bestimmter Konfigurationen über Support-Tickets beantragen (siehe Modifizierbare Einstellungen) https://docs.aws.amazon.com/managed-flink/latest/java/reference-modifiable-settings.html
Entfernung von Metriken
Die
fullRestartsMetrik wurde in Flink 2.2 entfernt. Verwenden Sie stattdessen dienumRestartsMetrik.Die
bytesRequestedPerFetchMetrik für den KDS-Anschluss wurde in der AWS Flink-Connector-Version 6.0.0 entfernt (nur die Connector-Version, die mit Flink 2.2 kompatibel ist).Die
downtimeMetrikenuptimeund sind in Flink 2.2 beide als veraltet markiert und werden in Kürze entfernt. Ersetze sieuptimedurch die neue Metrik.runningTimedowntimeErsetzen Sie durch eines oder mehrere vonrestartingTimecancellingTime, undfailingTime.Eine vollständige Liste der unterstützten Metriken finden Sie auf der Seite „Metriken und Dimensionen“.
Non-Credential IMDS-Anrufe blockiert
Diese zulässigen Endpunkte werden von den AWS SDKs DefaultCredentialsProvider (
/latest/meta-data/iam/security-credentials/) und DefaultAwsRegionProviderChain (/latest/dynamic/instance-identity/document) verwendet, um Anmeldeinformationen und Region für Ihre Anwendung automatisch zu konfigurieren.Anwendungen, die AWS-SDK-Funktionen verwenden und auf IMDS-Aufrufen ohne Anmeldeinformationen (wie
EC2MetadataUtils.getInstanceId(),, oderEC2MetadataUtils.getAvailabilityZone()) angewiesen sindEC2MetadataUtils.getInstanceType()EC2MetadataUtils.getLocalHostName(), erhalten HTTP 4xx-Fehler, wenn sie versuchen, diese Aufrufe auszuführen.Wenn Ihre Anwendung IMDS für Instance-Metadaten oder andere Informationen außerhalb der zulässigen Pfade verwendet, ändern Sie Ihren Code so, dass er stattdessen Umgebungsvariablen oder Anwendungskonfigurationen verwendet.
Read-Only Root-Dateisystem
Um die Sicherheit zu verbessern, führt jede Abhängigkeit, außerhalb
/tmpderer das Standard-Flink-Arbeitsverzeichnis ist, zu:.java.io.FileNotFoundException: /{path}/{filename} (Read-only file system)Dateisystemabhängigkeiten können direkt aus Ihrem Code oder indirekt aus Bibliotheken stammen, die in Ihren Abhängigkeiten enthalten sind. Setzen Sie direkte Dateisystemabhängigkeiten
/tmp/in Ihrem Code außer Kraft. Bei indirekten Dateisystemabhängigkeiten von Bibliotheken verwenden Sie Überschreibungen der Bibliothekskonfiguration, um Dateisystemoperationen auf diese umzuleiten./tmp/
Wichtige Änderungen und veraltete Versionen
Im Folgenden finden Sie eine Zusammenfassung der wichtigsten Änderungen und veralteten Versionen, die in Managed Service für Apache Flink 2.2 eingeführt wurden. In den Versionshinweisen zu Apache Flink 2.0 finden Sie
Entfernung der Flink-API und der Sprache
DataSet API wurde entfernt
Die alte DataSet API für die Stapelverarbeitung wurde in Flink 2.0+ vollständig entfernt. Die gesamte Batchverarbeitung muss jetzt die einheitliche DataStream API verwenden.
Anwendungen, die die DataSet API verwenden, müssen vor dem Upgrade zur DataStream API migriert werden. Informationen zur Konvertierung finden Sie im Apache Flink-Migrationshandbuch DataSet DataStream
Java 11 und Python 3.8 wurden entfernt
Die Unterstützung für Java 11 wurde vollständig entfernt; Java 17 ist die standardmäßige und empfohlene Laufzeit.
Die Unterstützung für Python 3.8 wurde entfernt; Python 3.12 ist jetzt die Standardeinstellung.
Legacy-Connector-Klassen wurden entfernt
Die alten APIs
SourceFunctionundSinkFunctionSchnittstellen wurden durch die neuen vereinheitlichten Source (FLIP-27) - und Sink (FLIP-143) -APIs ersetzt, die eine bessere Unterstützung für bounded/unbounded Dualität, eine verbesserte Checkpoint-Koordination und ein übersichtlicheres Programmiermodell bieten.Verwenden Sie und von Kinesis Data Streams.
KinesisStreamsSourceKinesisStreamsSinkflink-connector-aws-kinesis-streams:6.0.0-2.0
Die Scala-API wurde entfernt
Die Flink Scala API wurde entfernt. Die Java-API von Flink ist jetzt die einzige unterstützte API für Anwendungen. JVM-based
Wenn Ihre Anwendung in Scala geschrieben ist, können Sie die Java-API von Flink weiterhin aus dem Scala-Code verwenden. Die wichtigste Änderung besteht darin, dass die Scala-specific Wrapper und impliziten Konvertierungen nicht mehr verfügbar sind. Einzelheiten zur Aktualisierung Ihrer Scala-Anwendungen finden Sie unter Aktualisieren von Anwendungen und Flink-Versionen
.
Überlegungen zur Staatenkompatibilität
Der Kryo-Serializer, der von Version 2.24 auf 5.6 aktualisiert wurde, kann zu Problemen mit der Statuskompatibilität führen.
POJOs mit Sammlungen (
HashMap,,HashSet) können Probleme mit derArrayListStatuskompatibilität haben.Die Serialisierung von Avro und Protobuf ist davon nicht betroffen.
Unter finden Sie Leitfaden zur staatlichen Kompatibilität für Flink 2.2-Upgrades eine detaillierte Bewertung zur Bewertung des Risikoniveaus Ihrer Anwendung.
Apache Flink 2.2-Funktionen werden unterstützt
Laufzeit- und Sprachunterstützung
| Feature | Description | Dokumentation |
|---|---|---|
| Java 17-Laufzeit | Java 17 ist jetzt die standardmäßige und empfohlene Laufzeit; die Unterstützung für Java 11 wurde entfernt. | Java-Kompatibilität |
| Unterstützung für Python 3.12 | Python 3.12 wird jetzt unterstützt; Python 3.8-Unterstützung wurde entfernt. | PyFlink Dokumentation |
Zustandsverwaltung und Leistung
| Feature | Description | Dokumentation |
|---|---|---|
| RocksDB 8.10.0 | Verbesserte I/O Leistung mit RocksDB-Upgrade. | Staatliche Backends |
| Verbesserungen bei der Serialisierung | Dedizierte Serialisierer für Map, List, Set; Kryo wurde von 2.24 auf 5.6 aktualisiert. | Geben Sie Serialisierung ein |
Funktionen der SQL- und Tabellen-API
| Feature | Description | Dokumentation |
|---|---|---|
| VARIANT-Datentyp | Native Unterstützung für halbstrukturierte Daten (JSON) ohne wiederholtes Analysieren von Zeichenfolgen. | Datentypen |
| Delta Join | Reduziert die staatlichen Anforderungen für Streaming-Joins, indem nur die neueste Version jedes Schlüssels verwaltet wird; erfordert eine vom Kunden verwaltete Infrastruktur (z. B. Apache Fluss). | Joins |
| StreamingMultiJoinOperator | Führt multidirektionale Joins als ein einziger Operator aus, sodass keine Zwischenmaterialisierung erforderlich ist. | FLIP-516 |
| ProcessTableFunction (PTF) | Aktiviert zustandsorientierte, ereignisgesteuerte Logik direkt in SQL mit zustandsspezifischen Zuständen und Timern. | User-Defined Funktionen |
| ML_PREDICT-Funktion | Rufen Sie registrierte ML-Modelle für streaming/batch Tabellen direkt aus SQL auf. Erfordert, dass der Kunde eine ModelProvider Implementierung bündelt (z. B.flink-model-openai). ModelProvider Bibliotheken werden nicht von Managed Service für Apache Flink ausgeliefert. |
ML Predict |
| DDL modellieren | Definieren Sie ML-Modelle mithilfe von CREATE MODEL-Anweisungen als erstklassige Katalogobjekte. | CREATE-Anweisungen |
| Vektor-Suche | Die Flink SQL API unterstützt die Suche nach Vektordatenbanken. Derzeit ist keine VectorSearchTableSource Open-Source-Implementierung verfügbar. Kunden müssen ihre eigene Implementierung bereitstellen. |
Flink SQL |
DataStream API-Funktionen
| Feature | Description | Dokumentation |
|---|---|---|
| FLIP-27 Quell-API | Neue einheitliche Quellschnittstelle, die die ältere Version ersetzt SourceFunction. | Sources (Quellen) |
| FLIP-143 Sink-API | Neue vereinheitlichte Sink-Schnittstelle, die die alte ersetzt SinkFunction. | Sinkt |
| Asynchrones Python DataStream | Non-blocking I/O Operationen in der DataStream Python-API unter Verwendung von AsyncFunction. | Asynchron I/O |
Verfügbarkeit des Connectors
Wenn Sie auf Flink 2.2 aktualisieren, müssen Sie auch Ihre Connector-Abhängigkeiten auf Versionen aktualisieren, die mit der Flink 2.2-Runtime kompatibel sind. Flink-Konnektoren werden unabhängig von der Flink-Laufzeit veröffentlicht, und noch haben nicht alle Konnektoren eine Flink 2.2-kompatible Version. Die folgende Tabelle fasst die Verfügbarkeit häufig verwendeter Konnektoren in Amazon Managed Service für Apache Flink zusammen:
| Konnektor | Flink 1.20 Version | Flink 2.0+ Version | Hinweise |
|---|---|---|---|
| Apache Kafka | Flink-Konnektor-Kafka 3.4.0-1.20 | Flink-Konnektor-Kafka 4.0.0-2.0 | Empfohlen für Flink 2.2 |
| Kinesis Data Streams (Quelle) | Flink-Connector-Kinesis 5.0.0-1.20 | Flink-Stecker AWS-Kinesis-Streams 6.0.0-2.0 | Empfohlen für Flink 2.2 |
| Kinesis Data Streams (Senke) | Flink-Konnektor-AWS-Kinesis-Streams 5.1.0-1.20 | Flink-Konnektor-AWS-Kinesis-Streams 6.0.0-2.0 | Empfohlen für Flink 2.2 |
| Amazon Data Firehose | Flink-Connector-AWS-Kinesis-Firehose 5.1.0-1.20 | Flink-Stecker AWS-Kinesis-Firehose 6.0.0-2.0 | Kompatibel mit Flink 2.0 |
| Amazon DynamoDB | Flink-Connector-Dynamodb 5.1.0-1.20 | Flink-Stecker Dynamodb 6.0.0-2.0 | Kompatibel mit Flink 2.0 |
| Amazon SQS | flink-connector-sqs 5.1.0-1.20 | flink-connector-sqs 6.0.0-2.0 | Kompatibel mit Flink 2.0 |
| FileSystem (S3, HDFS) | Im Paket mit Flink | Im Paket mit Flink | In die Flink-Distribution integriert — immer verfügbar |
| JDBC | flink-connector-jdbc 3.3.0-1.20 | Noch nicht für 2.x veröffentlicht | Keine Flink 2.x-kompatible Version verfügbar |
| OpenSearch | flink-connector-opensearch 1.2.0-1.19 | Noch nicht für 2.x veröffentlicht | Keine Flink 2.x-kompatible Version verfügbar |
| Elasticsearch | Nur älterer Connector | Noch nicht für 2.x veröffentlicht | Erwägen Sie eine Migration zum Connector OpenSearch |
| Amazon Managed Service für Prometheus | Flink-Connector-Prometheus 1.0.0-1.20 | Noch nicht für 2.x veröffentlicht | Keine Flink 2.x-kompatible Version verfügbar |
Wenn Ihre Anwendung von einem Connector abhängt, für den es noch keine Flink 2.x-Version gibt, haben Sie zwei Möglichkeiten: Warten Sie, bis der Connector eine kompatible Version veröffentlicht, oder prüfen Sie, ob Sie ihn durch eine Alternative ersetzen können (z. B. mithilfe des JDBC-Katalogs oder einer benutzerdefinierten Senke).
Achten Sie beim Aktualisieren von Connector-Versionen auf Änderungen der Artefaktnamen — einige Connectoren wurden zwischen Hauptversionen umbenannt (z. B. wurde der Firehose-Connector
flink-connector-aws-firehosein einigen Zwischenversionen vonflink-connector-aws-kinesis-firehosezu geändert).Lesen Sie immer in der Dokumentation zum Amazon Managed Service for Apache Flink Connector nach, um die genauen Artefaktnamen und Versionen zu erfahren, die in Ihrer Ziel-Laufzeit unterstützt werden.
Nicht unterstützte und experimentelle Funktionen
Die folgenden Funktionen werden in Amazon Managed Service für Apache Flink 2.2 nicht unterstützt:
Materialisierte Tabellen: Kontinuierlich gepflegte, abfragbare Tabellen-Snapshots.
Änderungen an der benutzerdefinierten Telemetrie: Benutzerdefinierte Metrik-Reporter und Telemetriekonfigurationen.
ForSt State Backend: Disaggregierter Statusspeicher (experimentell in Open Source).
Java 21: Experimentelle Unterstützung in Open Source, nicht unterstützt in Managed Service für Apache Flink.
Bekannte Probleme
Von Amazon verwalteter Dienst für Apache Flink Studio
Flink 2.2 in Amazon Managed Service für Apache Flink unterstützt keine Studio-Anwendungen. Weitere Informationen finden Sie unter Ein Studio-Notizbuch erstellen.
Kinesis-Konnektor EFO
Anwendungen, die den in Connector v5.0.0 und v6.0.0 eingeführten Pfad
KinesisStreamsSourcewith EFO (Enhanced Fan-Out / SubscribeToShard) verwenden, schlagen möglicherweise fehl, wenn Kinesis-Streams einem Resharding unterzogen werden. Dies ist ein bekanntes Problem in der Community. Weitere Informationen finden Sie unter FLINK-37648. Bei Anwendungen, die den in Connector v5.0.0 und v6.0.0 eingeführten Pfad
KinesisStreamsSourcewith EFO (Enhanced Fan-Out / SubscribeToShard) verwenden,KinesisStreamsSinkkann es zusammen mit Connector v5.0.0 und v6.0.0 zu Deadlocks kommen, wenn die Flink-Anwendung unter Gegendruck steht, was zu einem vollständigen Stopp der Datenverarbeitung in einer oder mehreren Anwendungen führt. TaskManagers Zum Wiederherstellen der Anwendung sind ein erzwungener Stopp- und ein Startvorgang für die Anwendung erforderlich. Dies ist ein Unterfall des bekannten Problems in der Community. Weitere Informationen finden Sie unter FLINK-34071.
Verbessern Sie das Erlebnis
Amazon Managed Service für Apache Flink unterstützt direkte Versionsupgrades, bei denen Ihre Anwendungskonfiguration, Protokolle, Metriken, Tags und — sofern Status und Binärdateien kompatibel sind — Ihr Anwendungsstatus erhalten bleiben. Schrittweise Anleitungen hierzu finden Sie unter Upgrade auf Flink 2.2: Vollständige Anleitung.
Hinweise zur Bewertung des Zustandskompatibilitätsrisikos und zum Umgang mit inkompatiblen Zuständen bei Upgrades finden Sie unter. Leitfaden zur staatlichen Kompatibilität für Flink 2.2-Upgrades
Nächste Schritte
Neu bei Flink 2.2? Eine ausführliche Apache Flink 2.2-Dokumentation finden Sie in der Apache Flink 2.2-Dokumentation.
Sie planen ein Upgrade? Siehe Upgrade auf Flink 2.2: Vollständige Anleitung
Bedenken hinsichtlich der staatlichen Kompatibilität? Siehe Leitfaden zur staatlichen Kompatibilität für Flink 2.2-Upgrades
Bei Fragen oder Problemen wenden Sie sich an den Support Fehlerbehebung bei Managed Service für Apache Flink oder wenden Sie sich an den AWS Support.