

慎重に検討した結果、Amazon Kinesis Data Analytics for SQL アプリケーションを中止することにしました。

1. **2025 年 9 月 1** 日以降、Amazon Kinesis Data Analytics for SQL アプリケーションのバグ修正は提供されません。これは、今後の廃止によりサポートが制限されるためです。

2. **2025 年 10 月 15** 日以降、新しい Kinesis Data Analytics for SQL アプリケーションを作成することはできません。

3. **2026 年 1 月 27 日**以降、アプリケーションは削除されます。Amazon Kinesis Data Analytics for SQL アプリケーションを起動することも操作することもできなくなります。これ以降、Amazon Kinesis Data Analytics for SQL のサポートは終了します。詳細については、「[Amazon Kinesis Data Analytics for SQL アプリケーションのサポート終了](discontinuation.md)」を参照してください。

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

# 例: Kinesis Data Analytics アプリケーションにリファレンスデータを追加する
<a name="app-add-reference-data"></a>

この実習では、既存の Kinesis Data Analytics アプリケーションにリファレンスデータを追加します。リファレンスデータについては、次のトピックを参照してください。
+ [Amazon Kinesis Data Analytics for SQL Applications: 仕組み](how-it-works.md)
+ [アプリケーション入力の設定](how-it-works-input.md)

この実習では、Kinesis Data Analytics [開始方法](https://docs.aws.amazon.com/kinesisanalytics/latest/dev/get-started-exercise.html)の実習で作成したアプリケーションにリファレンスデータを追加します。リファレンスデータは、各ティッカーシンボルの会社名を提供します。次に例を示します。

```
Ticker, Company
AMZN,Amazon
ASD, SomeCompanyA
MMB, SomeCompanyB
WAS,  SomeCompanyC
```

まず、[使用開始](https://docs.aws.amazon.com/kinesisanalytics/latest/dev/get-started-exercise.html)の演習のステップを完了してスターターアプリケーションを作成します。次に、以下のステップに従ってリファレンスデータを設定し、アプリケーションに追加します。

1. **データを準備する**
   + 上記の参照データをオブジェクトとして Amazon Simple Storage Service (Amazon S3) に保存します。
   + ユーザーに代わって Kinesis Data Analytics が Amazon S3 オブジェクトの読み取りを引き受けられるよう IAM ロールを作成します。

1. **アプリケーションにリファレンスデータソースを追加します。**

   Kinesis Data Analytics は Amazon S3 オブジェクトを読み取り、アプリケーションコードでクエリできるアプリケーション内リファレンステーブルを作成します。

1. **コードをテストします。**

   アプリケーションコード内に、アプリケーション内ストリームをアプリケーション内リファレンステーブルに結合して各ティッカーシンボルの会社名を取得する結合クエリを作成できます。

**Topics**
+ [ステップ 1: 準備](#add-refdata-prepare)
+ [ステップ 2: リファレンスデータソースをアプリケーション設定に追加する](#add-refdata-create-iamrole)
+ [ステップ 3: テスト: アプリケーション内リファレンステーブルをクエリする](#add-refdata-test)

## ステップ 1: 準備
<a name="add-refdata-prepare"></a>

このセクションでは、サンプルのリファレンスデータを Amazon S3 バケットにオブジェクトとして保存します。ユーザーに代わって Kinesis Data Analytics がオブジェクトの読み取りを引き受けられるよう IAM ロールを作成することもできます。

### Amazon S3 オブジェクトとしてのリファレンスデータの保存
<a name="prepare-create-s3object"></a>

このステップでは、サンプルのリファレンスデータを Amazon S3 オブジェクトとして保存します。

1. テキストエディタを開き、以下のデータを追加して、ファイルを `TickerReference.csv` として保存します。

   ```
   Ticker, Company
   AMZN,Amazon
   ASD, SomeCompanyA
   MMB, SomeCompanyB
   WAS,  SomeCompanyC
   ```

   

1. `TickerReference.csv` ファイルを S3 バケットにアップロードします。手順については、[Amazon Simple Storage Service ユーザーガイド](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UploadingObjectsintoAmazonS3.html)の「*Amazon S3 へのオブジェクトのアップロード*」を参照してください。

### IAM ロールを作成する
<a name="prepare-create-iamrole"></a>

次に、Kinesis Data Analytics が Amazon S3 オブジェクトの読み取りを引き受けられるよう IAM ロールを作成します。

1.  AWS Identity and Access Management (IAM) で、 という名前の IAM ロールを作成します**KinesisAnalytics-ReadS3Object**。ロールを作成するには、IAM ユーザーガイドにある「[Amazon Service (AWS マネジメントコンソール) 用のロールを作成する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console)」の手順に従ってください。

   IAM コンソールで、以下を指定します。
   + [**ロールタイプの選択**] で、[**AWS Lambda**] を選択します。ロールを作成したら、Kinesis Data Analytics ( ではない AWS Lambda) がロールを引き受けることを許可するように信頼ポリシーを変更します。
   + [**Attach Policy**] ページでポリシーをアタッチしないでください。

1. IAM ロールポリシーを更新します。

   

   1. IAM コンソールで、作成したロールを選択します。

   1. [**信頼関係**] タブで、信頼ポリシーを更新してロールを引き受ける権限を Kinesis Data Analytics に付与します。以下に信頼ポリシーを示します。

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
              "Service": "kinesisanalytics.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
          }
        ]
      }
      ```

------

      

   1. [**Permissions**] タブで、[**AmazonS3ReadOnlyAccess**] という Amazon 管理ポリシーをアタッチします。これにより、Amazon S3 オブジェクトを読み取るアクセス権限をロールに付与します。このポリシーを以下に示します。

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "s3:Get*",
              "s3:List*"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

## ステップ 2: リファレンスデータソースをアプリケーション設定に追加する
<a name="add-refdata-create-iamrole"></a>

このステップでは、リファレンスデータソースをアプリケーション設定に追加します。最初に、次の情報が必要です。
+ S3 バケット名およびオブジェクトキー名
+ IAM ロールの Amazon リソースネーム (ARN)

1. アプリケーションのメインページで [**リファレンスデータの接続**] を選択します。

1. [**リファレンスデータソースの接続**] ページで、リファレンスデータオブジェクトを含む Amazon S3 バケットを選択し、オブジェクトのキー名を入力します。

1. [**アプリケーション内リファレンステーブル名**] に **CompanyName** と入力します。

1. [**選択したリソースへのアクセス**] セクションで、[**Kinesis Analytics が引き受ける IAM ロール**] を選択後、前のセクションで作成した IAM ロール [**KinesisAnalytics-ReadS3Object**] を選択します。

1. [**スキーマの検出**] を選択します。コンソールによって、リファレンスデータの 2 つの列が検出されます。

1. **[保存して閉じる]** を選択します。

## ステップ 3: テスト: アプリケーション内リファレンステーブルをクエリする
<a name="add-refdata-test"></a>

アプリケーション内リファレンステーブル `CompanyName` をクエリできるようになりました。ティッカー価格データをリファレンステーブルに結合することにより、リファレンス情報を使用してアプリケーションを強化できます。結果に会社名が表示されます。

1. アプリケーションコードを以下に置き換えます。クエリはアプリケーション内入力ストリームをアプリケーション内リファレンステーブルと結合します。アプリケーションコードは、結果を別のアプリケーション内ストリーム、`DESTINATION_SQL_STREAM` に書き込みます。

   ```
   CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" (ticker_symbol VARCHAR(4), "Company" varchar(20), sector VARCHAR(12), change DOUBLE, price DOUBLE);
   
   CREATE OR REPLACE PUMP "STREAM_PUMP" AS INSERT INTO "DESTINATION_SQL_STREAM"
      SELECT STREAM ticker_symbol, "c"."Company", sector, change, price
      FROM "SOURCE_SQL_STREAM_001" LEFT JOIN "CompanyName" as "c"
      ON "SOURCE_SQL_STREAM_001".ticker_symbol = "c"."Ticker";
   ```

1. アプリケーション出力が [**SQLResults**] タブに表示されていることを確認します。一部の行に会社名が表示されることを確認します (サンプルのリファレンスデータには、すべての会社名はありません)。