

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Contoh untuk membuat dan bekerja dengan Managed Service untuk aplikasi Apache Flink
<a name="examples-collapsibles"></a>

Bagian ini memberikan contoh membuat dan bekerja dengan aplikasi di Managed Service untuk Apache Flink. Mereka menyertakan kode contoh dan step-by-step instruksi untuk membantu Anda membuat Layanan Terkelola untuk aplikasi Apache Flink dan menguji hasil Anda.

Sebelum Anda menjelajahi contoh-contoh ini, sebaiknya tinjau hal berikut terlebih dulu: 
+ [Cara kerjanya](how-it-works.md)
+ [Tutorial: Mulai menggunakan DataStream API di Managed Service untuk Apache Flink](getting-started.md)

**catatan**  
Contoh-contoh ini mengasumsikan bahwa Anda menggunakan Wilayah AS Timur (Virginia N.) (us-east-1). Jika Anda menggunakan Wilayah yang berbeda, perbarui kode aplikasi, perintah, dan IAM role Anda dengan tepat.

**Topics**
+ [Contoh Java untuk Managed Service untuk Apache Flink](examples-new-java.md)
+ [Contoh Python untuk Managed Service untuk Apache Flink](examples-new-python.md)
+ [Contoh scala untuk Managed Service untuk Apache Flink](examples-new-scala.md)

# Contoh Java untuk Managed Service untuk Apache Flink
<a name="examples-new-java"></a>

Contoh berikut menunjukkan cara membuat aplikasi yang ditulis dalam Java.



**catatan**  
Sebagian besar contoh dirancang untuk dijalankan secara lokal, di mesin pengembangan dan IDE pilihan Anda, dan di Amazon Managed Service untuk Apache Flink. Mereka mendemonstrasikan mekanisme yang dapat Anda gunakan untuk meneruskan parameter aplikasi, dan cara mengatur ketergantungan dengan benar untuk menjalankan aplikasi di kedua lingkungan tanpa perubahan.

## Meningkatkan kinerja serialisasi mendefinisikan kustom TypeInfo
<a name="improving-serialization-performance-java"></a>

Contoh ini menggambarkan cara mendefinisikan kustom TypeInfo pada objek record atau state Anda untuk mencegah serialisasi kembali ke serialisasi Kryo yang kurang efisien. Ini diperlukan, misalnya, ketika objek Anda berisi `List` atau`Map`. Untuk informasi selengkapnya, lihat [Jenis Data & Serialisasi](https://nightlies.apache.org/flink/flink-docs-release-1.20/docs/dev/datastream/fault-tolerance/serialization/types_serialization/#data-types--serialization) dalam dokumentasi Apache Flink. Contoh ini juga menunjukkan bagaimana menguji apakah serialisasi objek Anda kembali ke serialisasi Kryo yang kurang efisien.

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

## Memulai dengan DataStream API
<a name="getting-started-datastream-java"></a>

Contoh ini menunjukkan aplikasi sederhana, membaca dari aliran data Kinesis dan menulis ke aliran data Kinesis lain, menggunakan API. `DataStream` Contoh ini menunjukkan cara mengatur file dengan dependensi yang benar, membangun UBER-JAR, dan kemudian mengurai parameter konfigurasi, sehingga Anda dapat menjalankan aplikasi baik secara lokal, di IDE Anda, dan di Amazon Managed Service untuk Apache Flink.

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

## Memulai dengan Table API dan SQL
<a name="getting-started-table-java"></a>

Contoh ini menunjukkan aplikasi sederhana menggunakan `Table` API dan SQL. Ini menunjukkan bagaimana mengintegrasikan `DataStream` API dengan `Table` API atau SQL dalam aplikasi Java yang sama. Ini juga menunjukkan bagaimana menggunakan `DataGen` konektor untuk menghasilkan data uji acak dari dalam aplikasi Flink itu sendiri, tidak memerlukan generator data eksternal.

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

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

Contoh ini menunjukkan cara menggunakan `DataStream` API untuk menulis file JSON `FileSink` ke bucket S3.

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

## Gunakan sumber Kinesis, standar atau konsumen EFO, dan sink (API) DataStream
<a name="kinesis-EFO-sink-java"></a>

Contoh ini menunjukkan cara mengonfigurasi konsumsi sumber dari aliran data Kinesis, baik menggunakan konsumen standar atau EFO, dan cara mengatur sink ke aliran data Kinesis.

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

## Menggunakan wastafel Amazon Data Firehose (DataStream API)
<a name="firehose-sink-java"></a>

Contoh ini menunjukkan cara mengirim data ke Amazon Data Firehose (sebelumnya dikenal sebagai Kinesis Data Firehose).

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

## Gunakan konektor wastafel Prometheus
<a name="prometheus-sink-java"></a>

Contoh ini menunjukkan penggunaan konektor [sink Prometheus untuk menulis data deret waktu ke Prometheus](https://nightlies.apache.org/flink/flink-docs-release-1.20/docs/connectors/datastream/prometheus/).

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

## Gunakan agregasi windowing (API) DataStream
<a name="windowing-aggregations-java"></a>

Contoh ini menunjukkan empat jenis agregasi windowing di API. `DataStream`

1. Jendela Geser berdasarkan waktu pemrosesan

1. Jendela Geser berdasarkan waktu acara

1. Tumbling Window berdasarkan waktu pemrosesan

1. Jatuh Jendela berdasarkan waktu acara

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

## Gunakan metrik khusus
<a name="custom-metrics-java"></a>

Contoh ini menunjukkan cara menambahkan metrik khusus ke aplikasi Flink Anda dan mengirimkannya ke CloudWatch metrik.

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

## Gunakan Penyedia Konfigurasi Kafka untuk mengambil keystore kustom dan truststore untuk mTL saat runtime
<a name="kafka-keystore-mTLS"></a>

Contoh ini menggambarkan bagaimana Anda dapat menggunakan Penyedia Konfigurasi Kafka untuk menyiapkan keystore kustom dan truststore dengan sertifikat untuk otentikasi mTLS untuk konektor Kafka. Teknik ini memungkinkan Anda memuat sertifikat kustom yang diperlukan dari Amazon S3 dan rahasia dari AWS Secrets Manager saat aplikasi dimulai.

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

## Gunakan Penyedia Konfigurasi Kafka untuk mengambil rahasia untuk SASL/SCRAM otentikasi saat runtime
<a name="kafka-secrets"></a>

Contoh ini menggambarkan bagaimana Anda dapat menggunakan Penyedia Konfigurasi Kafka untuk mengambil kredensyal dari AWS Secrets Manager dan mengunduh truststore dari Amazon S3 untuk mengatur otentikasi pada konektor Kafka. SASL/SCRAM Teknik ini memungkinkan Anda memuat sertifikat kustom yang diperlukan dari Amazon S3 dan rahasia dari AWS Secrets Manager saat aplikasi dimulai.

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

## Gunakan Penyedia Konfigurasi Kafka untuk mengambil keystore kustom dan truststore untuk mTL saat runtime dengan Tabel API/SQL
<a name="kafka-custom-keystore"></a>

Contoh ini menggambarkan bagaimana Anda dapat menggunakan Penyedia Konfigurasi Kafka di Tabel API /SQL untuk menyiapkan keystore kustom dan truststore dengan sertifikat untuk otentikasi mTLS untuk konektor Kafka. Teknik ini memungkinkan Anda memuat sertifikat kustom yang diperlukan dari Amazon S3 dan rahasia dari AWS Secrets Manager saat aplikasi dimulai.

Contoh kode: [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

## Gunakan Output Samping untuk membagi aliran
<a name="side-output"></a>

Contoh ini menggambarkan cara memanfaatkan [Side Output](https://nightlies.apache.org/flink/flink-docs-master/docs/dev/datastream/side_output/) di Apache Flink untuk memisahkan aliran pada atribut tertentu. Pola ini sangat berguna ketika mencoba menerapkan konsep Dead Letter Queues (DLQ) dalam aplikasi streaming.

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

## Gunakan Async I/O untuk memanggil endpoint eksternal
<a name="async-i-o"></a>

Contoh ini menggambarkan cara menggunakan [Apache Flink Async I/O](https://nightlies.apache.org/flink/flink-docs-release-1.20/docs/dev/datastream/operators/asyncio/) untuk memanggil titik akhir eksternal dengan cara yang tidak memblokir, dengan mencoba ulang pada kesalahan yang dapat dipulihkan.

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

# Contoh Python untuk Managed Service untuk Apache Flink
<a name="examples-new-python"></a>

Contoh berikut menunjukkan cara membuat aplikasi yang ditulis dengan Python.

**catatan**  
Sebagian besar contoh dirancang untuk dijalankan secara lokal, di mesin pengembangan dan IDE pilihan Anda, dan di Amazon Managed Service untuk Apache Flink. Mereka mendemonstrasikan mekanisme sederhana yang dapat Anda gunakan untuk meneruskan parameter aplikasi, dan cara mengatur ketergantungan dengan benar untuk menjalankan aplikasi di kedua lingkungan tanpa perubahan.

**Ketergantungan proyek**

Sebagian besar PyFlink contoh memerlukan satu atau lebih dependensi sebagai file JAR, misalnya untuk konektor Flink. Dependensi ini kemudian harus dikemas dengan aplikasi saat digunakan di Amazon Managed Service untuk Apache Flink. 

Contoh berikut sudah menyertakan perkakas yang memungkinkan Anda menjalankan aplikasi secara lokal untuk pengembangan dan pengujian, dan untuk mengemas dependensi yang diperlukan dengan benar. Perkakas ini membutuhkan penggunaan Java JDK11 dan Apache Maven. Lihat README yang terkandung dalam setiap contoh untuk instruksi spesifik.

**Contoh**

## Memulai dengan PyFlink
<a name="getting-started-pyflink"></a>

Contoh ini menunjukkan struktur dasar PyFlink aplikasi menggunakan SQL tertanam dalam kode Python. Proyek ini juga menyediakan kerangka untuk PyFlink aplikasi apa pun yang mencakup dependensi JAR seperti konektor. Bagian README memberikan panduan terperinci tentang cara menjalankan aplikasi Python Anda secara lokal untuk pengembangan. Contoh ini juga menunjukkan cara menyertakan dependensi JAR tunggal, konektor Kinesis SQL dalam contoh ini, dalam aplikasi Anda. PyFlink

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

## Tambahkan dependensi Python
<a name="add-python-dependencies"></a>

Contoh ini menunjukkan cara menambahkan dependensi Python ke PyFlink aplikasi Anda dengan cara yang paling umum. Metode ini berfungsi untuk dependensi sederhana, seperti Boto3, atau dependensi kompleks yang berisi pustaka C seperti. PyArrow

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

## Gunakan agregasi windowing (API) DataStream
<a name="windowing-aggregations-python"></a>

Contoh ini menunjukkan empat jenis agregasi windowing di SQL tertanam dalam aplikasi Python.

1. Jendela Geser berdasarkan waktu pemrosesan

1. Jendela Geser berdasarkan waktu acara

1. Tumbling Window berdasarkan waktu pemrosesan

1. Jatuh Jendela berdasarkan waktu acara

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

## Gunakan wastafel S3
<a name="s3-sink-python"></a>

Contoh ini menunjukkan cara menulis output Anda ke Amazon S3 sebagai file JSON, menggunakan SQL yang disematkan dalam aplikasi Python. Anda harus mengaktifkan pos pemeriksaan untuk wastafel S3 untuk menulis dan memutar file ke Amazon S3. 

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

## Menggunakan User Defined Function (UDF)
<a name="UDF-python"></a>

Contoh ini menunjukkan bagaimana mendefinisikan User Defined Function, mengimplementasikannya dengan Python, dan menggunakannya dalam kode SQL yang berjalan dalam aplikasi Python. 

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

## Menggunakan wastafel Amazon Data Firehose
<a name="Firehose-sink-python"></a>

Contoh ini menunjukkan cara mengirim data ke Amazon Data Firehose menggunakan SQL. 

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

# Contoh scala untuk Managed Service untuk Apache Flink
<a name="examples-new-scala"></a>

Contoh berikut menunjukkan cara membuat aplikasi menggunakan Scala dengan Apache Flink.



## Siapkan aplikasi multi-langkah
<a name="getting-started-scala"></a>

Contoh ini menunjukkan cara mengatur aplikasi Flink di Scala. Ini menunjukkan cara mengkonfigurasi proyek SBT untuk menyertakan dependensi dan membangun UBER-JAR. 

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