

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Exemplos em Java do Managed Service for Apache Flink
<a name="examples-new-java"></a>

Os exemplos a seguir demonstram como criar aplicativos escritos em Java.



**nota**  
A maioria dos exemplos foi projetada para ser executada localmente, na máquina de desenvolvimento e no IDE de sua escolha, e no Amazon Managed Service for Apache Flink. Esses exemplos demonstram os mecanismos que você pode usar para transmitir os parâmetros do aplicativo e como definir a dependência corretamente para executar o aplicativo nos dois ambientes sem alterações.

## Melhore o desempenho da serialização definindo a personalização TypeInfo
<a name="improving-serialization-performance-java"></a>

Este exemplo ilustra como definir customização TypeInfo em seu registro ou objeto de estado para evitar que a serialização volte para a serialização menos eficiente do Kryo. Isso é necessário, por exemplo, quando seus objetos contêm um `List` ou `Map`. Para obter informações, consulte [Tipos de dados e serialização](https://nightlies.apache.org/flink/flink-docs-release-1.20/docs/dev/datastream/fault-tolerance/serialization/types_serialization/#data-types--serialization) na documentação do Apache Flink. O exemplo também mostra como testar se a serialização do objeto se baseia na serialização menos eficiente do Kryo.

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

## Comece a usar a DataStream API
<a name="getting-started-datastream-java"></a>

Este exemplo mostra um aplicativo simples, lendo de um fluxo de dados do Kinesis e gravando em outro fluxo de dados do Kinesis, usando a API `DataStream`. O exemplo demonstra como configurar o arquivo com as dependências corretas, como compilar o uber-JAR e depois analisar os parâmetros de configuração, para que você possa executar o aplicativo localmente, no seu IDE e no Amazon Managed Service for Apache Flink.

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

## Introdução à API Table e ao SQL
<a name="getting-started-table-java"></a>

Este exemplo mostra um aplicativo simples usando a API `Table` e o SQL. Ele demonstra como integrar a API `DataStream` com a API `Table` ou o SQL no mesmo aplicativo Java. Também demonstra como usar o conector `DataGen` para gerar dados de teste aleatórios de dentro do próprio aplicativo Flink, sem a necessidade de um gerador de dados externo.

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

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

Este exemplo demonstra como usar o `FileSink` da API `DataStream` para gravar arquivos JSON em um bucket do S3.

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

## Use uma fonte do Kinesis, consumidores padrão ou EFO e um coletor (API) DataStream
<a name="kinesis-EFO-sink-java"></a>

Este exemplo demonstra como configurar uma fonte que consome de um fluxo de dados do Kinesis, usando o consumidor padrão ou o EFO, e como configurar um coletor no fluxo de dados do Kinesis.

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

## Use um coletor Amazon Data Firehose (API) DataStream
<a name="firehose-sink-java"></a>

Este exemplo mostra como enviar dados para o Amazon Data Firehose (anteriormente conhecido como Kinesis Data Firehose).

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

## Use o conector do coletor Prometheus
<a name="prometheus-sink-java"></a>

Este exemplo demonstra o uso do [conector do coletor Prometheus](https://nightlies.apache.org/flink/flink-docs-release-1.20/docs/connectors/datastream/prometheus/) para gravar dados de séries temporais no Prometheus.

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

## Use agregações de janelas (API) DataStream
<a name="windowing-aggregations-java"></a>

Este exemplo demonstra quatro tipos de agregação de janelas na API `DataStream`.

1. Janela deslizante com base no tempo de processamento 

1. Janela deslizante com base na hora do evento 

1. Janela em cascata com base no tempo de processamento 

1. Janela em cascata com base na hora do evento

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

## Usar métricas personalizadas
<a name="custom-metrics-java"></a>

Este exemplo mostra como adicionar métricas personalizadas ao seu aplicativo Flink e enviá-las para CloudWatch métricas.

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

## Use os provedores de configuração do Kafka para obter armazenamento de chaves e armazenamento confiável personalizados para mTLS no runtime
<a name="kafka-keystore-mTLS"></a>

Este exemplo ilustra como você pode usar os provedores de configuração do Kafka para configurar um armazenamento de chaves e um armazenamento confiável personalizados com certificados para autenticação mTLS para o conector Kafka. Essa técnica permite carregar os certificados personalizados necessários do Amazon S3 e os segredos de AWS Secrets Manager quando o aplicativo é iniciado.

Exemplo de código: [kafka-MTLS-keystore- ConfigProviders](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/java/KafkaConfigProviders/Kafka-mTLS-Keystore-ConfigProviders)

## Use os provedores de configuração do Kafka para buscar segredos para SASL/SCRAM autenticação em tempo de execução
<a name="kafka-secrets"></a>

Este exemplo ilustra como você pode usar os provedores de configuração do Kafka para obter credenciais AWS Secrets Manager e baixar o armazenamento confiável do Amazon S3 para configurar a autenticação em um conector Kafka. SASL/SCRAM Essa técnica permite carregar os certificados personalizados necessários do Amazon S3 e os segredos de AWS Secrets Manager quando o aplicativo é iniciado.

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

## Use os provedores de configuração do Kafka para obter um keystore e um armazenamento confiável personalizados para mTLS no runtime com a API Table/SQL
<a name="kafka-custom-keystore"></a>

Este exemplo ilustra como você pode usar os provedores de configuração do Kafka na API Table /SQL para configurar um keystore e um armazenamento confiável personalizados com certificados para autenticação mTLS para o conector Kafka. Essa técnica permite carregar os certificados personalizados necessários do Amazon S3 e os segredos de AWS Secrets Manager quando o aplicativo é iniciado.

Exemplo de código: [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

## Use saídas laterais para dividir um fluxo
<a name="side-output"></a>

Este exemplo ilustra como aproveitar as [saídas laterais](https://nightlies.apache.org/flink/flink-docs-master/docs/dev/datastream/side_output/) no Apache Flink para dividir um fluxo em atributos especificados. Esse padrão é particularmente útil ao tentar implementar o conceito de fila de mensagens não entregues (DLQ) em aplicativos de transmissão.

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

## Use Async I/O para chamar um endpoint externo
<a name="async-i-o"></a>

Este exemplo ilustra como usar a [E/S assíncrona do Apache Flink](https://nightlies.apache.org/flink/flink-docs-release-1.20/docs/dev/datastream/operators/asyncio/) para chamar um endpoint externo de forma sem bloqueio, com novas tentativas para erros recuperáveis.

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