

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 de como criar e trabalhar com aplicativos no Managed Service for Apache Flink.
<a name="examples-collapsibles"></a>

Esta seção apresenta exemplos de como criar e trabalhar com aplicativos no Managed Service for Apache Flink. Eles incluem exemplos de código e step-by-step instruções para ajudar você a criar serviços gerenciados para aplicativos Apache Flink e testar seus resultados.

Antes de explorar esses exemplos, recomendamos que você analise em primeiro lugar o seguinte : 
+ [Como funciona](how-it-works.md)
+ [Tutorial: Comece a usar a DataStream API no Managed Service para Apache Flink](getting-started.md)

**nota**  
Esses exemplos pressupõem que você está usando a região Leste dos EUA (Norte da Virgínia) (us-east-1). Se você estiver usando uma região diferente, atualize o código, os comandos e o perfil do IAM do aplicativo de forma adequada.

**Topics**
+ [Exemplos em Java do Managed Service for Apache Flink](examples-new-java.md)
+ [Exemplos em Python do Managed Service for Apache Flink](examples-new-python.md)
+ [Exemplos em Scala do Managed Service for Apache Flink](examples-new-scala.md)

# 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)

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

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

**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 o mecanismo simples 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.

**Dependências do projeto**

A maioria dos PyFlink exemplos exige uma ou mais dependências como arquivos JAR, por exemplo, para conectores Flink. Essas dependências devem então ser empacotadas com o aplicativo quando implantadas no Amazon Managed Service for Apache Flink. 

Os exemplos a seguir já incluem as ferramentas que permitem executar o aplicativo localmente para desenvolvimento e teste, e para empacotar as dependências necessárias corretamente. Essas ferramentas requerem o uso de Java JDK11 e Apache Maven. Consulte o README contido em cada exemplo para obter as instruções específicas.

**Exemplos**

## Comece com PyFlink
<a name="getting-started-pyflink"></a>

Este exemplo demonstra a estrutura básica de um PyFlink aplicativo usando SQL incorporado no código Python. Esse projeto também fornece um esqueleto para qualquer PyFlink aplicativo que inclua dependências JAR, como conectores. A seção README fornece orientação detalhada sobre como executar seu aplicativo Python localmente para desenvolvimento. O exemplo também mostra como incluir uma única dependência JAR, o conector Kinesis SQL neste exemplo, em PyFlink seu aplicativo.

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

## Adicione dependências do Python
<a name="add-python-dependencies"></a>

Este exemplo mostra como adicionar dependências do Python ao seu PyFlink aplicativo da maneira mais geral. Esse método funciona para dependências simples, como Boto3, ou dependências complexas contendo bibliotecas C, como. PyArrow

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

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

Este exemplo demonstra quatro tipos de agregação de janelas no SQL incorporado em um aplicativo Python.

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/python/Windowing)

## Use um coletor do S3
<a name="s3-sink-python"></a>

Este exemplo mostra como gravar a saída no Amazon S3 como arquivos JSON, usando SQL incorporado em um aplicativo Python. Você deve ativar o ponto de verificação para o coletor do S3 gravar e alternar arquivos no Amazon S3. 

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

## Use uma função definida pelo usuário (UDF)
<a name="UDF-python"></a>

Este exemplo demonstra como configurar uma função definida pelo usuário, implementá-la em Python e usá-la no código SQL executado em um aplicativo Python. 

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

## Use um coletor do Amazon Data Firehose
<a name="Firehose-sink-python"></a>

Este exemplo demonstra como enviar dados para o Amazon Data Firehose usando SQL. 

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

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

Os exemplos a seguir demonstram como criar aplicativos usando o Scala com o Apache Flink.



## Configure um aplicativo de várias etapas
<a name="getting-started-scala"></a>

Este exemplo mostra como configurar o aplicativo Flink no Scala. Ele demonstra como configurar o projeto SBT para incluir dependências e compilar o uber-JAR. 

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