

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.

# Beispiele für die Erstellung und Arbeit mit Managed Service für Apache Flink-Anwendungen
<a name="examples-collapsibles"></a>

Dieser Abschnitt enthält Beispiele für das Erstellen und Arbeiten mit Anwendungen im Managed Service für Apache Flink. Sie enthalten Beispielcode und step-by-step Anweisungen, die Ihnen helfen, Managed Service für Apache Flink-Anwendungen zu erstellen und Ihre Ergebnisse zu testen.

Bevor Sie sich mit diesen Beispielen befassen, empfehlen wir Ihnen, zunächst Folgendes zu lesen: 
+ [Funktionsweise](how-it-works.md)
+ [Tutorial: Erste Schritte mit der DataStream API in Managed Service für Apache Flink](getting-started.md)

**Anmerkung**  
Bei diesen Beispielen wird davon ausgegangen, dass Sie die Region USA Ost (Nord-Virginia) (us-east-1) verwenden. Wenn Sie eine andere Region verwenden, aktualisieren Sie Ihren Anwendungscode, Ihre Befehle und IAM-Rollen entsprechend.

**Topics**
+ [Java-Beispiele für Managed Service für Apache Flink](examples-new-java.md)
+ [Python-Beispiele für Managed Service für Apache Flink](examples-new-python.md)
+ [Scala-Beispiele für Managed Service für Apache Flink](examples-new-scala.md)

# Java-Beispiele für Managed Service für Apache Flink
<a name="examples-new-java"></a>

Die folgenden Beispiele zeigen, wie in Java geschriebene Anwendungen erstellt werden.



**Anmerkung**  
Die meisten Beispiele sind so konzipiert, dass sie sowohl lokal auf Ihrem Entwicklungscomputer und der IDE Ihrer Wahl als auch auf Amazon Managed Service für Apache Flink ausgeführt werden können. Sie demonstrieren die Mechanismen, mit denen Sie Anwendungsparameter übergeben können, und zeigen, wie Sie die Abhängigkeit richtig einstellen, um die Anwendung in beiden Umgebungen ohne Änderungen auszuführen.

## Verbessern Sie die Serialisierungsleistung, indem Sie benutzerdefiniert definieren TypeInfo
<a name="improving-serialization-performance-java"></a>

Dieses Beispiel zeigt, wie Sie Benutzerdefiniert für Ihren Datensatz oder Ihr Statusobjekt definieren, um zu verhindern, dass bei der Serialisierung TypeInfo auf die weniger effiziente Kryo-Serialisierung zurückgegriffen wird. Dies ist beispielsweise erforderlich, wenn Ihre Objekte ein oder enthalten. `List` `Map` Weitere Informationen finden Sie unter [Datentypen und Serialisierung](https://nightlies.apache.org/flink/flink-docs-release-1.20/docs/dev/datastream/fault-tolerance/serialization/types_serialization/#data-types--serialization) in der Apache Flink-Dokumentation. Das Beispiel zeigt auch, wie Sie testen können, ob die Serialisierung Ihres Objekts auf die weniger effiziente Kryo-Serialisierung zurückfällt.

Code-Beispiel: [CustomTypeInfo](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/java/Serialization/CustomTypeInfo)

## Fangen Sie mit der DataStream API an
<a name="getting-started-datastream-java"></a>

Dieses Beispiel zeigt eine einfache Anwendung, die mithilfe der API aus einem Kinesis-Datenstream liest und in einen anderen Kinesis-Datenstream schreibt. `DataStream` Das Beispiel zeigt, wie Sie die Datei mit den richtigen Abhängigkeiten einrichten, das Uber-JAR erstellen und dann die Konfigurationsparameter analysieren, sodass Sie die Anwendung sowohl lokal, in Ihrer IDE als auch auf Amazon Managed Service for Apache Flink ausführen können.

Codebeispiel: [GettingStarted](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/java/GettingStarted)

## Erste Schritte mit der Tabellen-API und SQL
<a name="getting-started-table-java"></a>

Dieses Beispiel zeigt eine einfache Anwendung, die die `Table` API und SQL verwendet. Es zeigt, wie die `DataStream` API mit der `Table` API oder SQL in derselben Java-Anwendung integriert wird. Es zeigt auch, wie der `DataGen` Konnektor verwendet wird, um zufällige Testdaten aus der Flink-Anwendung selbst heraus zu generieren, ohne dass ein externer Datengenerator erforderlich ist.

Vollständiges Beispiel: [GettingStartedTable](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/java/GettingStartedTable)

## Verwenden Sie S3Sink (API) DataStream
<a name="s3-sink-java"></a>

Dieses Beispiel zeigt, wie die `DataStream` APIs verwendet werden, `FileSink` um JSON-Dateien in einen S3-Bucket zu schreiben.

Codebeispiel: [S3Sink](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/java/S3Sink)

## Verwenden Sie eine Kinesis-Quelle, einen Standard- oder EFO-Verbraucher und eine Senke (API) DataStream
<a name="kinesis-EFO-sink-java"></a>

Dieses Beispiel zeigt, wie eine Quelle konfiguriert wird, die einen Kinesis-Datenstream nutzt, entweder mit dem Standard-Consumer oder EFO, und wie eine Senke für den Kinesis-Datenstream eingerichtet wird.

Codebeispiel: [KinesisConnectors](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/java/KinesisConnectors)

## Verwenden Sie eine Amazon Data Firehose-Senke (DataStream API)
<a name="firehose-sink-java"></a>

Dieses Beispiel zeigt, wie Daten an Amazon Data Firehose (früher bekannt als Kinesis Data Firehose) gesendet werden.

Codebeispiel: [KinesisFirehoseSink](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/java/KinesisFirehoseSink)

## Verwenden Sie den Prometheus-Spülbeckenanschluss
<a name="prometheus-sink-java"></a>

Dieses Beispiel demonstriert die Verwendung des [Prometheus-Sink-Connectors zum Schreiben von Zeitreihendaten in Prometheus](https://nightlies.apache.org/flink/flink-docs-release-1.20/docs/connectors/datastream/prometheus/).

Codebeispiel: [PrometheusSink](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/java/PrometheusSink)

## Verwenden Sie Fensteraggregationen (API) DataStream
<a name="windowing-aggregations-java"></a>

In diesem Beispiel werden vier Typen der Windowing-Aggregation in der API demonstriert. `DataStream`

1. Verschiebbares Fenster, das auf der Verarbeitungszeit basiert

1. Schiebefenster basierend auf der Ereigniszeit

1. Taumelndes Fenster basierend auf der Verarbeitungszeit

1. Tumbling Window basiert auf der Uhrzeit des Ereignisses

[Codebeispiel: Windowing](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/java/Windowing) 

## Verwenden benutzerdefinierter Metriken
<a name="custom-metrics-java"></a>

Dieses Beispiel zeigt, wie Sie Ihrer Flink-Anwendung benutzerdefinierte Metriken hinzufügen und sie an CloudWatch Metriken senden.

Code-Beispiel: [CustomMetrics](https://github.com/dzikosc/amazon-managed-service-for-apache-flink-examples/tree/main/java/CustomMetrics)

## Verwenden Sie Kafka-Konfigurationsanbieter, um zur Laufzeit einen benutzerdefinierten Keystore und Truststore für MTLs abzurufen
<a name="kafka-keystore-mTLS"></a>

Dieses Beispiel zeigt, wie Sie Kafka-Konfigurationsanbieter verwenden können, um einen benutzerdefinierten Keystore und Truststore mit Zertifikaten für die mTLS-Authentifizierung für den Kafka-Connector einzurichten. Mit dieser Technik können Sie die erforderlichen benutzerdefinierten Zertifikate aus Amazon S3 und die Secrets AWS Secrets Manager beim Start der Anwendung laden.

Codebeispiel: [Kafka-MTLS-Keystore](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/java/KafkaConfigProviders/Kafka-mTLS-Keystore-ConfigProviders) - ConfigProviders

## Verwenden Sie Kafka-Konfigurationsanbieter, um zur Laufzeit Geheimnisse für die Authentifizierung abzurufen SASL/SCRAM
<a name="kafka-secrets"></a>

Dieses Beispiel zeigt, wie Sie Kafka Configuration Providers verwenden können, um Anmeldeinformationen von Amazon S3 abzurufen AWS Secrets Manager und den Truststore von Amazon S3 herunterzuladen, um die SASL/SCRAM Authentifizierung auf einem Kafka-Connector einzurichten. Mit dieser Technik können Sie die erforderlichen benutzerdefinierten Zertifikate aus Amazon S3 und die Secrets AWS Secrets Manager beim Start der Anwendung laden.

Codebeispiel: [Kafka- - SASL\$1SSL ConfigProviders](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/java/KafkaConfigProviders/Kafka-SASL_SSL-ConfigProviders)

## Verwenden Sie Kafka-Konfigurationsanbieter, um zur Laufzeit mit Table API/SQL einen benutzerdefinierten Keystore und Truststore für MTLs abzurufen
<a name="kafka-custom-keystore"></a>

Dieses Beispiel zeigt, wie Sie Kafka-Konfigurationsanbieter in der Tabellen-API /SQL verwenden können, um einen benutzerdefinierten Keystore und Truststore mit Zertifikaten für die mTLS-Authentifizierung für den Kafka-Konnektor einzurichten. Mit dieser Technik können Sie die erforderlichen benutzerdefinierten Zertifikate aus Amazon S3 und die Secrets AWS Secrets Manager beim Start der Anwendung laden.

Codebeispiel: [Kafka-MTLS-Keystore-SQL](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/java/KafkaConfigProviders/Kafka-mTLS-Keystore-Sql-ConfigProviders) - ConfigProviders

## Verwenden Sie Side Outputs, um einen Stream aufzuteilen
<a name="side-output"></a>

Dieses Beispiel zeigt, wie [Side Outputs](https://nightlies.apache.org/flink/flink-docs-master/docs/dev/datastream/side_output/) in Apache Flink genutzt werden können, um einen Stream nach bestimmten Attributen aufzuteilen. Dieses Muster ist besonders nützlich, wenn versucht wird, das Konzept der Dead Letter Queues (DLQ) in Streaming-Anwendungen zu implementieren.

Codebeispiel: [SideOutputs](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/java/SideOutputs)

## Verwenden Sie Async I/O , um einen externen Endpunkt aufzurufen
<a name="async-i-o"></a>

Dieses Beispiel zeigt, wie [Apache Flink Async I/O](https://nightlies.apache.org/flink/flink-docs-release-1.20/docs/dev/datastream/operators/asyncio/) verwendet wird, um einen externen Endpunkt blockierungsfrei aufzurufen, wobei bei behebbaren Fehlern Wiederholungen durchgeführt werden.

[Codebeispiel](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/java/AsyncIO): AsyncIO

# Python-Beispiele für Managed Service für Apache Flink
<a name="examples-new-python"></a>

Die folgenden Beispiele zeigen, wie in Python geschriebene Anwendungen erstellt werden.

**Anmerkung**  
Die meisten Beispiele sind so konzipiert, dass sie sowohl lokal auf Ihrem Entwicklungscomputer und der IDE Ihrer Wahl als auch auf Amazon Managed Service für Apache Flink ausgeführt werden können. Sie demonstrieren den einfachen Mechanismus, mit dem Sie Anwendungsparameter übergeben können, und zeigen, wie Sie die Abhängigkeit richtig einstellen, um die Anwendung in beiden Umgebungen ohne Änderungen auszuführen.

**Abhängigkeiten von Projekten**

Die meisten PyFlink Beispiele erfordern eine oder mehrere Abhängigkeiten als JAR-Dateien, zum Beispiel für Flink-Konnektoren. Diese Abhängigkeiten müssen dann zusammen mit der Anwendung verpackt werden, wenn sie auf Amazon Managed Service für Apache Flink bereitgestellt werden. 

Die folgenden Beispiele enthalten bereits die Tools, mit denen Sie die Anwendung lokal ausführen können, um sie zu entwickeln und zu testen und die erforderlichen Abhängigkeiten korrekt zu verpacken. Dieses Tooling erfordert die Verwendung von Java JDK11 und Apache Maven. Die spezifischen Anweisungen finden Sie in der README-Datei, die in jedem Beispiel enthalten ist.

**Beispiele**

## Fangen Sie an mit PyFlink
<a name="getting-started-pyflink"></a>

Dieses Beispiel demonstriert die grundlegende Struktur einer PyFlink Anwendung, die SQL verwendet, die in Python-Code eingebettet ist. Dieses Projekt bietet auch ein Grundgerüst für jede PyFlink Anwendung, die JAR-Abhängigkeiten wie Konnektoren enthält. Der README-Abschnitt enthält detaillierte Anleitungen dazu, wie Sie Ihre Python-Anwendung lokal für die Entwicklung ausführen können. Das Beispiel zeigt auch, wie Sie eine einzelne JAR-Abhängigkeit, in diesem Beispiel den Kinesis-SQL-Connector, in Ihre PyFlink Anwendung einbeziehen können.

Codebeispiel: [GettingStarted](https://github.com/dzikosc/amazon-managed-service-for-apache-flink-examples/tree/main/python/GettingStarted)

## Python-Abhängigkeiten hinzufügen
<a name="add-python-dependencies"></a>

Dieses Beispiel zeigt, wie Sie Ihrer PyFlink Anwendung auf allgemeinste Weise Python-Abhängigkeiten hinzufügen können. Diese Methode funktioniert für einfache Abhängigkeiten wie Boto3 oder komplexe Abhängigkeiten, die C-Bibliotheken enthalten, wie z. PyArrow

Codebeispiel: [PythonDependencies](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/python/PythonDependencies)

## Verwenden Sie Fensteraggregationen (API) DataStream
<a name="windowing-aggregations-python"></a>

Dieses Beispiel demonstriert vier Typen der Fensteraggregation in SQL, eingebettet in eine Python-Anwendung.

1. Sliding Window auf der Grundlage der Verarbeitungszeit

1. Schiebefenster basierend auf der Ereigniszeit

1. Taumelndes Fenster basierend auf der Verarbeitungszeit

1. Tumbling Window basiert auf der Uhrzeit des Ereignisses

[Codebeispiel: Windowing](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/python/Windowing)

## Verwenden Sie eine S3-Senke
<a name="s3-sink-python"></a>

Dieses Beispiel zeigt, wie Sie Ihre Ausgabe als JSON-Dateien in Amazon S3 schreiben, indem Sie SQL verwenden, das in eine Python-Anwendung eingebettet ist. Sie müssen Checkpointing aktivieren, damit die S3-Senke Dateien auf Amazon S3 schreiben und rotieren kann. 

[Codebeispiel: S3Sink](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/python/S3Sink)

## Verwenden Sie eine benutzerdefinierte Funktion (UDF)
<a name="UDF-python"></a>

Dieses Beispiel zeigt, wie Sie eine benutzerdefinierte Funktion definieren, sie in Python implementieren und sie in SQL-Code verwenden, der in einer Python-Anwendung ausgeführt wird. 

Codebeispiel: [UDF](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/python/UDF)

## Verwenden Sie eine Amazon Data Firehose-Senke
<a name="Firehose-sink-python"></a>

Dieses Beispiel zeigt, wie Daten mithilfe von SQL an Amazon Data Firehose gesendet werden. 

Code-Beispiel: [FirehoseSink](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/python/FirehoseSink)

# Scala-Beispiele für Managed Service für Apache Flink
<a name="examples-new-scala"></a>

In den folgenden Beispielen wird die Erstellung von Anwendungen über Scala mit Apache Flink gezeigt.



## Richten Sie eine mehrstufige Anwendung ein
<a name="getting-started-scala"></a>

Dieses Beispiel zeigt, wie eine Flink-Anwendung in Scala eingerichtet wird. Es zeigt, wie das SBT-Projekt so konfiguriert wird, dass es Abhängigkeiten enthält und das Uber-JAR erstellt. 

Codebeispiel: [GettingStarted](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/scala/GettingStarted)