

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Kinesis Data Streams로 Studio 노트북 생성
<a name="example-notebook-streams"></a>

이 자습서에서는 Kinesis 데이터 스트림을 소스로 사용하는 Studio 노트북을 생성하는 방법을 설명합니다.

**Topics**
+ [사전 조건 완료](#example-notebook-streams-setup)
+ [AWS Glue 테이블 생성](#example-notebook-streams-glue)
+ [Kinesis Data Streams로 Studio 노트북 생성](#example-notebook-streams-create)
+ [Kinesis 데이터 스트림으로 데이터 전송](#example-notebook-streams-send)
+ [Studio 노트북을 테스트](#example-notebook-streams-test)

## 사전 조건 완료
<a name="example-notebook-streams-setup"></a>

Studio 노트북을 생성하기 전에 Kinesis 데이터 스트림(`ExampleInputStream`)을 생성하세요. 애플리케이션은 이 스트림을 애플리케이션 소스로 사용합니다.

Amazon Kinesis 콘솔 또는 다음 AWS CLI 명령을 사용하여 이러한 스트림을 만들 수 있습니다. 콘솔 지침은 *Amazon Kinesis Data Streams 개발자 가이드*의 [데이터 스트림 생성 및 업데이트](https://docs.aws.amazon.com/kinesis/latest/dev/amazon-kinesis-streams.html)를 참조하세요. 스트림의 이름을 **ExampleInputStream**(으)로 지정하고 **열린 샤드 수**를 **1**(으)로 설정합니다.

를 사용하여 스트림(`ExampleInputStream`)을 생성하려면 다음 Amazon Kinesis `create-stream` AWS CLI 명령을 AWS CLI사용합니다.

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

## AWS Glue 테이블 생성
<a name="example-notebook-streams-glue"></a>

Studio 노트북은 Kinesis Data Streams 데이터 소스에 대한 메타데이터용 [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) 데이터베이스를 사용합니다.

**참고**  
먼저 데이터베이스를 수동으로 생성하거나 노트북을 만들 때 Managed Service for Apache Flink가 자동으로 데이터베이스를 생성하도록 할 수 있습니다. 마찬가지로 이 섹션에 설명된 대로 테이블을 수동으로 생성하거나 Apache Zeppelin 내에서 노트북의 Managed Service for Apache Flink용 테이블 커넥터 코드 생성을 사용하여 DDL 문을 통해 테이블을 생성할 수 있습니다. 그런 다음 테이블 AWS Glue 이 올바르게 생성되었는지 확인할 수 있습니다.

**표 생성**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/) AWS Glue 콘솔을 엽니다.

1. 아직 AWS Glue 데이터베이스가 없는 경우 왼쪽 탐색 모음에서 **데이터베이스를** 선택합니다. **데이터베이스 추가**를 선택합니다. **데이터베이스 추가** 창에서 **데이터베이스 이름**을 **default**(으)로 입력합니다. **생성(Create)**을 선택합니다.

1. 왼쪽 탐색 모음에서 **표**를 선택합니다. **표** 페이지에서 **표 추가**, **표 수동 추가**를 선택합니다.

1. **표 속성 설정** 페이지에서 **표 명칭**에 **stock**을 입력합니다. 이전에 만든 데이터베이스를 선택했는지 확인하세요. **다음**을 선택합니다.

1. **데이터 스토어 추가** 페이지에서 **Kinesis**를 선택합니다. **스트림 이름**에는 **ExampleInputStream**을(를) 입력합니다. **Kinesis 소스 URL**의 경우 **https://kinesis.us-east-1.amazonaws.com** 입력을 선택합니다. **Kinesis 소스 URL**을 복사하여 붙여넣는 경우 선행 또는 후행 공백을 모두 삭제해야 합니다. **Next**(다음)를 선택합니다.

1. **분류** 페이지에서 **JSON**을 선택합니다. **Next**(다음)를 선택합니다.

1. **스키마 정의** 페이지에서 열 추가를 선택하여 열을 추가합니다. 다음 속성을 가진 열을 추가합니다.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/managed-flink/latest/java/example-notebook-streams.html)

   **Next**(다음)를 선택합니다.

1. 다음 페이지에서 설정을 확인하고 **마침**을 선택합니다.

1. 테이블 목록에서 새로 생성한 테이블을 선택합니다.

1. **테이블 편집**을 선택하고 `managed-flink.proctime` 키와 `proctime` 값이 있는 속성을 추가합니다.

1. **적용**을 선택합니다.

## Kinesis Data Streams로 Studio 노트북 생성
<a name="example-notebook-streams-create"></a>

애플리케이션에서 사용하는 리소스를 생성했으니 이제 Studio 노트북을 생성합니다.

**Topics**
+ [를 사용하여 Studio 노트북 생성 AWS Management Console](#example-notebook-create-streams-console)
+ [를 사용하여 Studio 노트북 생성 AWS CLI](#example-notebook-msk-create-api)

### 를 사용하여 Studio 노트북 생성 AWS Management Console
<a name="example-notebook-create-streams-console"></a>

1. [https://console.aws.amazon.com/managed-flink/home?region=us-east-1\$1/applications/dashboard](https://console.aws.amazon.com/managed-flink/home?region=us-east-1#/applications/dashboard)에서 Managed Service for Apache Flink 콘솔을 엽니다.

1. **Managed Service for Apache Flink 애플리케이션** 페이지에서 **Studio** 탭을 선택합니다. **Studio 노트북 생성**을 선택합니다.
**참고**  
입력한 Amazon MSK 클러스터 또는 Kinesis 데이터 스트림을 선택하고 **실시간 데이터 처리**를 선택하여 Amazon MSK 또는 Kinesis Data Streams 콘솔에서 Studio 노트북을 생성할 수도 있습니다.

1. **Studio 노트북 생성** 페이지에서 다음 정보를 입력합니다.
   + 노트북 이름을 **MyNotebook**(으)로 입력합니다.
   + **AWS Glue 데이터베이스**의 **기본값**을 선택합니다.

   **Studio 노트북 생성**을 선택합니다.

1. **MyNotebook** 페이지에서 **실행**을 선택합니다. **상태**가 **실행 중**으로 표시될 때까지 기다리세요. 노트북이 실행 중일 때는 요금이 부과됩니다.

### 를 사용하여 Studio 노트북 생성 AWS CLI
<a name="example-notebook-msk-create-api"></a>

를 사용하여 Studio 노트북을 생성하려면 다음을 AWS CLI수행합니다.

1. 계정 ID를 확인합니다. 애플리케이션을 생성하려면 이 값을 사용합니다.

1. `arn:aws:iam::AccountID:role/ZeppelinRole` 역할을 생성하고 콘솔에서 자동 생성된 역할에 다음 권한을 추가합니다.

   `"kinesis:GetShardIterator",`

   `"kinesis:GetRecords",`

   `"kinesis:ListShards"`

1. 다음 콘텐츠를 가진 `create.json`이라는 파일을 생성합니다: 자리 표시자 값을 정보로 바꿉니다.

   ```
   {
       "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. 애플리케이션을 생성하려면 다음 명령을 실행합니다.

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

1. 명령이 완료되면 새 Studio 노트북의 세부 정보를 보여주는 출력이 표시됩니다. 다음은 출력의 예제입니다.

   ```
   {
       "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. 애플리케이션을 시작하려면 다음 명령을 실행합니다. 샘플 값을 계정 ID로 바꿉니다.

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

## Kinesis 데이터 스트림으로 데이터 전송
<a name="example-notebook-streams-send"></a>

Kinesis 데이터 스트림으로 테스트 데이터를 보내려면 다음을 수행하세요.

1. [Kinesis 데이터 제너레이터(KDG)](https://awslabs.github.io/amazon-kinesis-data-generator/web/help.html)를 엽니다.

1. **CloudFormation으로 Cognito 사용자 만들기**를 선택합니다.

1.  CloudFormation 콘솔이 Kinesis Data Generator 템플릿과 함께 열립니다. **Next**(다음)를 선택합니다.

1. **스택 세부 정보 지정** 페이지에서 Cognito 사용자의 사용자 이름 및 암호를 입력합니다. **Next**(다음)를 선택합니다.

1. **스택 옵션 구성** 페이지에서 **다음**을 선택합니다.

1. **Kinesis-Data-Generator-Cognito-User 검토** 페이지에서 ** AWS CloudFormation이 IAM 리소스를 생성할 수 있음을 승인합니다.** 확인란을 선택합니다. **스택 생성**을 선택합니다.

1.  CloudFormation 스택 생성이 완료될 때까지 기다립니다. 스택이 완료되면 CloudFormation 콘솔에서 **Kinesis-Data-Generator-Cognito-User** 스택을 열고 **출력** 탭을 선택합니다. **KinesisDataGeneratorUrl** 출력 값에 대해 나열된 URL을 엽니다.

1. **Amazon Kinesis Data Generator** 페이지에서 4단계에서 생성한 보안 인증을 사용하여 로그인합니다.

1. 다음 페이지에서 다음 값을 입력합니다.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/managed-flink/latest/java/example-notebook-streams.html)

   **레코드 템플릿**의 경우 다음 코드를 붙여넣습니다.

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

1. **데이터 보내기**를 선택합니다.

1. 생성기가 데이터를 Kinesis 데이터 스트림으로 전송합니다.

   다음 섹션을 완료하는 동안 생성기를 계속 실행하세요.

## Studio 노트북을 테스트
<a name="example-notebook-streams-test"></a>

이 섹션에서는 Studio 노트북을 사용하여 Kinesis 데이터 스트림의 데이터를 쿼리합니다.

1. [https://console.aws.amazon.com/managed-flink/home?region=us-east-1\$1/applications/dashboard](https://console.aws.amazon.com/managed-flink/home?region=us-east-1#/applications/dashboard)에서 Managed Service for Apache Flink 콘솔을 엽니다.

1. **Managed Service for Apache Flink 애플리케이션** 페이지에서 **Studio 노트북** 탭을 선택합니다. **MyNotebook**을 선택합니다.

1. **MyNotebook** 페이지에서 **Apache Zeppelin에서 열기**를 선택합니다.

   Apache Zeppelin 인터페이스가 새 탭에서 열립니다.

1. **제플린에 오신 것을 환영합니다\$1** 페이지에서 **Zeppelin Note**를 선택하세요.

1. **Zeppelin 노트** 페이지에서 새로운 노트에 다음 쿼리를 입력합니다.

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

   실행 아이콘을 선택합니다.

   잠시 후 노트에 Kinesis 데이터 스트림의 데이터가 표시됩니다.

애플리케이션에서 작동 측면을 볼 수 있도록 Apache Flink 대시보드를 열려면 **FLINK JOB**을 선택합니다. Flink 대시보드에 대한 자세한 내용을 알아보려면 [Managed Service for Apache Flink 개발자 가이드](https://docs.aws.amazon.com/)의 [Apache Flink 대시보드](https://docs.aws.amazon.com/managed-flink/latest/java/how-dashboard.html)를 참조하세요.

Flink Streaming SQL 쿼리의 더 많은 예는 [Apache Flink 설명서](https://nightlies.apache.org/flink/flink-docs-release-1.15/)의 [쿼리](https://nightlies.apache.org/flink/flink-docs-release-1.15/dev/table/sql/queries.html)를 참조하세요.