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 的筆記本中,使用為 Apache Flink 管理服務建立表格連接器程式碼,透過陳述式建立表格。DDL然後,您可以入庫 AWS Glue 以確保表格已正確建立。
建立資料表
登入 AWS Management Console 並開啟 AWS Glue 主控台,位於https://console.aws.amazon.com/glue/
。 如果您還沒有資料 AWS Glue 庫,請從左側導覽列選擇 [資料庫]。選擇新增資料庫。在新增資料庫視窗中,為資料庫名稱輸入
default
。選擇 Create (建立)。在左側導覽列中,選擇資料表。在資料表頁面,選擇新增資料表 > 手動新增資料表。
在設定資料表頁面,為資料表名稱輸入
stock
。請務必選取先前建立的資料庫。選擇 Next (下一步)。在新增資料存放區頁面,選擇 Kinesis。對於串流名稱,輸入
ExampleInputStream
。針對 Kinesis 來源 URL,選擇 Enterhttps://kinesis.us-east-1.amazonaws.com
。如果您複製並貼上 Kinesis 來源 URL,請務必刪除任何前置或尾端空格。選擇 Next (下一步)。在「分類」頁面中,選擇JSON。選擇 Next (下一步)。
在定義結構描述頁面,選擇「新增資料欄」以新增資料欄。新增具有下列屬性的欄:
欄名稱 資料類型 ticker
string
price
double
選擇 Next (下一步)。
在下一頁上,確認您的設定,然後選擇完成。
-
從資料表清單中選取您新建立的資料表。
-
選擇編輯資料表,然後新增索引鍵為
managed-flink.proctime
值為proctime
的屬性。 -
選擇套用。
使用 Kinesis Data Streams 建立 Studio 筆記本
現在,您已建立應用程式使用的資源,接下來可以建立您的 Studio 筆記本。
若要建立您的應用程式,您可以使用 AWS Management Console 或 AWS CLI.
建立工作室筆記本 AWS Management Console
在 Managed Service for Apache Flink 應用程式頁面,選擇 Studio 標籤。選擇建立 Studio 筆記本。
注意
您也可以透過選取輸入的 Amazon MSK 叢集MSK或 Kinesis 資料串流,然後選擇即時處理資料,從 Amazon 或 Kinesis 資料串流主控台建立 Studio 筆記本。
在建立 Studio 筆記本頁面,提供下列資訊:
為筆記本名稱輸入
MyNotebook
。為 AWS Glue 資料庫選擇預設值。
選擇建立 Studio 筆記本。
在MyNotebook頁面中,選擇 [執行]。等待狀態顯示為執行中。筆記本執行時需支付費用。
建立工作室筆記本 AWS CLI
若要使用建立您的 Studio 筆記本 AWS CLI,請執行下列動作:
驗證您的帳戶 ID。您需要此值來建立應用程式。
建立角色
arn:aws:iam::
,並將下列許可新增至主控台自動建立的角色。AccountID
:role/ZeppelinRole"kinesis:GetShardIterator",
"kinesis:GetRecords",
"kinesis:ListShards"
建立稱為
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" } } } } }若要建立應用程式,請執行下列命令:
aws kinesisanalyticsv2 create-application --cli-input-json file://create.json
命令完成後,您應該會看到類似如下的輸出,其中顯示新 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", ...
若要執行應用程式,請執行下列命令:使用您的帳戶 ID 取代範例值。
aws kinesisanalyticsv2 start-application --application-arn arn:aws:kinesisanalyticsus-east-1:
012345678901
:application/MyNotebook\
將資料傳送至 Kinesis 資料串流
若要將測試資料傳送至 Kinesis 資料串流,請執行下列動作:
開啟 Kinesis 資料產生器
。 選擇使用建立 Cognito 使用 CloudFormation者。
AWS CloudFormation 主控台隨即開啟,其中包含 Kinesis 資料產生器範本。選擇 Next (下一步)。
在指定堆疊詳細資訊頁面,輸入 Cognito 使用者的使用者名稱和密碼。選擇 Next (下一步)。
在設定堆疊選項頁面,選擇下一步。
在 [檢閱運動資料產生器-認知-使用者] 頁面中,選擇 [我確認可能會建立資源的]。 AWS CloudFormation IAM 核取方塊。選擇 Create Stack (建立堆疊)。
等待 AWS CloudFormation 堆棧完成創建。堆疊完成後,在主控台中開啟 [運動資料產生器-齒狀-使用者] 堆疊,然後選擇 [輸出] 索引標籤。 AWS CloudFormation 打開URL列出的KinesisDataGeneratorUrl輸出值。
在 Amazon Kinesis 資料產生器頁面,使用您在步驟 4 中建立的憑證登入。
在下一頁面,提供下列值:
區域 us-east-1
流/Firehose 溪 ExampleInputStream
每秒記錄 1
為記錄範本貼上下列程式碼:
{ "ticker": "{{random.arrayElement( ["AMZN","MSFT","GOOG"] )}}", "price": {{random.number( { "min":10, "max":150 } )}} }
選擇傳送資料。
產生器會將資料傳送至 Kinesis 資料串流。
完成下一節時,讓產生器保持執行狀態。
測試 Studio 筆記本
在本節中,您可以使用 Studio 筆記本查詢 Kinesis 資料串流中的資料。
在 Managed Service for Apache Flink 應用程式頁面,選擇 Studio 筆記本標籤。選擇MyNotebook。
在MyNotebook頁面中,選擇在 Apache 齊柏林飛艇中打開。
Apache Zeppelin 介面會在新標籤中開啟。
在歡迎來到 Zeppelin! 頁面,選擇 Zeppelin 筆記。
在 Zeppelin 筆記頁面,在新筆記中輸入以下查詢:
%flink.ssql(type=update) select * from stock
選擇執行圖示。
一小段時間後,筆記會顯示 Kinesis 資料串流中的資料。
若要為您的應用程式開啟 Apache Flink 儀表板以檢視操作層面,請選擇FLINKJOB。如需 Flink 儀表板的詳細資訊,請參閱 Managed Service for Apache Flink 開發人員指南中的 Apache Flink 儀表板。
如需 Flink 串流SQL查詢的更多範例,請參閱 Apache Flink