本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在本教學課程中,您將會學到如何使用 AWS Glue Studio 建立串流任務。AWS GlueStudio 是建立 AWS Glue 任務的視覺化界面。
您可以建立串流擷取、轉換和載入 (ETL) 任務,讓它連續執行,並使用來自 Amazon Kinesis Data Streams、Apache Kafka 和 Amazon Managed Streaming for Apache Kafka (Amazon MSK) 等串流來源的資料。
必要條件
若要遵循本教學課程,您需要一位具有 AWS 主控台權限的使用者才能使用AWS Glue、Amazon Kinesis、Amazon S3、Amazon Athena、AWS CloudFormation、AWS Lambda 和 Amazon Cognito。
使用 Amazon Kinesis 的串流資料
使用 Kinesis 資料產生器產生模擬資料
您可以使用 Kinesis 資料產生器 (KDG) 以 JSON 格式合成產生範例資料。您可以在工具文件
若要開始使用,請按一下
以在您的 AWS 環境中執行 AWS CloudFormation 範本。 注意
因為您的 AWS 帳戶中已存在某些資源 (例如 Kinesis 資料產生器的 Amazon Cognito 使用者),因此您可能會遇到 CloudFormation 範本失敗。這可能是因為您已經在其他教學課程或部落格中進行過設定。若要解決這個問題,您可以嘗試在新的 AWS 帳戶使用範本以重新來過,或探索不同的 AWS 區域。這些選項可讓您執行教學課程,而不會與現有資源發生衝突。
此範本會為您佈建 Kinesis 資料串流和 Kinesis 資料產生器帳戶。也會建立 Amazon S3 儲存貯體來保存資料,並建立具有本教學課程所需權限的 Glue 服務角色。
輸入 KDG 將用於驗證的使用者名稱和密碼。記下使用者名稱和密碼以供進一步使用。
選取下一步一直到最後一步。確認 IAM 資源的建立。檢查畫面頂端是否顯示任何錯誤,例如密碼不符合最低需求,然後部署範本。
導覽至堆疊的輸出索引標籤。完成部署範本後,範本會顯示產生的屬性 KinesisDataGeneratorUrl。按一下該網址。
輸入您記下的使用者名稱和密碼。
選取您所使用的區域,然後選取「Kinesis 串流」
GlueStreamTest-{AWS::AccountId}
輸入下列範本:
{ "ventilatorid": {{random.number(100)}}, "eventtime": "{{date.now("YYYY-MM-DD HH:mm:ss")}}", "serialnumber": "{{random.uuid}}", "pressurecontrol": {{random.number( { "min":5, "max":30 } )}}, "o2stats": {{random.number( { "min":92, "max":98 } )}}, "minutevolume": {{random.number( { "min":5, "max":8 } )}}, "manufacturer": "{{random.arrayElement( ["3M", "GE","Vyaire", "Getinge"] )}}" }
現在,您可以使用測試範本查看模擬資料,並使用傳送資料將模擬資料擷取至 Kinesis。
按一下傳送資料,產生 5-10K 的記錄給 Kinesis。
使用 AWS Glue Studio 建立 AWS Glue 串流任務
在控制台導覽至同一地區中的 AWS Glue。
在資料整合和 ETL 下的左側導覽列下,選取 ETL 任務。
使用空白畫布透過視覺化建立 AWS Glue 任務。
導覽至任務詳細資訊索引標籤。
對於 AWS Glue 任務名稱,請輸入
DemoStreamingJob
。對於 IAM 角色,請選取由 CloudFormation 範本佈建的角色
glue-tutorial-role-${AWS::AccountId}
。對於Glue 版本,請選取 Glue 3.0。將其他所有選項保留為預設值。
導覽至視覺化索引標籤。
按一下加號圖示。在搜尋列中,輸入 Kinesis。選取 Amazon Kinesis 資料來源。
在資料來源屬性 - Kinesis 串流索引標籤下,為 Amazon Kinesis 來源選取串流詳細資料。
為資料串流位置選取串流位於我的帳戶。
選擇您正在使用的區域。
選取
GlueStreamTest-{AWS::AccountId}
串流。將其他所有設定保留為預設值。
導覽至資料預覽索引標籤。
按一下開始資料預覽工作階段,即可預覽 KDG 產生的模擬資料。選擇您先前為 AWS Glue 串流任務建立的「Glue 服務角色」。
預覽資料需要 30-60 秒才會顯示。如果顯示沒有可顯示的資料,請按一下齒輪圖示,然後將要取樣的列數變更為
100
。您可以看到如下所示的範例資料:
您也可以在輸出結構描述索引標籤查看推斷的結構描述。
執行轉換並將轉換的結果儲存在 Amazon S3
選取來源節點後,按一下左上角的加號圖示以新增轉換步驟。
選取變更結構描述步驟。
您可以在此步驟重新命名欄位,並轉換欄位的資料類型。將
o2stats
欄位重新命名為OxygenSaturation
,並將所有long
資料類型轉換為int
。按一下加號圖示以新增 Amazon S3 目標。在搜尋方塊中輸入 S3,然後選取 Amazon S3 - 目標轉換步驟。
選取 Parquet 作為目標檔案格式。
選取 Snappy 作為壓縮類型。
輸入 CloudFormation 範本
streaming-tutorial-s3-target-{AWS::AccountId}
建立的 S3 目標位置。選取以便在資料目錄建立資料表,並在後續執行時,更新結構描述和新增分割區。
輸入目標資料庫和資料表名稱,以儲存 Amazon S3 目標資料表的結構描述。
按一下指令碼索引標籤以查看產生的程式碼。
按一下右上角的儲存以儲存 ETL 程式碼,然後按一下執行以啟動 AWS Glue 串流任務。
您可以在執行索引標籤找到執行狀態。讓任務執行 3-5 分鐘,然後停止任務。
驗證在 Amazon Athena 建立的新資料表。