

在仔細考慮之後，我們決定停止 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 應用程式：運作方式](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 可擔任的 IAM 角色，以代您讀取 Amazon S3 物件。

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 使用者指南*中的[上傳物件至 Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UploadingObjectsintoAmazonS3.html)。

### 建立 IAM 角色
<a name="prepare-create-iamrole"></a>

接下來，建立 Kinesis Data Analytics 可擔任的 IAM 角色，並讀取 Amazon S3 物件。

1. 在 AWS Identity and Access Management (IAM) 中，建立名為 的 IAM 角色**KinesisAnalytics-ReadS3Object**。若要建立角色，請按照 *IAM 使用者指南*中[建立 Amazon 服務的角色 (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) 擔任該角色。
   + 請勿在**附加政策**頁面附加任何政策。

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. 在**許可**標籤上，附加一個名為 **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 Resource Name (ARN)。

1. 在應用程式的主頁面中，選擇**連接參考資料**。

1. 在**連接參考資料來源**頁面中，選擇包含參考資料物件的 Amazon S3 儲存貯體，然後輸入物件的金鑰名稱。

1. 輸入 **CompanyName** 作為**應用程式內參考表名稱**。

1. 在**存取所選資源**區段中，選擇**從 Kinesis Analytics 可以擔任的 IAM 角色中選擇**，然後選擇您在上一節建立的 **KinesisAnalytics-ReadS3Object** IAM 角色。

1. 選擇**探索結構描述**。主控台檢測到參考資料中的兩欄。

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** 標籤中。請確定某些資料欄顯示公司名稱 (範例參考資料並未包含所有公司名稱)。