範例:將參考資料新增至 Kinesis Data Analytics 應用程式 - 亞馬遜 Kinesis SQL 應用程式資料分析開發人員指南

對於新專案,我們建議您使用適用於 Apache Flink Studio 的全新受管理服務,取代適用於應用程式的 Kinesis Data Analytics。SQLManaged Service for Apache Flink Studio 易於使用且具備進階分析功能,讓您在幾分鐘內建置複雜的串流處理應用程式。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

範例:將參考資料新增至 Kinesis Data Analytics 應用程式

在本練習中,將參考資料新增至現有的 Kinesis Data Analytics 應用程式。如需參考資料的相關資訊,請參閱下列主題:

在本練習中,將參考資料新增至您在 Kinesis Data Analytics 入門練習中建立的應用程式。參考資料提供每個股票代號的公司名稱,例如:

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

首先,完成入門練習中的步驟,以建立入門應用程式。接著請依照這些步驟設定參考資料,並將其新增至您的應用程式:

  1. 準備資料

    • 將先前的參考資料做為物件存放在 Amazon Simple Storage Service (Amazon S3)。

    • 建立 Kinesis Data Analytics 可擔任的 IAM 角色,以代您讀取 Amazon S3 物件。

  2. 將參考資料來源新增到應用程式。

    Kinesis Data Analytics 會讀取 Amazon S3 物件,並建立應用程式內參考資料表,讓您在應用程式碼中查詢。

  3. 測試代碼。

    在應用程式碼中,撰寫聯結查詢,將應用程式內串流與應用程式內參考資料表聯結,以取得每個股票代號的公司名稱。

步驟 1:準備

在本節中,將範例參考資料做為物件存放在 Amazon S3 儲存貯體中。同時建立 Kinesis Data Analytics 可擔任的 IAM 角色,以代您讀取物件。

將參考資料存放為 Amazon S3 物件

在本節中,將範例參考資料做為 Amazon S3 物件儲存。

  1. 開啟文字編輯器,加入以下資料,並將檔案儲存為 TickerReference.csv

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

  2. TickerReference.csv 檔案上傳至 S3 儲存貯體。如需指示說明,請參閱 Amazon Simple Storage Service 使用者指南中的上傳物件至 Amazon S3

建立 IAM 角色

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

  1. 在 AWS Identity and Access Management (IAM) 中,建立名為 KinesisAnalytics-ReadS3Object 的 IAM 角色。若要建立角色,請按照 IAM 使用者指南建立 Amazon 服務的角色 (AWS Management Console) 所述指示操作。

    在 IAM 主控台,指定下列項目:

    • 選取角色類型中,選擇 AWS Lambda。建立角色後,請變更信任政策以允許 Kinesis Data Analytics (而非 AWS Lambda) 擔任該角色。

    • 請勿在附加政策頁面附加任何政策。

  2. 更新 IAM 角色政策:

    1. 在 IAM 主控台中,選擇您剛建立的角色。

    2. 信任關係標籤上,更新信任政策以授與 Kinesis Data Analytics 權限來擔任該角色。信任政策如下所示:

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

    3. 許可標籤上,附加一個名為 AmazonS3ReadOnlyAccess 的 Amazon 受管政策。此舉會授予該角色讀取 Amazon S3 物件的許可。此政策如下所示。

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

步驟 2:將參考資料來源新增至應用程式組態

在此步驟中,將參考資料來源新增至您的應用程式組態。首先,您需要下列資訊:

  • 您的 S3 儲存貯體名稱和物件金鑰名稱

  • IAM 角色 Amazon Resource Name (ARN)。

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

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

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

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

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

  6. 選擇儲存與關閉

步驟 3:測試:查詢應用程式內參考資料表

您現在可查詢應用程式內參考資料表 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";
  2. 確認應用程式輸出是否顯示在 SQLResults 標籤中。請確定某些資料欄顯示公司名稱 (範例參考資料並未包含所有公司名稱)。