使用 Kinesis Data Streams 建立 Studio 筆記本 - Managed Service for Apache Flink

Amazon Managed Service for Apache Flink 之前稱為 Amazon Kinesis Data Analytics for Apache Flink。

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

使用 Kinesis Data Streams 建立 Studio 筆記本

本教學課程說明如何建立使用 Kinesis 資料串流作為來源的 Studio 筆記本。

設定

建立 Studio 筆記本之前,請先建立 Kinesis 資料串流 (ExampleInputStream)。您的應用程式使用此串流作為應用程式來源。

您可以使用 Amazon Kinesis 主控台或以下 AWS CLI 命令來建立該串流。如需主控台指示,請參閱《Amazon Kinesis Data Streams 開發人員指南》中的建立和更新資料串流。將該串流命名為 ExampleInputStream,並將開啟的碎片數量設定為 1

若要使用建立串流 (ExampleInputStream) AWS CLI,請使用下列 Amazon Kinesis create-stream AWS CLI 命令。

$ aws kinesis create-stream \ --stream-name ExampleInputStream \ --shard-count 1 \ --region us-east-1 \ --profile adminuser

創建一個 AWS Glue 表

您的 Studio 筆記本使用 AWS Glue 資料庫取得有關 Kinesis Data Streams 資料來源的中繼資料。

注意

您可以先手動建立資料庫,也可以讓 Managed Service for Apache Flink 在您建立筆記本時為您建立資料庫。同樣,您可以依照本節所述手動建立資料表,也可以在 Apache Zeppelin 的筆記本中,使用針對 Managed Service for Apache Flink 的建立資料表連接器程式碼,透過 DDL 陳述式建立資料表。然後,您可以入庫 AWS Glue 以確保表格已正確建立。

建立資料表
  1. 請登入 AWS Management Console 並開啟 AWS Glue 主控台,網址為 https://console.aws.amazon.com/glue/

  2. 如果您還沒有資料 AWS Glue 庫,請從左側導覽列選擇 [資料庫]。選擇新增資料庫。在新增資料庫視窗中,為資料庫名稱輸入 default。選擇建立

  3. 在左側導覽列中,選擇資料表。在資料表頁面,選擇新增資料表 > 手動新增資料表

  4. 設定資料表頁面,為資料表名稱輸入 stock。請務必選取先前建立的資料庫。選擇下一步

  5. 新增資料存放區頁面,選擇 Kinesis。對於串流名稱,輸入 ExampleInputStream。針對 Kinesis 來源 URL,請選擇輸入 https://kinesis.us-east-1.amazonaws.com。如果您複製並貼上 Kinesis 來源 URL,請務必刪除任何前置或尾端空格。選擇下一步

  6. 分類頁面,選擇 JSON。選擇下一步

  7. 定義結構描述頁面,選擇「新增資料欄」以新增資料欄。新增具有下列屬性的欄:

    欄名稱 資料類型
    ticker string
    price double

    選擇下一步

  8. 在下一頁上,確認您的設定,然後選擇完成

  9. 從資料表清單中選取您新建立的資料表。

  10. 選擇編輯資料表,然後新增索引鍵為 managed-flink.proctime 值為 proctime 的屬性。

  11. 選擇套用

使用 Kinesis Data Streams 建立 Studio 筆記本

現在,您已建立應用程式使用的資源,接下來可以建立您的 Studio 筆記本。

若要建立您的應用程式,您可以使用 AWS Management Console 或 AWS CLI.

建立工作室筆記本 AWS Management Console

  1. 前往 https://console.aws.amazon.com/managed-flink/home?region=us-east-1#/applications/dashboard 開啟 Managed Service in the Apache Flink 主控台。

  2. Managed Service for Apache Flink 應用程式頁面,選擇 Studio 標籤。選擇建立 Studio 筆記本

    注意

    您也可以藉由選取輸入 Amazon MSK 叢集或 Kinesis 資料串流,然後選擇即時處理資料,從 Amazon MSK 或 Kinesis Data Streams 主控台建立 Studio 筆記本。

  3. 建立 Studio 筆記本頁面,提供下列資訊:

    • 為筆記本名稱輸入 MyNotebook

    • AWS Glue 資料庫選擇預設值

    選擇建立 Studio 筆記本

  4. MyNotebook頁面中,選擇 [執行]。等待狀態顯示為執行中。筆記本執行時需支付費用。

建立工作室筆記本 AWS CLI

若要使用建立您的 Studio 筆記本 AWS CLI,請執行下列動作:

  1. 驗證您的帳戶 ID。您需要此值來建立應用程式。

  2. 建立角色 arn:aws:iam::AccountID:role/ZeppelinRole,並將下列許可新增至主控台自動建立的角色。

    "kinesis:GetShardIterator",

    "kinesis:GetRecords",

    "kinesis:ListShards"

  3. 建立稱為 create.json 的檔案,其中具有以下內容。使用您的資訊取代預留位置的值。

    { "ApplicationName": "MyNotebook", "RuntimeEnvironment": "ZEPPELIN-FLINK-3_0", "ApplicationMode": "INTERACTIVE", "ServiceExecutionRole": "arn:aws:iam::AccountID:role/ZeppelinRole", "ApplicationConfiguration": { "ApplicationSnapshotConfiguration": { "SnapshotsEnabled": false }, "ZeppelinApplicationConfiguration": { "CatalogConfiguration": { "GlueDataCatalogConfiguration": { "DatabaseARN": "arn:aws:glue:us-east-1:AccountID:database/default" } } } } }
  4. 若要建立應用程式,請執行下列命令:

    aws kinesisanalyticsv2 create-application --cli-input-json file://create.json
  5. 命令完成後,您應該會看到類似如下的輸出,其中顯示新 Studio 筆記本的詳細資料:以下為輸出範例。

    { "ApplicationDetail": { "ApplicationARN": "arn:aws:kinesisanalyticsus-east-1:012345678901:application/MyNotebook", "ApplicationName": "MyNotebook", "RuntimeEnvironment": "ZEPPELIN-FLINK-3_0", "ApplicationMode": "INTERACTIVE", "ServiceExecutionRole": "arn:aws:iam::012345678901:role/ZeppelinRole", ...
  6. 若要執行應用程式,請執行下列命令:使用您的帳戶 ID 取代範例值。

    aws kinesisanalyticsv2 start-application --application-arn arn:aws:kinesisanalyticsus-east-1:012345678901:application/MyNotebook\

將資料傳送至 Kinesis 資料串流

若要將測試資料傳送至 Kinesis 資料串流,請執行下列動作:

  1. 開啟 Kinesis 資料產生器

  2. 選擇使用建立 Cognito 使用 CloudFormation者

  3. AWS CloudFormation 主控台隨即開啟,其中包含 Kinesis 資料產生器範本。選擇下一步

  4. 指定堆疊詳細資訊頁面,輸入 Cognito 使用者的使用者名稱和密碼。選擇下一步

  5. 設定堆疊選項頁面,選擇下一步

  6. 在 [檢閱動態資料產生器-認知-使用者] 頁面中,選擇 [我確認可能會建立 IAM 資源]。 AWS CloudFormation 核取方塊。選擇 Create Stack (建立堆疊)。

  7. 等待 AWS CloudFormation 堆棧完成創建。堆疊完成後,在主控台中開啟 [運動資料產生器-齒狀-使用者] 堆疊,然後選擇 [輸出] 索引標籤。 AWS CloudFormation 打開列KinesisDataGeneratorUrl出的輸出值的 URL。

  8. Amazon Kinesis 資料產生器頁面,使用您在步驟 4 中建立的憑證登入。

  9. 在下一頁面,提供下列值:

    區域 us-east-1
    流/Firehose 溪 ExampleInputStream
    每秒記錄 1

    記錄範本貼上下列程式碼:

    { "ticker": "{{random.arrayElement( ["AMZN","MSFT","GOOG"] )}}", "price": {{random.number( { "min":10, "max":150 } )}} }
  10. 選擇傳送資料

  11. 產生器會將資料傳送至 Kinesis 資料串流。

    完成下一節時,讓產生器保持執行狀態。

測試 Studio 筆記本

在本節中,您可以使用 Studio 筆記本查詢 Kinesis 資料串流中的資料。

  1. 前往 https://console.aws.amazon.com/managed-flink/home?region=us-east-1#/applications/dashboard 開啟 Managed Service in the Apache Flink 主控台。

  2. Managed Service for Apache Flink 應用程式頁面,選擇 Studio 筆記本標籤。選擇MyNotebook

  3. MyNotebook頁面中,選擇在 Apache 齊柏林飛艇中打開

    Apache Zeppelin 介面會在新標籤中開啟。

  4. 歡迎來到 Zeppelin! 頁面,選擇 Zeppelin 筆記

  5. Zeppelin 筆記頁面,在新筆記中輸入以下查詢:

    %flink.ssql(type=update) select * from stock

    選擇執行圖示。

    一小段時間後,筆記會顯示 Kinesis 資料串流中的資料。

若要為應用程式開啟 Apache Flink 儀表板以檢視操作層面,請選擇 FLINK 作業。如需 Flink 儀表板的詳細資訊,請參閱 Managed Service for Apache Flink 開發人員指南中的 Apache Flink 儀表板

如需 Flink 串流 SQL 查詢的更多範例,請參閱 Apache Flink 文件中的查詢