

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.

# 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