慎重な検討の結果、Amazon Kinesis Data Analytics for SQL アプリケーションのサポートは終了することになりました。サポート終了は次の 2 段階で行われます。
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
注記
このドキュメントの対象は、SQL アプリケーションのみがサポートされる Amazon Kinesis Data Analytics API のバージョン 1 です。バージョン 2 の API では、SQL および Java アプリケーションがサポートされます。バージョン 2 の詳細については、Amazon Kinesis Data Analytics API V2 のドキュメントを参照してください。
Amazon Kinesis Analytics アプリケーションを作成します。各アプリケーションには、入力として 1 つのストリーミングソース、入力を処理するアプリケーションコード、Amazon Kinesis Analytics がアプリケーションからの出力データを書き込む宛先を 3 つまで設定できます。概要については、「仕組み」を参照してください。
入力の設定では、ストリーミングソースをアプリケーション内ストリームにマッピングします。アプリケーション内ストリームは常に更新されるテーブルとみなすことができます。マッピングでは、アプリケーション内ストリーム用のスキーマを提供し、アプリケーション内ストリーム内の各データ列をストリーミングソース内のデータ要素にマッピングする必要があります。
アプリケーションコードとは、入力データを読み取って変換し、出力を生成する 1 つ以上の SQL ステートメントです。アプリケーションコードでは、SQL ストリームやポンプなど、複数の SQL アーティファクトを作成できます。
出力設定では、アプリケーションで作成されたアプリケーション内ストリームから最大 3 つの宛先にデータを書き込むようにアプリケーションを設定できます。
ソースストリームからデータを読み取ったり、送信先ストリームにデータを書き込んだりするには、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
-
入力データを読み取って変換し、出力を生成する 1 つ以上の SQL ステートメント。たとえば、1 つのアプリケーション内ストリームからデータを読み取り、ベンダー別の広告クリック数の移動平均を生成する SQL ステートメントを記述し、ポンプを使用して、表示された行を別のアプリケーション内ストリームに挿入することができます。一般的なパターンの詳細については、「アプリケーションコード」を参照してください。
このような一連の SQL ステートメントを入力できます。ここでは、1 つのステートメントの出力は次のステートメントの入力として使用できます。アプリケーション内ストリームとポンプを作成して、中間結果を保存します。
アプリケーションコードは、
Outputs
で指定された名前でストリームを作成する必要があります。たとえば、Outputs
でExampleOutputStream1
およびExampleOutputStream2
という名前の出力ストリームを定義した場合、アプリケーションコードはこれらのストリームを作成する必要があります。タイプ: 文字列
長さの制約: 最小長は 0 です。最大長は 102400 です。
必須: いいえ
- ApplicationDescription
-
アプリケーションの簡単な説明。
タイプ: 文字列
長さの制約: 最小長は 0 です。最大長は 1,024 です。
必須: いいえ
- ApplicationName
-
Amazon Kinesis Analytics アプリケーションの名前 (例 :
sample-app
)。タイプ: 文字列
長さの制限: 最小長は 1 です。最大長は 128 です。
パターン:
[a-zA-Z0-9_.-]+
必須: はい
- CloudWatchLoggingOptions
-
このパラメータでは、CloudWatch ログストリームを設定してアプリケーションの設定エラーをモニタリングします。詳細については、「Amazon CloudWatch Logs の使用」を参照してください。
タイプ: CloudWatchLoggingOption オブジェクトの配列
必須: いいえ
- Inputs
-
このパラメータを使用して、アプリケーション入力を設定します。
単一のストリーミングソースから入力を受信するようにアプリケーションを設定できます。この構成では、このストリーミングソースを作成済みのアプリケーション内ストリームにマッピングします。その後、アプリケーションコードは、テーブルのようにアプリケーション内ストリームのクエリを実行できるようになります (このコードは常に更新されるテーブルと考えることができます)。
ストリーミングソースの場合、その Amazon リソースネーム (ARN) とストリームのデータの形式 (JSON、CSV など) を指定します。ユーザーに代わって Amazon Kinesis Analytics がこのストリームの読み取りを引き受けられるよう IAM ロールを指定する必要もあります。
アプリケーション内ストリームを作成するには、SQL で使用するスキーマ化されたデータに変換するスキーマを指定する必要があります。スキーマでは、アプリケーション内ストリームの列を記録するために、ストリーミングソース内のデータ要素の必要なマッピングを指定します。
タイプ: Input オブジェクトの配列
必須: いいえ
- Outputs
-
アプリケーション内ストリームのいずれかから最大 3 つの宛先にデータを書き込むように、アプリケーション出力を設定できます。
これらの宛先には、Amazon Kinesis ストリーム、Amazon Kinesis Firehose 配信ストリーム、 AWS Lambda 送信先、またはこれらの 3 つの任意の組み合わせを使用できます。
設定では、アプリケーション内ストリーム名、送信先ストリームまたは Lambda 関数の Amazon リソースネーム (ARN)、データを書き込むときに使用する形式を指定します。また、Amazon Kinesis Analytics がユーザーに代わって送信先ストリームまたは Lambda 関数に書き込むために引き受けることができる IAM ロールを指定する必要があります。
出力設定では、出力ストリームまたは Lambda 関数 ARN も指定します。ストリームの送信先には、ストリーム内のデータの形式 (JSON、CSV など) を指定します。また、Amazon Kinesis Analytics がユーザーに代わってストリームまたは Lambda 関数に書き込むために引き受けることができる IAM ロールを指定する必要があります。
タイプ: Output オブジェクトの配列
必須: いいえ
- Tags
-
アプリケーションに割り当てる 1 つ以上のタグのリスト。タグは、アプリケーションを識別するキーと値のペアです。アプリケーションタグの最大数にはシステムタグが含まれることに注意してください。ユーザー定義のアプリケーションタグの最大数は 50 です。詳細については、「タグ付けの使用」を参照してください。
型: Tag オブジェクトの配列
配列メンバー: 最小数は 1 項目です。最大数は 200 項目です。
必須: いいえ
レスポンスの構文
{
"ApplicationSummary": {
"ApplicationARN": "string",
"ApplicationName": "string",
"ApplicationStatus": "string"
}
}
レスポンス要素
アクションが成功すると、サービスは HTTP 200 レスポンスを返します。
サービスから以下のデータが JSON 形式で返されます。
- ApplicationSummary
-
Amazon Kinesis Analytics は、
CreateApplication
リクエストへのレスポンスとしてアプリケーションの Amazon リソースネーム (ARN)、名前、ステータスなど、作成したアプリケーションの概要を記載したレスポンスを返します。型: ApplicationSummary オブジェクト
エラー
- CodeValidationException
-
ユーザー指定のアプリケーションコード (クエリ) が無効です。これは単純な構文エラーである可能性があります。
HTTP ステータスコード: 400
- ConcurrentModificationException
-
アプリケーションへの同時変更の結果としてスローされる例外。例えば、2 人の個人が同じアプリケーションを同時に編集しようとしています。
HTTP ステータスコード: 400
- InvalidArgumentException
-
指定された入力パラメータ値が無効です。
HTTP ステータスコード: 400
- LimitExceededException
-
許可されているアプリケーションの数を超えました。
HTTP ステータスコード: 400
- ResourceInUseException
-
このオペレーションではアプリケーションを使用できません。
HTTP ステータスコード: 400
- TooManyTagsException
-
多すぎるタグを使用してアプリケーションが作成されたか、またはアプリケーションに追加されたタグが多すぎます。アプリケーションタグの最大数にはシステムタグが含まれることに注意してください。ユーザー定義のアプリケーションタグの最大数は 50 です。
HTTP ステータスコード: 400
- UnsupportedOperationException
-
指定されたパラメータがサポートされていないか、指定されたリソースがこのオペレーションに対して有効でないため、リクエストは拒否されました。
HTTP ステータスコード: 400
以下の資料も参照してください。
言語固有の AWS SDKs のいずれかでこの API を使用する方法の詳細については、以下を参照してください。