

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

# Tutorial: Membuat notebook Studio di Managed Service untuk Apache Flink
<a name="example-notebook"></a>

Tutorial berikut menunjukkan cara membuat notebook Studio yang membaca data dari aliran data Kinesis atau cluster MSK Amazon.

**Topics**
+ [Lengkapi prasyarat](#example-notebook-setup)
+ [Buat AWS Glue database](#example-notebook-glue)
+ [Langkah selanjutnya: Buat notebook Studio dengan Kinesis Data Streams atau Amazon MSK](#examples-notebook-nextsteps)
+ [Buat notebook Studio dengan Kinesis Data Streams](example-notebook-streams.md)
+ [Buat notebook Studio dengan Amazon MSK](example-notebook-msk.md)
+ [Bersihkan aplikasi Anda dan sumber daya yang bergantung](example-notebook-cleanup.md)

## Lengkapi prasyarat
<a name="example-notebook-setup"></a>

Pastikan versi Anda AWS CLI adalah versi 2 atau yang lebih baru. Untuk menginstal yang terbaru AWS CLI, lihat [Menginstal, memperbarui, dan menghapus instalasi AWS CLI versi 2](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html).

## Buat AWS Glue database
<a name="example-notebook-glue"></a>

Notebook Studio Anda menggunakan basis data [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) untuk metadata tentang sumber data Amazon MSK Anda.

**Buat AWS Glue Database**

1. Buka AWS Glue konsol di [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/).

1. Pilih **Add database** (Tambahkan basis data). Di jendela **Add database** (Tambahkan basis data), masukkan **default** untuk **Database name** (Nama basis data). Pilih **Create** (Buat). 

## Langkah selanjutnya: Buat notebook Studio dengan Kinesis Data Streams atau Amazon MSK
<a name="examples-notebook-nextsteps"></a>

Dengan tutorial ini, Anda dapat membuat notebook Studio yang menggunakan Kinesis Data Streams atau Amazon MSK:
+ [Buat notebook Studio dengan Kinesis Data Streams](example-notebook-streams.md): Dengan Kinesis Data Streams, Anda dengan cepat membuat aplikasi yang menggunakan aliran data Kinesis sebagai sumber. Anda hanya perlu membuat Kinesis data stream sebagai sumber daya dependen.
+ [Buat notebook Studio dengan Amazon MSK](example-notebook-msk.md): Dengan Amazon MSK, Anda membuat aplikasi yang menggunakan klaster Amazon MSK sebagai sumber. Anda perlu membuat Amazon VPC, instans klien Amazon EC2, dan klaster Amazon MSK sebagai sumber daya dependen.

# Buat notebook Studio dengan Kinesis Data Streams
<a name="example-notebook-streams"></a>

Tutorial ini menjelaskan cara membuat notebook Studio yang menggunakan Kinesis data stream sebagai sumber.

**Topics**
+ [Lengkapi prasyarat](#example-notebook-streams-setup)
+ [Buat AWS Glue tabel](#example-notebook-streams-glue)
+ [Buat notebook Studio dengan Kinesis Data Streams](#example-notebook-streams-create)
+ [Kirim data ke Kinesis data stream Anda](#example-notebook-streams-send)
+ [Uji notebook Studio Anda](#example-notebook-streams-test)

## Lengkapi prasyarat
<a name="example-notebook-streams-setup"></a>

Sebelum Anda membuat notebook Studio, buat Kinesis data stream (`ExampleInputStream`). Aplikasi Anda menggunakan aliran ini untuk sumber aplikasi.

Anda dapat membuat aliran ini menggunakan konsol Amazon Kinesis atau perintah AWS CLI . Untuk instruksi konsol, lihat [Membuat dan Memperbarui Aliran Data](https://docs.aws.amazon.com/kinesis/latest/dev/amazon-kinesis-streams.html) di *Panduan Developer Amazon Kinesis Data Streams*. Beri nama aliran **ExampleInputStream** dan atur **Number of open shards** (Jumlah serpihan terbuka) ke **1**.

Untuk membuat stream (`ExampleInputStream`) menggunakan AWS CLI, gunakan perintah Amazon Kinesis `create-stream` AWS CLI berikut.

```
$ aws kinesis create-stream \
--stream-name ExampleInputStream \
--shard-count 1 \
--region us-east-1 \
--profile adminuser
```

## Buat AWS Glue tabel
<a name="example-notebook-streams-glue"></a>

Notebook Studio Anda menggunakan basis data [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) untuk metadata tentang sumber data Kinesis Data Streams Anda.

**catatan**  
Anda dapat membuat database secara manual terlebih dahulu atau Anda dapat membiarkan Managed Service for Apache Flink membuatnya untuk Anda saat Anda membuat buku catatan. Demikian pula, Anda dapat membuat tabel secara manual seperti yang dijelaskan di bagian ini, atau Anda dapat menggunakan kode konektor buat tabel untuk Layanan Terkelola untuk Apache Flink di buku catatan Anda dalam Apache Zeppelin untuk membuat tabel Anda melalui pernyataan DDL. Anda kemudian dapat check-in AWS Glue untuk memastikan tabel dibuat dengan benar.

**Buat Tabel**

1. Masuk ke Konsol Manajemen AWS dan buka AWS Glue konsol di [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/).

1. Jika Anda belum memiliki AWS Glue database, pilih **Database** dari bilah navigasi kiri. Pilih **Add database** (Tambahkan basis data). Di jendela **Add database** (Tambahkan basis data), masukkan **default** untuk **Database name** (Nama basis data). Pilih **Create** (Buat).

1. Di bilah navigasi sebelah kiri, pilih **Tables** (Tabel). Di halaman **Tabel**, pilih **Add tables** (Tambahkan tabel), **Add table manually** (Tambahkan tabel secara manual).

1. Di halaman **Set up your table's properties** (Siapkan properti tabel Anda), masukkan **stock** untuk **Table name** (Nama tabel). Pastikan Anda memilih basis data yang Anda buat sebelumnya. Pilih **Berikutnya**.

1. Di halaman **Tambahkan penyimpanan data**, pilih **Kinesis**. Untuk **Stream name** (Nama aliran), masukkan **ExampleInputStream**. untuk **Kinesis source URL** (URL sumber Kinesis), pilih masukkan **https://kinesis.us-east-1.amazonaws.com**. Jika Anda menyalin dan menempel **URL sumber Kinesis**, pastikan untuk menghapus spasi awal atau akhir. Pilih **Berikutnya**.

1. Di halaman **Klasifikasi**, pilih **JSON**. Pilih **Berikutnya**.

1. Di halaman **Tentukan skema**, pilih Add Column (Tambahkan kolom) untuk menambahkan kolom. Tambahkan kolom dengan properti berikut:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/managed-flink/latest/java/example-notebook-streams.html)

   Pilih **Berikutnya**.

1. Di halaman berikutnya, verifikasi pengaturan Anda, dan pilih **Finish** (Selesai).

1. Pilih tabel yang baru dibuat dari daftar tabel.

1. Pilih **Edit table** (Edit tabel) dan tambahkan properti dengan kunci `managed-flink.proctime` dan nilai `proctime`.

1. Pilih **Apply** (Terapkan).

## Buat notebook Studio dengan Kinesis Data Streams
<a name="example-notebook-streams-create"></a>

Sekarang Anda sudah membuat sumber daya yang digunakan aplikasi Anda, Anda membuat notebook Studio Anda. 

**Topics**
+ [Buat notebook Studio menggunakan Konsol Manajemen AWS](#example-notebook-create-streams-console)
+ [Buat notebook Studio menggunakan AWS CLI](#example-notebook-msk-create-api)

### Buat notebook Studio menggunakan Konsol Manajemen AWS
<a name="example-notebook-create-streams-console"></a>

1. [Buka Layanan Terkelola untuk konsol Apache Flink di https://console.aws.amazon.com/managed-flink/ rumah? region=us-east-1\$1/aplikasi/dasbor](https://console.aws.amazon.com/managed-flink/home?region=us-east-1#/applications/dashboard). 

1. Di halaman **Managed Service for Apache Flink Apache Applications**, pilih tab **Studio**. Pilih **Create Studio notebook** (Buat notebook Studio).
**catatan**  
Anda juga dapat membuat notebook Studio dari konsol Amazon MSK atau Kinesis Data Streams dengan memilih klaster Amazon MSK input atau Kinesis data stream, dan memilih **Process data in real time** (Proses data secara langsung).

1. Di halaman **Buat notebook Studio**, berikan informasi berikut:
   + Masukkan **MyNotebook** untuk nama notebook.
   + Pilih **default** untuk **Basis data AWS Glue**.

   Pilih **Create Studio notebook** (Buat notebook Studio).

1. Di **MyNotebook**halaman, pilih **Jalankan**. Tunggu **Status** hingga menampilkan **Running** (Berjalan). Biaya berlaku saat notebook berjalan.

### Buat notebook Studio menggunakan AWS CLI
<a name="example-notebook-msk-create-api"></a>

Untuk membuat notebook Studio menggunakan AWS CLI, lakukan hal berikut:

1. Verifikasi ID akun Anda. Anda memerlukan nilai ini untuk membuat aplikasi Anda.

1. Buat peran `arn:aws:iam::AccountID:role/ZeppelinRole` dan tambahkan izin berikut ke peran yang dibuat secara otomatis oleh konsol.

   `"kinesis:GetShardIterator",`

   `"kinesis:GetRecords",`

   `"kinesis:ListShards"`

1. Buat file bernama `create.json` dengan konten berikut. Ganti nilai placeholder dengan informasi Anda.

   ```
   {
       "ApplicationName": "MyNotebook",
       "RuntimeEnvironment": "ZEPPELIN-FLINK-3_0",
       "ApplicationMode": "INTERACTIVE",
       "ServiceExecutionRole": "arn:aws:iam::AccountID:role/ZeppelinRole",
       "ApplicationConfiguration": {
           "ApplicationSnapshotConfiguration": {
               "SnapshotsEnabled": false
           },
           "ZeppelinApplicationConfiguration": {
               "CatalogConfiguration": {
                   "GlueDataCatalogConfiguration": {
                       "DatabaseARN": "arn:aws:glue:us-east-1:AccountID:database/default"
                   }
               }
           }
       }
   }
   ```

1. Jalankan perintah berikut untuk membuat aplikasi Anda.

   ```
   aws kinesisanalyticsv2 create-application --cli-input-json file://create.json 
   ```

1. Setelah perintah selesai, Anda melihat output yang menampilkan detail untuk notebook Studio baru Anda. Berikut adalah contoh output.

   ```
   {
       "ApplicationDetail": {
           "ApplicationARN": "arn:aws:kinesisanalyticsus-east-1:012345678901:application/MyNotebook",
           "ApplicationName": "MyNotebook",
           "RuntimeEnvironment": "ZEPPELIN-FLINK-3_0",
           "ApplicationMode": "INTERACTIVE",
           "ServiceExecutionRole": "arn:aws:iam::012345678901:role/ZeppelinRole",
   ...
   ```

1. Jalankan perintah berikut untuk memulai aplikasi Anda. Ganti nilai sampel dengan ID akun Anda.

   ```
   aws kinesisanalyticsv2 start-application --application-arn arn:aws:kinesisanalyticsus-east-1:012345678901:application/MyNotebook\
   ```

## Kirim data ke Kinesis data stream Anda
<a name="example-notebook-streams-send"></a>

Untuk mengirim data uji ke Kinesis data stream, lakukan hal berikut:

1. Buka [ Kinesis Data Generator](https://awslabs.github.io/amazon-kinesis-data-generator/web/help.html). 

1. Pilih **Buat Pengguna Cognito** dengan. CloudFormation

1.  CloudFormation Konsol terbuka dengan template Kinesis Data Generator. Pilih **Berikutnya**.

1. Di halaman **Tentukan detail tumpukan**, masukkan nama pengguna dan kata sandi pengguna Cognito Anda. Pilih **Berikutnya**.

1. Di halaman **Konfigurasikan opsi tumpukan**, pilih **Next** (Berikutnya).

1. Di halaman **Review Kinesis-Data-Generator-Cognito -User**, pilih yang **saya akui yang AWS CloudFormation mungkin membuat sumber daya IAM**. kotak centang. Pilih **Buat tumpukan**.

1. Tunggu CloudFormation tumpukan selesai dibuat. **Setelah tumpukan selesai, buka tumpukan **Kinesis-Data-Generator-Cognito-User** di konsol, dan pilih tab Output. CloudFormation ** Buka URL yang terdaftar untuk nilai **KinesisDataGeneratorUrl**output.

1. Di halaman **Amazon Kinesis Data Generator**, masuk dengan kredensial yang Anda buat di langkah 4.

1. Di halaman berikutnya, berikan nilai berikut:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/managed-flink/latest/java/example-notebook-streams.html)

   Untuk **Record Template** (Templat Catatan), tempel kode berikut:

   ```
   {
       "ticker": "{{random.arrayElement(
           ["AMZN","MSFT","GOOG"]
       )}}",
       "price": {{random.number(
           {
               "min":10,
               "max":150
           }
       )}}
   }
   ```

1. Pilih **Send data** (Kirim data).

1. Generator akan mengirimkan data ke Kinesis data stream Anda. 

   Biarkan generator berjalan sewaktu Anda menyelesaikan bagian berikutnya.

## Uji notebook Studio Anda
<a name="example-notebook-streams-test"></a>

Di bagian ini, Anda menggunakan notebook Studio untuk mengkueri data dari Kinesis data stream Anda.

1. [Buka Layanan Terkelola untuk konsol Apache Flink di https://console.aws.amazon.com/managed-flink/ rumah? region=us-east-1\$1/aplikasi/dasbor](https://console.aws.amazon.com/managed-flink/home?region=us-east-1#/applications/dashboard).

1. Pada halaman **Managed Service for Apache Flink Apache Applications**, pilih tab **notebook Studio**. Pilih **MyNotebook**.

1. Di **MyNotebook**halaman, pilih **Buka di Apache Zeppelin**.

   Antarmuka Apache Zeppelin terbuka di tab baru.

1. Di halaman **Selamat Datang di Zeppelin\$1**, pilih **Zeppelin Note** (Catatan Zeppelin).

1. Di halaman **Zeppelin Note** (Catatan Zeppelin), masukkan kueri berikut ke dalam catatan baru:

   ```
   %flink.ssql(type=update)
   select * from stock
   ```

   Pilih ikon jalankan.

   Setelah beberapa saat, catatan menampilkan data dari Kinesis data stream.

Untuk membuka Dasbor Apache Flink untuk aplikasi Anda agar dapat melihat aspek operasional, pilih **FLINK JOB** (TUGAS FLINK). Untuk informasi selengkapnya tentang Dasbor Flink, lihat Dasbor [Apache Flink](https://docs.aws.amazon.com/managed-flink/latest/java/how-dashboard.html) di [Managed Service for Apache](https://docs.aws.amazon.com/) Flink Developer Guide.

Untuk contoh kueri SQL Flink Streaming selengkapnya, lihat [Kueri](https://nightlies.apache.org/flink/flink-docs-release-1.15/dev/table/sql/queries.html) di [Dokumentasi Apache Flink](https://nightlies.apache.org/flink/flink-docs-release-1.15/).

# Buat notebook Studio dengan Amazon MSK
<a name="example-notebook-msk"></a>

Tutorial ini menjelaskan cara membuat notebook Studio yang menggunakan klaster Amazon MSK sebagai sumber.

**Topics**
+ [Siapkan kluster MSK Amazon](#example-notebook-msk-setup)
+ [Tambahkan gateway NAT ke VPC Anda](#example-notebook-msk-nat)
+ [Buat AWS Glue koneksi dan tabel](#example-notebook-msk-glue)
+ [Buat notebook Studio dengan Amazon MSK](#example-notebook-msk-create)
+ [Kirim data ke klaster Amazon MSK Anda](#example-notebook-msk-send)
+ [Uji notebook Studio Anda](#example-notebook-msk-test)

## Siapkan kluster MSK Amazon
<a name="example-notebook-msk-setup"></a>

Untuk tutorial ini, Anda memerlukan klaster Amazon MSK yang memungkinkan akses plaintext. Jika Anda belum menyiapkan kluster MSK Amazon, ikuti tutorial [Memulai Menggunakan Amazon MSK](https://docs.aws.amazon.com/msk/latest/developerguide/getting-started.html) untuk membuat Amazon VPC, kluster MSK Amazon, topik, dan instance klien Amazon. EC2 

Saat mengikuti tutorial, lakukan hal berikut:
+ Di [Langkah 3: Buat Klaster Amazon MSK](https://docs.aws.amazon.com/msk/latest/developerguide/create-cluster.html), di langkah 4, ubah nilai `ClientBroker` dari `TLS` ke **PLAINTEXT**.

## Tambahkan gateway NAT ke VPC Anda
<a name="example-notebook-msk-nat"></a>

Jika Anda membuat klaster Amazon MSK dengan mengikuti tutorial [Memulai Menggunakan Amazon MSK](https://docs.aws.amazon.com/msk/latest/developerguide/getting-started.html), atau jika Amazon VPC Anda yang sudah ada tidak memiliki gateway NAT untuk subnet privatnya, Anda harus menambahkan Gateway NAT ke Amazon VPC Anda. Diagram berikut menunjukkan arsitektur. 

![\[AWS VPC architecture with public and private subnets, NAT gateway, and Glue Data Catalog integration.\]](http://docs.aws.amazon.com/id_id/managed-flink/latest/java/images/vpc_05.png)


Untuk membuat gateway NAT untuk VPC Amazon Anda, lakukan hal berikut:

1. Buka konsol VPC Amazon di. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)

1. Pilih **NAT Gateways** (Gateway NAT) dari bilah navigasi sebelah kiri.

1. Di halaman **Gateway NAT**, pilih **Create NAT Gateway** (Buat Gateway NAT).

1. Di halaman **Buat Gateway NAT**, berikan nilai berikut:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/managed-flink/latest/java/example-notebook-msk.html)

   Pilih **Create NAT Gateway** (Buat Gateway NAT).

1. Di bilah navigasi sebelah kiri, pilih **Route Tables** (Tabel Rute).

1. Pilih **Create Route Table** (Buat Tabel Rute).

1. Di halaman **Create route table** (Buat tabel rute), berikan informasi berikut:
   + **Name tag** (Tanda nama): **ZeppelinRouteTable**
   + **VPC****: Pilih VPC Anda (misalnya VPC).AWS KafkaTutorial**

   Pilih **Buat**.

1. Dalam daftar tabel rute, pilih **ZeppelinRouteTable**. Pilih tab **Routes** (Rute), dan pilih **Edit routes** (Edit rute).

1. Di halaman **Edit Rute**, pilih **Add route** (Tambahkan rute).

1. Di ****Untuk **Tujuan**, masukkan **0.0.0.0/0**. Untuk **Target**, pilih **NAT Gateway**, **ZeppelinGateway**. Pilih **Save Routes** (Simpan Rute). Pilih **Close** (Tutup).

1. Pada halaman Tabel Rute, dengan **ZeppelinRouteTable**dipilih, pilih tab **Asosiasi Subnet**. Pilih **Edit subnet associations** (Edit asosiasi subnet).

1. Di halaman **Edit asosiasi subnet**, pilih **AWS KafkaTutorialSubnet2** dan **AWS KafkaTutorialSubnet3**. Pilih **Simpan**.

## Buat AWS Glue koneksi dan tabel
<a name="example-notebook-msk-glue"></a>

Notebook Studio Anda menggunakan basis data [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) untuk metadata tentang sumber data Amazon MSK Anda. Di bagian ini, Anda membuat AWS Glue sambungan yang menjelaskan cara mengakses kluster MSK Amazon, dan AWS Glue tabel yang menjelaskan cara menyajikan data dalam sumber data ke klien seperti buku catatan Studio Anda. 

**Buat Koneksi**

1. Masuk ke Konsol Manajemen AWS dan buka AWS Glue konsol di [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/).

1. Jika Anda belum memiliki AWS Glue database, pilih **Database** dari bilah navigasi kiri. Pilih **Add database** (Tambahkan basis data). Di jendela **Add database** (Tambahkan basis data), masukkan **default** untuk **Database name** (Nama basis data). Pilih **Create** (Buat).

1. Pilih **Connections** (Koneksi) dari bilah navigasi sebelah kiri. Pilih **Add Connection** (Tambahkan Koneksi).

1. Di jendela **Tambahkan Koneksi**, berikan nilai berikut:
   + Untuk **Connection name** (Nama koneksi), masukkan **ZeppelinConnection**.
   + Untuk **Connection type** (Tipe koneksi), pilih **Kafka**.
   + Untuk **server bootstrap Kafka URLs**, berikan string broker bootstrap untuk cluster Anda. Anda bisa mendapatkan broker bootstrap dari konsol MSK, atau dengan memasukkan perintah CLI berikut:

     ```
     aws kafka get-bootstrap-brokers --region us-east-1 --cluster-arn ClusterArn
     ```
   + Hapus centang di kotak centang **Require SSL connection** (Perlu koneksi SSL).

   Pilih **Berikutnya**.

1. Di halaman **VPC**, berikan nilai berikut:
   + **Untuk **VPC**, pilih nama VPC Anda (misalnya VPC.) AWS KafkaTutorial**
   + Untuk **Subnet**, pilih **AWS KafkaTutorialSubnet2**.
   + Untuk **Security groups** (Grup keamanan), pilih semua grup yang tersedia.

   Pilih **Berikutnya**.

1. Di halaman **Properti koneksi** / **Akses koneksi**, pilih **Finish** (Selesai).

**Buat Tabel**
**catatan**  
Anda dapat membuat tabel secara manual seperti yang dijelaskan dalam langkah-langkah berikut, atau Anda dapat menggunakan kode konektor buat tabel untuk Layanan Terkelola untuk Apache Flink di buku catatan Anda dalam Apache Zeppelin untuk membuat tabel Anda melalui pernyataan DDL. Anda kemudian dapat check-in AWS Glue untuk memastikan tabel dibuat dengan benar.

1. Di bilah navigasi sebelah kiri, pilih **Tables** (Tabel). Di halaman **Tabel**, pilih **Add tables** (Tambahkan tabel), **Add table manually** (Tambahkan tabel secara manual).

1. Di halaman **Set up your table's properties** (Siapkan properti tabel Anda), masukkan **stock** untuk **Table name** (Nama tabel). Pastikan Anda memilih basis data yang Anda buat sebelumnya. Pilih **Berikutnya**.

1. Di halaman **Tambahkan penyimpanan data**, pilih **Kafka**. Untuk **nama Topik**, masukkan nama topik Anda (mis. **AWS KafkaTutorialTopic**). Untuk **Koneksi**, pilih **ZeppelinConnection**.

1. Di halaman **Klasifikasi**, pilih **JSON**. Pilih **Berikutnya**.

1. Di halaman **Tentukan skema**, pilih Add Column (Tambahkan kolom) untuk menambahkan kolom. Tambahkan kolom dengan properti berikut:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/managed-flink/latest/java/example-notebook-msk.html)

   Pilih **Berikutnya**.

1. Di halaman berikutnya, verifikasi pengaturan Anda, dan pilih **Finish** (Selesai).

1. Pilih tabel yang baru dibuat dari daftar tabel.

1. Pilih **Edit tabel** dan tambahkan properti berikut:
   + kunci:`managed-flink.proctime`, nilai: `proctime`
   + kunci:`flink.properties.group.id`, nilai: `test-consumer-group`
   + kunci:`flink.properties.auto.offset.reset`, nilai: `latest`
   + kunci:`classification`, nilai: `json`

   Tanpa pasangan kunci/nilai ini, notebook Flink mengalami kesalahan. 

1. Pilih **Terapkan**.

## Buat notebook Studio dengan Amazon MSK
<a name="example-notebook-msk-create"></a>

Sekarang Anda sudah membuat sumber daya yang digunakan aplikasi Anda, Anda membuat notebook Studio Anda. 

**Topics**
+ [Buat notebook Studio menggunakan Konsol Manajemen AWS](#example-notebook-create-msk-console)
+ [Buat notebook Studio menggunakan AWS CLI](#example-notebook-msk-create-api)

**catatan**  
Anda juga dapat membuat notebook Studio dari konsol Amazon MSK dengan memilih klaster yang sudah ada, lalu memilih **Process data in real time** (Proses data secara langsung).

### Buat notebook Studio menggunakan Konsol Manajemen AWS
<a name="example-notebook-create-msk-console"></a>

1. [Buka Layanan Terkelola untuk konsol Apache Flink di https://console.aws.amazon.com/managed-flink/ rumah? region=us-east-1\$1/aplikasi/dasbor](https://console.aws.amazon.com/managed-flink/home?region=us-east-1#/applications/dashboard).

1. Di halaman **Managed Service for Apache Flink Apache Applications**, pilih tab **Studio**. Pilih **Create Studio notebook** (Buat notebook Studio).
**catatan**  
Untuk membuat notebook Studio dari konsol Amazon MSK atau Kinesis Data Streams pilih klaster Amazon MSK input atau Kinesis data stream Anda, lalu pilih **Process data in real time** (Proses data secara langsung).

1. Di halaman **Buat notebook Studio**, berikan informasi berikut:
   + Masukkan **MyNotebook** untuk **Studio notebook Name** (Nama notebook Studio).
   + Pilih **default** untuk **Basis data AWS Glue**.

   Pilih **Create Studio notebook** (Buat notebook Studio).

1. Di **MyNotebook**halaman, pilih tab **Konfigurasi**. Di bagian **Jaringan**, pilih **Edit**.

1. Di MyNotebook halaman **Edit jaringan untuk**, pilih **konfigurasi VPC berdasarkan kluster MSK Amazon**. Pilih klaster Amazon MSK untuk **Amazon MSK Cluster** (Klaster Amazon MSK). Pilih **Simpan perubahan**.

1. Di **MyNotebook**halaman, pilih **Jalankan**. Tunggu **Status** hingga menampilkan **Running** (Berjalan).

### Buat notebook Studio menggunakan AWS CLI
<a name="example-notebook-msk-create-api"></a>

Untuk membuat buku catatan Studio menggunakan AWS CLI, lakukan hal berikut:

1. Pastikan bahwa Anda memiliki informasi berikut. Anda perlu nilai-nilai ini untuk membuat aplikasi Anda.
   + ID akun Anda.
   + ID subnet IDs dan grup keamanan untuk VPC Amazon yang berisi kluster MSK Amazon Anda.

1. Buat file bernama `create.json` dengan konten berikut. Ganti nilai placeholder dengan informasi Anda.

   ```
   {
       "ApplicationName": "MyNotebook",
       "RuntimeEnvironment": "ZEPPELIN-FLINK-3_0",
       "ApplicationMode": "INTERACTIVE",
       "ServiceExecutionRole": "arn:aws:iam::AccountID:role/ZeppelinRole",
       "ApplicationConfiguration": {
           "ApplicationSnapshotConfiguration": {
               "SnapshotsEnabled": false
           },
           "VpcConfigurations": [
               {
                   "SubnetIds": [
                       "SubnetID 1",
                       "SubnetID 2",
                       "SubnetID 3"
                   ],
                   "SecurityGroupIds": [
                       "VPC Security Group ID"
                   ]
               }
           ],
           "ZeppelinApplicationConfiguration": {
               "CatalogConfiguration": {
                   "GlueDataCatalogConfiguration": {
                       "DatabaseARN": "arn:aws:glue:us-east-1:AccountID:database/default"
                   }
               }
           }
       }
   }
   ```

1. Jalankan perintah berikut untuk membuat aplikasi Anda.

   ```
   aws kinesisanalyticsv2 create-application --cli-input-json file://create.json 
   ```

1. Setelah perintah selesai, Anda akan melihat output yang serupa dengan yang berikut, yang menampilkan detail untuk notebook Studio baru Anda:

   ```
   {
       "ApplicationDetail": {
           "ApplicationARN": "arn:aws:kinesisanalyticsus-east-1:012345678901:application/MyNotebook",
           "ApplicationName": "MyNotebook",
           "RuntimeEnvironment": "ZEPPELIN-FLINK-3_0",
           "ApplicationMode": "INTERACTIVE",
           "ServiceExecutionRole": "arn:aws:iam::012345678901:role/ZeppelinRole",
   ...
   ```

1. Jalankan perintah berikut untuk memulai aplikasi Anda. Ganti nilai sampel dengan ID akun Anda.

   ```
   aws kinesisanalyticsv2 start-application --application-arn arn:aws:kinesisanalyticsus-east-1:012345678901:application/MyNotebook\
   ```

## Kirim data ke klaster Amazon MSK Anda
<a name="example-notebook-msk-send"></a>

Di bagian ini, Anda menjalankan skrip Python di EC2 klien Amazon Anda untuk mengirim data ke sumber data MSK Amazon Anda.

1. Connect ke EC2 klien Amazon Anda.

1. Jalankan perintah berikut untuk menginstal Python versi 3, Pip, dan Kafka untuk paket Python, dan mengonfirmasi tindakan:

   ```
   sudo yum install python37
   curl -O https://bootstrap.pypa.io/get-pip.py
   python3 get-pip.py --user
   pip install kafka-python
   ```

1. Konfigurasikan AWS CLI pada mesin klien Anda dengan memasukkan perintah berikut:

   ```
   aws configure
   ```

   Berikan kredensial akun Anda, dan **us-east-1** untuk `region`.

1. Buat file bernama `stock.py` dengan konten berikut. Ganti nilai sampel dengan string Bootstrap Brokers kluster MSK Amazon Anda, dan perbarui nama topik jika topik Anda bukan **AWS KafkaTutorialTopic**:

   ```
   from kafka import KafkaProducer
   import json
   import random
   from datetime import datetime
   
   BROKERS = "<<Bootstrap Broker List>>"
   producer = KafkaProducer(
       bootstrap_servers=BROKERS,
       value_serializer=lambda v: json.dumps(v).encode('utf-8'),
       retry_backoff_ms=500,
       request_timeout_ms=20000,
       security_protocol='PLAINTEXT')
   
   
   def getStock():
       data = {}
       now = datetime.now()
       str_now = now.strftime("%Y-%m-%d %H:%M:%S")
       data['event_time'] = str_now
       data['ticker'] = random.choice(['AAPL', 'AMZN', 'MSFT', 'INTC', 'TBV'])
       price = random.random() * 100
       data['price'] = round(price, 2)
       return data
   
   
   while True:
       data =getStock()
       # print(data)
       try:
           future = producer.send("AWSKafkaTutorialTopic", value=data)
           producer.flush()
           record_metadata = future.get(timeout=10)
           print("sent event to Kafka! topic {} partition {} offset {}".format(record_metadata.topic, record_metadata.partition, record_metadata.offset))
       except Exception as e:
           print(e.with_traceback())
   ```

1. Jalankan skrip dengan perintah berikut:

   ```
   $ python3 stock.py
   ```

1. Biarkan skrip berjalan saat Anda menyelesaikan bagian berikut.

## Uji notebook Studio Anda
<a name="example-notebook-msk-test"></a>

Di bagian ini, Anda menggunakan notebook Studio Anda untuk mengkueri data dari klaster Amazon MSK Anda.

1. [Buka Layanan Terkelola untuk konsol Apache Flink di https://console.aws.amazon.com/managed-flink/ rumah? region=us-east-1\$1/aplikasi/dasbor](https://console.aws.amazon.com/managed-flink/home?region=us-east-1#/applications/dashboard).

1. Pada halaman **Managed Service for Apache Flink Apache Applications**, pilih tab **notebook Studio**. Pilih **MyNotebook**.

1. Di **MyNotebook**halaman, pilih **Buka di Apache Zeppelin**.

   Antarmuka Apache Zeppelin terbuka di tab baru.

1. Di halaman **Selamat Datang di Zeppelin\$1**, pilih **Zeppelin new note** (Catatan baru Zeppelin).

1. Di halaman **Zeppelin Note** (Catatan Zeppelin), masukkan kueri berikut ke dalam catatan baru:

   ```
   %flink.ssql(type=update)
   select * from stock
   ```

   Pilih ikon jalankan.

   Aplikasi menampilkan data dari klaster Amazon MSK.

Untuk membuka Dasbor Apache Flink untuk aplikasi Anda agar dapat melihat aspek operasional, pilih **FLINK JOB** (TUGAS FLINK). Untuk informasi selengkapnya tentang Dasbor Flink, lihat Dasbor [Apache Flink](https://docs.aws.amazon.com/managed-flink/latest/java/how-dashboard.html) di [Managed Service for Apache](https://docs.aws.amazon.com/) Flink Developer Guide.

Untuk contoh kueri SQL Flink Streaming selengkapnya, lihat [Kueri](https://nightlies.apache.org/flink/flink-docs-release-1.15/dev/table/sql/queries.html) di [Dokumentasi Apache Flink](https://nightlies.apache.org/flink/flink-docs-release-1.15/).

# Bersihkan aplikasi Anda dan sumber daya yang bergantung
<a name="example-notebook-cleanup"></a>

## Hapus notebook Studio Anda
<a name="example-notebook-cleanup-app"></a>

1. Buka Layanan Terkelola untuk konsol Apache Flink.

1. Pilih **MyNotebook**.

1. Pilih **Actions** (Tindakan), lalu **Delete** (Hapus).

## Hapus AWS Glue database dan koneksi Anda
<a name="example-notebook-cleanup-glue"></a>

1. Buka AWS Glue konsol di [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/).

1. Pilih **Databases** (Basis Data) dari bilah navigasi sebelah kiri. Centang kotak centang di sebelah **Default** untuk memilihnya. Pilih **Action** (Tindakan), **Delete Database** (Hapus Basis Data). Konfirmasikan pilihan Anda.

1. Pilih **Connections** (Koneksi) dari bilah navigasi sebelah kiri. Centang kotak di sebelah untuk **ZeppelinConnection**memilihnya. Pilih **Action** (Tindakan), **Delete Connection** (Hapus Koneksi). Konfirmasikan pilihan Anda.

## Hapus IAM role dan kebijakan IAM Anda
<a name="example-notebook-msk-cleanup-iam"></a>

1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Pilih **Roles** (Peran) dari bilah navigasi sebelah kiri.

1. Gunakan bilah pencarian untuk mencari **ZeppelinRole**peran.

1. Pilih **ZeppelinRole**peran. Pilih **Delete Role** (Hapus Peran). Konfirmasi penghapusan.

## Hapus grup CloudWatch log Anda
<a name="example-notebook-cleanup-cw"></a>

Konsol membuat grup CloudWatch Log dan aliran log untuk Anda saat Anda membuat aplikasi menggunakan konsol. Anda tidak memiliki grup dan aliran log jika Anda membuat aplikasi menggunakan AWS CLI.

1. Buka CloudWatch konsol di [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Pilih **Log groups** (Grup log) dari bilah navigasi sebelah kiri.

1. Pilih grup**/AWS/KinesisAnalytics/MyNotebook**log.

1. Pilih **Actions** (Tindakan), **Delete log group(s)** (Hapus grup log). Konfirmasi penghapusan.

## Bersihkan sumber daya Kinesis Data Streams
<a name="example-notebook-cleanup-streams"></a>

Untuk menghapus aliran Kinesis, buka konsol Kinesis Data Streams, pilih aliran Kinesis, lalu pilih **Actions** (Tindakan), **Delete** (Hapus).

## Bersihkan sumber daya MSK
<a name="example-notebook-cleanup-msk"></a>

Ikuti langkah-langkah di bagian ini jika Anda membuat klaster Amazon MSK untuk tutorial ini. Bagian ini berisi petunjuk untuk membersihkan instans klien Amazon EC2, Amazon VPC, dan klaster Amazon MSK Anda.

### Hapus kluster MSK Amazon Anda
<a name="example-notebook-msk-cleanup-msk"></a>

Ikuti langkah-langkah ini jika Anda membuat klaster Amazon MSK untuk tutorial ini.

1. Buka konsol MSK Amazon di [https://console.aws.amazon.com/msk/rumah? region=us-east-1\$1/home/](https://console.aws.amazon.com/msk/home?region=us-east-1#/home/).

1. Pilih **AWS KafkaTutorialCluster**. Pilih **Delete** (Hapus). Masukkan **delete** di jendela yang muncul, dan konfirmasikan pilihan Anda.

### Akhiri intans klien Anda
<a name="example-notebook-msk-cleanup-client"></a>

Ikuti langkah-langkah ini jika Anda membuat instans klien Amazon EC2 untuk tutorial ini.

1. Buka konsol Amazon EC2 di. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Pilih **Instances** (Instans) dari panel navigasi sebelah kiri.

1. Pilih kotak centang di sebelah untuk **ZeppelinClient**memilihnya.

1. Pilih **Instance State** (Status Instans), **Terminate Instance** (Akhiri Instans).

### Hapus Amazon VPC Anda
<a name="example-notebook-msk-cleanup-vpc"></a>

Ikuti langkah-langkah ini jika Anda membuat klaster Amazon VPC untuk tutorial ini.

1. Buka konsol Amazon EC2 di. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Pilih **Network Interfaces** (Antarmuka Jaringan) dari bilah navigasi sebelah kiri.

1. Masukkan ID VPC Anda di bilah pencarian dan tekan enter untuk mencari.

1. Pilih kotak centang di header tabel untuk memilih semua antarmuka jaringan yang ditampilkan.

1. Pilih **Actions** (Tindakan), **Detach** (Lepaskan). Di jendela yang muncul, pilih **Enable** (Aktifkan) di bawah **Force detachment** (Lepas paksa). Pilih **Detach** (Lepaskan), dan tunggu hingga semua antarmuka jaringan mencapai status **Available** (Tersedia).

1. Pilih kotak centang di header tabel untuk memilih lagi semua antarmuka jaringan yang ditampilkan.

1. Pilih **Actions** (Tindakan), **Delete** (Hapus). Konfirmasikan tindakan.

1. Buka konsol Amazon VPC di. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)

1. Pilih **AWS KafkaTutorialVPC**. Pilih **Actions** (Tindakan), **Delete VPC** (Hapus VPC). Masukkan **delete** dan konfirmasikan penghapusan.