View a markdown version of this page

Amazon Managed Service für Apache Flink 2.2 - Managed Service für Apache Flink

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.

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

Entfernung von Metriken

  • Die fullRestarts Metrik wurde in Flink 2.2 entfernt. Verwenden Sie stattdessen die numRestarts Metrik.

  • Die bytesRequestedPerFetch Metrik 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 downtime Metriken uptime und sind in Flink 2.2 beide als veraltet markiert und werden in Kürze entfernt. Ersetze sie uptime durch die neue Metrik. runningTime downtimeErsetzen Sie durch eines oder mehrere von restartingTimecancellingTime, 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 (wieEC2MetadataUtils.getInstanceId(),, oderEC2MetadataUtils.getAvailabilityZone()) angewiesen sind EC2MetadataUtils.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 /tmp derer 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/

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 die vollständigen Versionshinweise zu Apache Flink 2.0, in denen diese wichtigen Änderungen eingeführt werden.

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 SourceFunction und SinkFunction Schnittstellen 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. KinesisStreamsSource KinesisStreamsSink flink-connector-aws-kinesis-streams:6.0.0-2.0

Die Scala-API wurde entfernt

Ü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 der ArrayList Statuskompatibilitä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.

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

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:

Verfügbarkeit von Connectoren für Flink 2.2
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-firehose in einigen Zwischenversionen von flink-connector-aws-kinesis-firehose zu 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.

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.

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 KinesisStreamsSource with 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 KinesisStreamsSource with EFO (Enhanced Fan-Out / SubscribeToShard) verwenden, KinesisStreamsSink kann 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.

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

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.