Kinesis Data Streams로 Studio 노트북 생성 - Managed Service for Apache Flink

Amazon Managed Service for Apache Flink는 이전에 Amazon Kinesis Data Analytics for Apache Flink로 알려졌습니다.

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

Kinesis Data Streams로 Studio 노트북 생성

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

설치

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

Amazon Kinesis 콘솔 또는 다음 AWS CLI 명령을 사용하여 이러한 스트림을 만들 수 있습니다. 콘솔 지침은 Amazon Kinesis Data Streams 개발자 가이드데이터 스트림 생성 및 업데이트를 참조하세요. 스트림의 이름을 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 생성하십시오.

Studio 노트북은 Kinesis Data Streams 데이터 소스에 대한 메타데이터용 AWS Glue 데이터베이스를 사용합니다.

참고

먼저 데이터베이스를 수동으로 생성하거나 노트북을 만들 때 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/ 에서 AWS Glue 콘솔을 엽니다.

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

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

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

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

  6. 분류 페이지에서 JSON을 선택합니다. 다음을 선택합니다.

  7. 스키마 정의 페이지에서 열 추가를 선택하여 열을 추가합니다. 다음 속성을 가진 열을 추가합니다.

    열 명칭 데이터 유형
    ticker string
    price double

    다음을 선택합니다.

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

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

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

  11. 적용을 선택합니다.

Kinesis Data Streams로 Studio 노트북 생성

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

응용 프로그램을 만들려면 AWS Management Console 또는 를 사용할 수 AWS CLI있습니다.

를 사용하여 Studio 노트북을 만드십시오. AWS Management Console

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

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

    참고

    입력한 Amazon MSK 클러스터 또는 Kinesis 데이터 스트림을 선택하고 실시간 데이터 처리를 선택하여 Amazon MSK 또는 Kinesis Data Streams 콘솔에서 Studio 노트북을 생성할 수도 있습니다.

  3. Studio 노트북 생성 페이지에서 다음 정보를 입력합니다.

    • 노트북 이름을 MyNotebook(으)로 입력합니다.

    • AWS Glue 데이터베이스기본값을 선택합니다.

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

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

를 사용하여 Studio 노트북을 생성합니다. AWS CLI

를 사용하여 스튜디오 노트북을 AWS CLI만들려면 다음과 같이 하십시오.

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

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

    "kinesis:GetShardIterator",

    "kinesis:GetRecords",

    "kinesis:ListShards"

  3. 다음 콘텐츠를 가진 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" } } } } }
  4. 애플리케이션을 생성하려면 다음 명령을 실행합니다.

    aws kinesisanalyticsv2 create-application --cli-input-json file://create.json
  5. 명령이 완료되면 새 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", ...
  6. 애플리케이션을 시작하려면 다음 명령을 실행합니다. 샘플 값을 계정 ID로 바꿉니다.

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

Kinesis 데이터 스트림으로 데이터 전송

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

  1. Kinesis 데이터 제너레이터(KDG)를 엽니다.

  2. Cognito 사용자 생성을 선택합니다. CloudFormation

  3. AWS CloudFormation 콘솔이 Kinesis 데이터 생성기 템플릿과 함께 열립니다. 다음을 선택합니다.

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

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

  6. Kinesis-데이터 생성기-Cognito-User 검토 페이지에서 IAM 리소스를 생성할 수 있는 확인을 선택합니다. AWS CloudFormation 체크박스. 스택 생성을 선택합니다.

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

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

  9. 다음 페이지에서 다음 값을 입력합니다.

    리전 us-east-1
    스트림/파이어호스 스트림 ExampleInputStream
    초당 레코드 수 1

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

    { "ticker": "{{random.arrayElement( ["AMZN","MSFT","GOOG"] )}}", "price": {{random.number( { "min":10, "max":150 } )}} }
  10. 데이터 보내기를 선택합니다.

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

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

Studio 노트북을 테스트

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

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

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

  3. MyNotebook페이지에서 [Apache Zeppelin에서 열기] 를 선택합니다.

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

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

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

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

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

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

애플리케이션에서 작동 측면을 볼 수 있도록 Apache Flink 대시보드를 열려면 FLINK JOB을 선택합니다. Flink 대시보드에 대한 자세한 내용을 알아보려면 Managed Service for Apache Flink 개발자 가이드Apache Flink 대시보드를 참조하세요.

Flink Streaming SQL 쿼리의 더 많은 예는 Apache Flink 설명서쿼리를 참조하세요.