CreateApplication - Amazon Kinesis Data Analytics for SQL 애플리케이션 개발자 안내서

새 프로젝트의 경우 SQL 애플리케이션용 Kinesis Data Analytics보다 Apache Flink Studio용 새로운 관리형 서비스를 사용하는 것이 좋습니다. Apache Flink Studio용 관리형 서비스는 사용 편의성과 고급 분석 기능을 결합하여 정교한 스트림 처리 애플리케이션을 몇 분 만에 구축할 수 있도록 합니다.

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

CreateApplication

참고

이 설명서는 Amazon Kinesis Data Analytics API 버전 1용이며, SQL 애플리케이션만 지원합니다. API 버전 2에서 SQL 및 Java 애플리케이션을 지원합니다. 버전 2에 대한 자세한 설명은 Amazon Kinesis Data Analytics API V2 설명서를 참조하십시오.

Amazon Kinesis Analytics 애플리케이션을 생성합니다. 스트리밍 소스 하나를 입력으로 사용하고, 애플리케이션 코드를 입력으로 사용하고, Amazon Kinesis Analytics에서 애플리케이션의 출력 데이터를 기록할 대상을 최대 3개까지 설정하여 각 애플리케이션을 구성할 수 있습니다. 개관을 위해 작동 방식을 참조하십시오.

입력 구성에서 스트리밍 소스를 애플리케이션 내 스트림에 매핑합니다. 그것은 지속적으로 업데이트되는 표로 간주할 수 있습니다. 매핑에서 애플리케이션 내 스트림에 대한 스키마를 제공하고 애플리케이션 내 스트림에 있는 각 데이터 열을 스트리밍 소스의 데이터 요소에 매핑합니다.

애플리케이션 코드는 입력 데이터를 읽고, 해당 데이터를 변환하고, 출력을 생성하는 하나 이상의 SQL 문입니다. 애플리케이션 코드는 SQL 스트림 또는 펌프와 같은 하나 이상의 SQL 아티팩트를 생성할 수 있습니다.

출력 구성에서는 애플리케이션에서 만든 애플리케이션 내 스트림의 데이터를 최대 세 개의 대상에 쓰도록 애플리케이션을 구성할 수 있습니다.

귀하의 소스 스트림으로부터 데이터를 읽거나 대상 스트림에 데이터를 쓰려면 Amazon Kinesis Analytics는 귀하의 권한을 필요로 합니다. 귀하는 IAM 역할을 생성함으로써 그러한 권한을 부여할 수 있습니다. 이 작업에는 kinesisanalytics:CreateApplication 조치를 수행할 권한이 요구됩니다.

Amazon Kinesis Analytics 애플리케이션을 생성하기 위한 입문 연습은 시작하기를 참조하십시오.

구문 요청

{ "ApplicationCode": "string", "ApplicationDescription": "string", "ApplicationName": "string", "CloudWatchLoggingOptions": [ { "LogStreamARN": "string", "RoleARN": "string" } ], "Inputs": [ { "InputParallelism": { "Count": number }, "InputProcessingConfiguration": { "InputLambdaProcessor": { "ResourceARN": "string", "RoleARN": "string" } }, "InputSchema": { "RecordColumns": [ { "Mapping": "string", "Name": "string", "SqlType": "string" } ], "RecordEncoding": "string", "RecordFormat": { "MappingParameters": { "CSVMappingParameters": { "RecordColumnDelimiter": "string", "RecordRowDelimiter": "string" }, "JSONMappingParameters": { "RecordRowPath": "string" } }, "RecordFormatType": "string" } }, "KinesisFirehoseInput": { "ResourceARN": "string", "RoleARN": "string" }, "KinesisStreamsInput": { "ResourceARN": "string", "RoleARN": "string" }, "NamePrefix": "string" } ], "Outputs": [ { "DestinationSchema": { "RecordFormatType": "string" }, "KinesisFirehoseOutput": { "ResourceARN": "string", "RoleARN": "string" }, "KinesisStreamsOutput": { "ResourceARN": "string", "RoleARN": "string" }, "LambdaOutput": { "ResourceARN": "string", "RoleARN": "string" }, "Name": "string" } ], "Tags": [ { "Key": "string", "Value": "string" } ] }

요청 파라미터

요청은 JSON 형식으로 다음 데이터를 받습니다.

ApplicationCode

입력 데이터를 읽고, 해당 데이터를 변환하고, 출력을 생성하는 하나 이상의 SQL 문입니다. 예컨대, 한 애플리케이션 내 스트림에서 데이터를 읽고 공급업체의 광고 클릭 수의 이동 평균을 생성하는 SQL 문을 쓰고, 펌프를 사용하여 다른 애플리케이션 내 스트림에 결과 행을 삽입할 수 있습니다. 일반적인 패턴에 대한 자세한 설명은 애플리케이션 코드를 참조하십시오.

한 문의 출력을 다음 문의 입력으로 사용할 수 있는 일련의 SQL 문을 제공할 수 있습니다. 애플리케이션 내 스트림과 펌프를 만들어 중간 결과를 저장합니다.

애플리케이션 코드는 Outputs에 지정된 명칭으로 스트림을 만들어야 합니다. 예컨대, OutputsExampleOutputStream1ExampleOutputStream2라는 출력 스트림을 정의하면 애플리케이션 코드는 이러한 스트림을 만들어야 합니다.

유형: 문자열

길이 제약: 최소 길이는 0입니다. 최대 길이는 102400입니다.

필수 항목 여부: 아니요

ApplicationDescription

애플리케이션의 요약 설명.

유형: 문자열

길이 제약: 최소 길이 0자. 최대 길이 1,024.

필수 항목 여부: 아니요

ApplicationName

Amazon Kinesis Analytics 애플리케이션의 명칭 (예: sample-app).

유형: 문자열

길이 제약: 최소 길이는 1. 최대 길이 128.

Pattern: [a-zA-Z0-9_.-]+

필수 항목 여부: 예

CloudWatchLoggingOptions

이 파라미터를 사용하여 CloudWatch 로그 스트림을 애플리케이션 구성 오류를 모니터링합니다. 자세한 설명은 Amazon CloudWatch Logs 사용을 참조하세요.

타입: CloudWatchLoggingOption객체 배열

필수 항목 여부: 아니요

Inputs

이 파라미터를 사용하여 애플리케이션 입력을 구성합니다.

단일 스트리밍 소스로부터 입력을 수신하도록 애플리케이션을 구성할 수 있습니다. 이 구성에서는 이 스트리밍 소스를 생성된 애플리케이션 내 스트림에 매핑합니다. 그러면 애플리케이션 코드가 애플리케이션 내 스트림을 표처럼 쿼리할 수 있습니다(지속적으로 업데이트되는 표로 간주할 수 있음).

스트리밍 소스의 경우 Amazon 리소스 이름(ARN)과 스트림의 데이터 형식(예: JSON, CSV 등)을 제공합니다. Amazon Kinesis Analytics가 사용자를 대신해 이 스트림을 읽기 위해 맡을 수 있는 IAM 역할도 제공해야 합니다.

애플리케이션 내 스트림을 생성하기 위해서는 SQL에 사용되는 스키마화된 버전으로 데이터를 변환할 스키마를 지정해야 합니다. 스키마에서, 스트리밍 소스의 데이터 요소를 인앱 스트림의 레코드 열에 매핑합니다.

타입: Input객체 배열

필수 항목 여부: 아니요

Outputs

애플리케이션 내 스트림의 데이터를 최대 세 개의 대상에 쓰도록 애플리케이션 출력을 구성할 수 있습니다.

이러한 대상은 Amazon Kinesis 스트림, Amazon Kinesis Firehose 전송 AWS 스트림, Lambda 목적지 또는 이 세 가지의 조합일 수 있습니다.

구성에서 애플리케이션 내 스트림 명칭, 대상 스트림 또는 Lambda 함수 Amazon Resource Name (ARN), 데이터를 쓸 때 사용할 형식을 지정합니다. 또한 Amazon Kinesis Analytics가 귀하를 대신하여 대상 스트림 또는 Lambda 함수에 작성하기 위해 취할 수 있는 IAM 역할도 제공해야 합니다.

출력 구성에서는 출력 스트림 또는 Lambda 함수 ARN도 제공합니다. 스트림 대상의 경우 스트림의 데이터 형식 (예: JSON, CSV) 을 제공합니다. 또한 Amazon Kinesis Analytics가 귀하를 대신하여 스트림 또는 Lambda 함수에 작성하기 위해 취할 수 있는 IAM 역할도 제공해야 합니다.

타입: Output객체 배열

필수 항목 여부: 아니요

Tags

애플리케이션에 할당할 하나 이상의 태그 목록입니다. 태그는 애플리케이션을 식별하는 키값 페어입니다. 애플리케이션 태그의 최대 수는 시스템 태그를 포함합니다. 사용자 정의 애플리케이션 태그의 최대 수는 50입니다. 자세한 설명은 태그 사용하기를 참조하세요

유형: Tag 객체 어레이

배열 멤버: 최소 항목 수는 1개. 최대 항목 수는 200개입니다.

필수 여부: 아니요

응답 구문

{ "ApplicationSummary": { "ApplicationARN": "string", "ApplicationName": "string", "ApplicationStatus": "string" } }

응답 요소

작업이 성공하면 서비스가 HTTP 200 응답을 반송합니다.

다음 데이터는 서비스에 의해 JSON 형식으로 반환됩니다.

ApplicationSummary

귀하의 CreateApplication 요청에 대응하여, Amazon Kinesis Analytics는 애플리케이션 Amazon 리소스 이름 (ARN), 명칭 및 상태를 포함하여 생성한 애플리케이션의 요약이 포함된 응답을 반환합니다.

유형: ApplicationSummary객체

Errors

CodeValidationException

사용자가 제공한 애플리케이션 코드 (쿼리) 가 유효하지 않습니다. 이는 단순한 구문 오류일 수 있습니다.

HTTP 상태 코드: 400

ConcurrentModificationException

애플리케이션을 동시에 수정한 결과 예외가 발생했습니다. 예컨대, 두 사람이 동시에 같은 애플리케이션을 편집하려고 하는 경우를 예로 들 수 있습니다.

HTTP 상태 코드: 400

InvalidArgumentException

지정한 입력 파라미터 값이 유효하지 않습니다.

HTTP 상태 코드: 400

LimitExceededException

허용된 애플리케이션 수를 초과했습니다.

HTTP 상태 코드: 400

ResourceInUseException

이 작업을 위한 애플리케이션을 얻을 수 없습니다.

HTTP 상태 코드: 400

TooManyTagsException

너무 많은 태그를 사용하여 애플리케이션을 생성했거나 애플리케이션에 너무 많은 태그를 추가했습니다. 애플리케이션 태그의 최대 수는 시스템 태그를 포함합니다. 사용자 정의 애플리케이션 태그의 최대 수는 50입니다.

HTTP 상태 코드: 400

UnsupportedOperationException

지정한 파라미터가 지원되지 않거나 지정한 리소스가 이 작업에 유효하지 않으므로 요청이 거부되었습니다.

HTTP 상태 코드: 400

참고

이 API를 언어별 AWS SDK 중 하나로 사용하는 방법에 대한 자세한 설명은 다음을 참조하세요.