

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Exemples de Java pour le service géré pour Apache Flink
<a name="examples-new-java"></a>

Les exemples suivants montrent comment créer des applications écrites en Java.



**Note**  
La plupart des exemples sont conçus pour s'exécuter à la fois localement, sur votre machine de développement et sur l'IDE de votre choix, et sur Amazon Managed Service pour Apache Flink. Ils montrent les mécanismes que vous pouvez utiliser pour transmettre les paramètres de l'application et comment définir correctement la dépendance pour exécuter l'application dans les deux environnements sans modification.

## Améliorez les performances de sérialisation en définissant des paramètres personnalisés TypeInfo
<a name="improving-serialization-performance-java"></a>

Cet exemple montre comment définir la personnalisation TypeInfo dans votre enregistrement ou votre objet d'état afin d'éviter que la sérialisation ne revienne à la sérialisation Kryo, moins efficace. Cela est nécessaire, par exemple, lorsque vos objets contiennent un `List` ou`Map`. Pour plus d'informations, consultez la section [Types de données et sérialisation dans la](https://nightlies.apache.org/flink/flink-docs-release-1.20/docs/dev/datastream/fault-tolerance/serialization/types_serialization/#data-types--serialization) documentation d'Apache Flink. L'exemple montre également comment tester si la sérialisation de votre objet revient à la sérialisation Kryo, moins efficace.

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

## Commencez avec l' DataStream API
<a name="getting-started-datastream-java"></a>

Cet exemple montre une application simple qui lit à partir d'un flux de données Kinesis et écrit dans un autre flux de données Kinesis à l'aide de l'API. `DataStream` L'exemple montre comment configurer le fichier avec les dépendances correctes, créer l'Uber-JAR, puis analyser les paramètres de configuration afin de pouvoir exécuter l'application à la fois localement, dans votre IDE et sur Amazon Managed Service pour Apache Flink.

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

## Commencez avec l'API Table et SQL
<a name="getting-started-table-java"></a>

Cet exemple montre une application simple utilisant l'`Table`API et le SQL. Il montre comment intégrer l'`DataStream`API à l'`Table`API ou au SQL dans la même application Java. Il montre également comment utiliser le `DataGen` connecteur pour générer des données de test aléatoires à partir de l'application Flink elle-même, sans nécessiter de générateur de données externe.

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

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

Cet exemple montre comment utiliser les `DataStream` API `FileSink` pour écrire des fichiers JSON dans un compartiment S3.

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

## Utiliser une source Kinesis, des consommateurs standard ou EFO, et un récepteur (API) DataStream
<a name="kinesis-EFO-sink-java"></a>

Cet exemple montre comment configurer une source consommant un flux de données Kinesis, en utilisant le consommateur standard ou EFO, et comment configurer un récepteur pour le flux de données Kinesis.

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

## Utiliser un récepteur Amazon Data Firehose (API) DataStream
<a name="firehose-sink-java"></a>

Cet exemple montre comment envoyer des données à Amazon Data Firehose (anciennement connu sous le nom de Kinesis Data Firehose).

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

## Utilisez le connecteur d'évier Prometheus
<a name="prometheus-sink-java"></a>

Cet exemple illustre l'utilisation du connecteur [récepteur Prometheus](https://nightlies.apache.org/flink/flink-docs-release-1.20/docs/connectors/datastream/prometheus/) pour écrire des données de séries chronologiques dans Prometheus.

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

## Utiliser des agrégations de fenêtrage (API) DataStream
<a name="windowing-aggregations-java"></a>

Cet exemple illustre quatre types d'agrégation de fenêtrage dans l'`DataStream`API.

1. Fenêtre coulissante basée sur le temps de traitement

1. Fenêtre coulissante basée sur l'heure de l'événement

1. Fenêtre de défilement basée sur le temps de traitement

1. Fenêtre tumbling basée sur l'heure de l'événement

Exemple de code : [Fenêtrage](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/java/Windowing) 

## Utilisation de métriques personnalisées
<a name="custom-metrics-java"></a>

Cet exemple montre comment ajouter des métriques personnalisées à votre application Flink et les envoyer vers CloudWatch des métriques.

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

## Utilisez les fournisseurs de configuration Kafka pour récupérer un keystore et un truststore personnalisés pour les MTL lors de l'exécution
<a name="kafka-keystore-mTLS"></a>

Cet exemple montre comment vous pouvez utiliser les fournisseurs de configuration Kafka pour configurer un keystore et un truststore personnalisés avec des certificats d'authentification mTLS pour le connecteur Kafka. Cette technique vous permet de charger les certificats personnalisés requis depuis Amazon S3 et les secrets à partir du AWS Secrets Manager démarrage de l'application.

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

## Utilisez les fournisseurs de configuration Kafka pour récupérer les secrets SASL/SCRAM d'authentification lors de l'exécution
<a name="kafka-secrets"></a>

Cet exemple montre comment vous pouvez utiliser les fournisseurs de configuration Kafka pour récupérer les informations d'identification AWS Secrets Manager et télécharger le truststore depuis Amazon S3 afin de configurer l' SASL/SCRAM authentification sur un connecteur Kafka. Cette technique vous permet de charger les certificats personnalisés requis depuis Amazon S3 et les secrets à partir du AWS Secrets Manager démarrage de l'application.

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

## Utilisez les fournisseurs de configuration Kafka pour récupérer un keystore et un truststore personnalisés pour les MTL lors de l'exécution avec Table API/SQL
<a name="kafka-custom-keystore"></a>

Cet exemple montre comment vous pouvez utiliser les fournisseurs de configuration Kafka dans Table API /SQL pour configurer un keystore et un truststore personnalisés avec des certificats d'authentification mTLS pour le connecteur Kafka. Cette technique vous permet de charger les certificats personnalisés requis depuis Amazon S3 et les secrets à partir du AWS Secrets Manager démarrage de l'application.

Exemple de code : [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

## Utiliser les sorties latérales pour diviser un flux
<a name="side-output"></a>

Cet exemple montre comment tirer parti des [sorties secondaires](https://nightlies.apache.org/flink/flink-docs-master/docs/dev/datastream/side_output/) dans Apache Flink pour diviser un flux selon des attributs spécifiés. Ce modèle est particulièrement utile lorsque vous essayez d'implémenter le concept de Dead Letter Queues (DLQ) dans des applications de streaming.

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

## Utiliser Async I/O pour appeler un point de terminaison externe
<a name="async-i-o"></a>

Cet exemple montre comment utiliser les [E/S asynchrones d'Apache Flink pour appeler un point de](https://nightlies.apache.org/flink/flink-docs-release-1.20/docs/dev/datastream/operators/asyncio/) terminaison externe de manière non bloquante, avec de nouvelles tentatives en cas d'erreur récupérable.

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