신중한 고려 끝에 두 단계로 Amazon Kinesis Data Analytics for SQL 애플리케이션을 단종하기로 결정했습니다.
1. 2025년 10월 15일부터 새 Kinesis Data Analytics for SQL 애플리케이션을 생성할 수 없습니다.
2. 2026년 1월 27일부터 애플리케이션이 삭제됩니다. Amazon Kinesis Data Analytics for SQL 애플리케이션을 시작하거나 작동할 수 없게 됩니다. 그 시점부터 Amazon Kinesis Data Analytics for SQL에 대한 지원을 더 이상 이용할 수 없습니다. 자세한 내용은 Amazon Kinesis Data Analytics for SQL 애플리케이션 단종 단원을 참조하십시오.
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
에 지정된 명칭으로 스트림을 만들어야 합니다. 예컨대,Outputs
이ExampleOutputStream1
및ExampleOutputStream2
라는 출력 스트림을 정의하면 애플리케이션 코드는 이러한 스트림을 만들어야 합니다.유형: 문자열
길이 제한: 최소 길이는 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
참고
언어별 AWS SDK 중 하나에서 이 API를 사용하는 방법에 대한 자세한 내용은 다음을 참조하십시오.