アプリケーション入力の設定 - Amazon Kinesis Data Analytics for SQL Applications 開発者ガイド

新しいプロジェクトでは、SQL アプリケーション用 Kinesis Data Analytics よりも新しい Kinesis Data Analytics スタジオを使用することをお勧めします。Kinesis Data Analytics Studio は、使いやすさと高度な分析機能を兼ね備えているため、高度なストリーム処理アプリケーションを数分で構築できます。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

アプリケーション入力の設定

Amazon Kinesis Data Analytics アプリケーションは、単一のストリーミングソースから入力を受け取り、オプションで 1 つの参照データソースを使用できます。詳細については、「Amazon Kinesis Data Analytics for SQL アプリケーション用: 仕組み」を参照してください。このトピックのセクションでは、アプリケーション入力ソースについて説明します。

ストリーミングソースの設定

アプリケーションを作成するときに、ストリーミングソースを指定します。アプリケーションを作成した後で、入力を変更することもできます。Amazon Kinesis Data Analytics は、アプリケーションの次のストリーミングソースをサポートします。

  • Kinesis Data Streams

  • Kinesis Data Firehose の配信ストリーム

注記

Kinesis データストリームが暗号化されている場合、Kinesis Data Analytics は暗号化されたストリーム内のデータにシームレスにアクセスします。これ以上の設定は必要ありません。Kinesis Data Analytics では、Kinesis Data Streams から読み取った暗号化されていないデータは保存されません。詳細については、「Kinesis Data Streams 用のサーバー側の暗号化とは」を参照してください。

Kinesis Data Analytics は、新しいデータがないかストリーミングソースを継続的にポーリングし、入力設定に従ってアプリケーション内ストリームに取り込みます。

注記

Kinesis Stream をアプリケーションの入力として追加しても、ストリーム内のデータには影響しません。Kinesis Data Firehose 配信ストリームなどの別のリソースも同じ Kinesis ストリームにアクセスした場合、Kinesis Data Firehose 配信ストリームと Kinesis Data Analytics アプリケーションの両方が同じデータを受信することになります。ただし、スループットとスロットリングは影響を受ける可能性があります。

アプリケーションコードは、アプリケーション内ストリームをクエリできます。入力設定の一部として以下を指定します。

  • ストリーミングソース— ストリームの Amazon リソースネーム (ARN) と、Kinesis Data Analytics がユーザーに代わってストリームにアクセス可能にする IAM ロールを指定します。

  • アプリケーション内のストリーム名のプレフィクス— アプリケーションを起動すると、Kinesis Data Analytics は指定されたアプリケーション内ストリームを作成します。この名前を使用して、アプリケーションコードでアプリケーション内ストリームにアクセスします。

    オプションで、ストリーミングリソースを複数のアプリケーション内ストリームにマッピングできます。詳細については、「制限」を参照してください。この場合、Amazon Kinesis Data Analytics は次のような名前で指定された数のアプリケーション内ストリームを作成します。プレフィックス_001,プレフィックス_002、およびプレフィックス_003。デフォルトでは、Kinesis Data Analytics はストリーミングソースをという名前の 1 つのアプリケーション内ストリームにマッピングしますプレフィックス_001

    アプリケーション内ストリームに挿入できる行は、速度の制限があります。そのため、Kinesis Data Analytics はこのような複数のアプリケーション内ストリームをサポートしているため、はるかに高速にレコードをアプリケーションに取り込むことができます。アプリケーションがストリーミングソースのデータをアップし続けることができない場合は、並列処理ユニットを追加してパフォーマンスを向上させることができます。

  • マッピングスキーマ— ストリーミングソースのレコード形式 (JSON、CSV) を記述します。また、ストリームの各レコードが、作成されるアプリケーション内ストリーム内の列にマッピングされる方法も指定します。ここで、列名とデータ型を指定します。

注記

Kinesis Data Analytics では、入力アプリケーション内ストリームを作成するときに、識別子 (ストリーム名と列名) を二重引用符で囲みます。このストリームと列をクエリする場合は、完全一致 (大文字と小文字が正確に一致) を使用して引用符内を指定する必要があります。識別子の詳細については、「」を参照してください。ID()Amazon Kinesis Data Analytics SQL リファレンス

アプリケーションを作成し、Amazon Kinesis Data Analytics コンソールで入力を設定できます。その後、コンソールは必要な API コールを行います。アプリケーション入力の設定は、新しいアプリケーション API の作成時、または既存のアプリケーションに入力設定を追加するときに行うことができます。詳細については、CreateApplication および AddApplicationInput を参照してください。以下は Createapplication API リクエストボディの入力設定部分です。

"Inputs": [ { "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" }, "Name": "string" } ]

リファレンスソースの設定

オプションで既存のアプリケーションにリファレンスデータソースを追加して、ストリーミングソースから入力されるデータを強化できます。リファレンスデータをオブジェクトとして、Amazon S3 バケットに保存する必要があります。アプリケーションが起動すると、Amazon Kinesis Data Analytics は Amazon S3 オブジェクトを読み取り、アプリケーション内リファレンステーブルを作成します。その後、アプリケーションコードでこれをアプリケーション内ストリームと結合できます。

リファレンスデータは、サポートされている形式 (CSV、JSON) を使用して Amazon S3 オブジェクトに保存します。たとえば、アプリケーションで株注文を分析すると仮定します。ストリーミングソースには次に示すレコード形式があるとします。

Ticker, SalePrice, OrderId AMZN $700 1003 XYZ $250 1004 ...

この場合、会社名などの詳細を株価ティッカーに提供するリファレンスデータソースを保持することを検討する場合があります。

Ticker, Company AMZN, Amazon XYZ, SomeCompany ...

アプリケーション参照データソースは、API またはコンソールを使用して追加できます。Amazon Kinesis Data Analytics には、参照データソースを管理するための次の API アクションが用意されています。

コンソールを使用してリファレンスデータを追加する方法の詳細については、「例: Kinesis Data Analytics アプリケーションへのリファレンスデータの追加」を参照してください。

次の点に注意してください。

  • アプリケーションが実行されている場合、Kinesis Data Analytics はアプリケーション内参照テーブルを作成し、すぐに参照データをロードします。

  • アプリケーションが実行されていない (準備完了状態など) 場合、Kinesis Data Analytics は更新された入力設定のみを保存します。アプリケーションの実行を開始すると、Kinesis Data Analytics はアプリケーションの参照データをテーブルとしてロードします。

Kinesis Data Analytics がアプリケーション内参照テーブルを作成した後にデータを更新するとします。Amazon S3 オブジェクトを更新したか、別の Amazon S3 オブジェクトを使用したい場合があります。この場合、明示的に呼び出すこともできますUpdateApplication、または選択してくださいアクション,参照データテーブルを同期コンソールで。Kinesis Data Analytics は、アプリケーション内の参照テーブルを自動的に更新しません。

参照データソースとして作成できる Amazon S3 オブジェクトのサイズには制限があります。詳細については、「制限」を参照してください。オブジェクトサイズが制限を超えると、Kinesis Data Analytics はデータを読み込めません。アプリケーションの状態は実行中と表示されますが、データが読み込まれません。

リファレンスデータソースを追加する場合は、次の情報を指定します。

  • S3 バケットおよびオブジェクトキー名— バケット名とオブジェクトキーに加えて、ユーザーに代わってオブジェクトを読み取るために Kinesis Data Analytics が引き受けることができる IAM ロールも提供します。

  • アプリケーション内参照テーブル名— Kinesis Data Analytics は、このアプリケーション内テーブルを作成し、Amazon S3 オブジェクトを読み取ることでデータを入力します。これは、アプリケーションコードで指定するテーブルの名前です。

  • マッピングスキーマ— Amazon S3 オブジェクトに保存されているデータのレコード形式 (JSON、CSV)、エンコーディングについて記述します。また、各データ要素がどのようにアプリケーション内リファレンステーブルにマッピングされるかも記述します。

以下に、AddApplicationReferenceDataSource API リクエストの本文を示します。

{ "applicationName": "string", "CurrentapplicationVersionId": number, "ReferenceDataSource": { "ReferenceSchema": { "RecordColumns": [ { "IsDropped": boolean, "Mapping": "string", "Name": "string", "SqlType": "string" } ], "RecordEncoding": "string", "RecordFormat": { "MappingParameters": { "CSVMappingParameters": { "RecordColumnDelimiter": "string", "RecordRowDelimiter": "string" }, "JSONMappingParameters": { "RecordRowPath": "string" } }, "RecordFormatType": "string" } }, "S3ReferenceDataSource": { "BucketARN": "string", "FileKey": "string", "ReferenceRoleARN": "string" }, "TableName": "string" } }