選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

教學課程:在 AWS Glue for Ray 中撰寫 ETL 指令碼

焦點模式
教學課程:在 AWS Glue for Ray 中撰寫 ETL 指令碼 - AWS Glue

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

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

Ray 可讓您在 Python 中原生撰寫和擴展分散式任務。 AWS Glue for Ray 提供無伺服器 Ray 環境,您可以從任務和互動式工作階段存取 (Ray 互動式工作階段為預覽版)。 AWS Glue 任務系統提供一致的方式來管理和執行任務,無論是排程、觸發或從 AWS Glue 主控台。

結合這些 AWS Glue 工具可建立強大的工具鏈,可用於擷取、轉換和載入 (ETL) 工作負載,這是 的熱門使用案例 AWS Glue。在本教學課程中,您將了解整合使用此解決方案的基礎概念。

我們也支援針對 ETL 工作負載使用 AWS Glue for Spark。如需撰寫 AWS Glue for Spark 指令碼的教學課程,請參閱 教學課程:撰寫 Glue for Spark AWS 指令碼。如需有關可用引擎的詳細資訊,請參閱 AWS Glue 適用於 Spark 和 AWS Glue Ray。Ray 能夠在分析、機器學習 (ML) 和應用程式開發過程中處理眾多不同類型的任務。

在本教學課程中,您將擷取、轉換和載入在 Amazon Simple Storage Service (Amazon S3) 中託管的 CSV 資料集。您將從存放在公有 Amazon S3 儲存貯體中的紐約市計程車禮車委員會 (TLC) 行程記錄資料集開始。如需有關此資料集的詳細資訊,請參閱 AWS上的開放資料登錄檔

您將使用 Ray Data 程式庫中可用的預先定義轉換來轉換資料。Ray Data 是由 Ray 設計的資料集準備程式庫,預設包含在 Ray 環境 AWS Glue 的 中。如需有關這些預設內含程式庫的詳細資訊,請參閱 Ray 任務隨附的模組。接著,您可以將轉換後的資料寫入您控制的 Amazon S3 儲存貯體。

先決條件 – 在此教學課程中,您需要具有 AWS Glue 和 Amazon S3 存取權 AWS 的帳戶。

步驟 1:在 Amazon S3 中建立儲存貯體以保存您的輸出資料

您將需要一個由您控制的 Amazon S3 儲存貯體,作為本教學課程中所建立資料的接收器。您可以使用下列程序建立此儲存貯體。

注意

如果您想要將資料寫入您控制的現有儲存貯體,則可略過此步驟。記下 yourBucketName (現有儲存貯體的名稱),以便在後續步驟中使用。

為 Ray 任務輸出建立儲存貯體
  • 按照《Amazon S3 使用者指南》建立儲存貯體中所述的步驟,建立儲存貯體。

    • 選擇儲存貯體名稱時,請記下 yourBucketName,您將在後續步驟中參考該名稱。

    • 對於其他組態,Amazon S3 主控台中提供的建議設定應可在本教學課程中正常運作。

    舉例來說,儲存貯體建立對話方塊在 Amazon S3 主控台中可能看起來會像這樣。

    Amazon S3 主控台中的對話方塊,用於設定新儲存貯體。

步驟 2:為 Ray 任務建立 IAM 角色與政策

您的任務需要具有下列項目的 AWS Identity and Access Management (IAM) 角色:

  • AWSGlueServiceRole 受管政策授予的許可。這些是執行 AWS Glue 任務所需的基本許可。

  • 適用於 nyc-tlc/* Amazon S3 資源的 Read 存取層級許可。

  • 適用於 yourBucketName/* Amazon S3 資源的 Write 存取層級許可。

  • 可讓 glue.amazonaws.com 主體擔任角色的信任關係。

您可以使用下列程序建立此角色。

為您的 AWS Glue for Ray 任務建立 IAM 角色
注意

您可以按照許多不同的程序建立 IAM 角色。如需有關如何佈建 IAM 資源的詳細資訊或選項,請參閱 AWS Identity and Access Management 文件

  1. 依照《IAM 使用者指南》使用視覺化編輯器來建立 IAM 政策 (主控台) 所述的下列步驟,建立政策以定義先前所述的 Amazon S3 許可。

    • 選取服務時,請選擇 Amazon S3。

    • 選取政策的許可時,請針對下列資源 (先前所述) 附加下列動作集:

      • 適用於 nyc-tlc/* Amazon S3 資源的讀取存取層級許可。

      • 適用於 yourBucketName/* Amazon S3 資源的寫入存取層級許可。

    • 選取政策名稱時,請記下 YourPolicyName,您將在後續步驟中參考該名稱。

  2. 遵循 IAM 使用者指南中的為 AWS 服務建立角色 (主控台) 中的步驟,為 AWS Glue for Ray 任務建立角色。

    • 選取信任 AWS 的服務實體時,請選擇 Glue。這會自動為您的任務填入必要的信任關係。

    • 選取許可政策的政策時,請附加下列政策:

      • AWSGlueServiceRole

      • YourPolicyName

    • 選取角色名稱時,請記下 YourRoleName,您將在後續步驟中參考該名稱。

步驟 3:建立並執行 AWS Glue for Ray 任務

在此步驟中,您會使用 建立 AWS Glue 任務 AWS Management Console、提供範例指令碼,然後執行任務。當您建立任務時,系統會在主控台中建立一個位置,供您存放、設定和編輯 Ray 指令碼。如需有關建立任務的詳細資訊,請參閱登入 AWS Glue 主控台

在本教學課程中,我們會討論以下 ETL 案例:您想要從 紐約市計程車禮車委員會 (TLC) 行程記錄資料集中讀取 2022 年 1 月的記錄,透過合併現有資料欄中的資料,在資料集中新增資料欄 (tip_rate),然後移除一些與目前分析無關的資料欄,接著再將結果寫入 yourBucketName。下列 Ray 指令碼會執行這些步驟:

import ray import pandas from ray import data ray.init('auto') ds = ray.data.read_csv("s3://nyc-tlc/opendata_repo/opendata_webconvert/yellow/yellow_tripdata_2022-01.csv") # Add the given new column to the dataset and show the sample record after adding a new column ds = ds.add_column( "tip_rate", lambda df: df["tip_amount"] / df["total_amount"]) # Dropping few columns from the underlying Dataset ds = ds.drop_columns(["payment_type", "fare_amount", "extra", "tolls_amount", "improvement_surcharge"]) ds.write_parquet("s3://yourBucketName/ray/tutorial/output/")
建立和執行 AWS Glue for Ray 任務
  1. 在 中 AWS Management Console,導覽至 AWS Glue 登陸頁面。

  2. 在側邊的導覽窗格中,選擇 ETL 任務

  3. 建立任務中,選擇 Ray 指令碼編輯器,然後選擇建立,如下圖所示。

    AWS Glue 主控台中用來建立 Ray 任務的對話方塊。
  4. 將指令碼的全文貼至指令碼窗格中,並替換任何現有的文字。

  5. 導覽至任務詳細資訊,並將 IAM 角色屬性設定為 YourRoleName

  6. 選擇儲存,然後選擇執行

步驟 4:檢查輸出

執行 AWS Glue 任務之後,您應該驗證輸出是否符合此案例的預期。若要執行此作業,請依照下列程序操作。

驗證您的 Ray 任務是否順利執行
  1. 在任務詳細資訊頁面上,導覽至執行

  2. 幾分鐘後,您應會看到執行狀態成功的執行。

  3. https://console.aws.amazon.com/s3/ 上導覽至 Amazon S3 主控台,並檢查 yourBucketName。您應會看到寫入輸出儲存貯體的檔案。

  4. 讀取 Parquet 檔案並驗證其內容。您可以使用現有工具執行此操作。如果您沒有驗證 Parquet 檔案的程序,您可以使用 Spark 或 Ray (預覽) 在具有 AWS Glue 互動式工作階段的 AWS Glue 主控台中執行此操作。

    在互動式工作階段中,您可以存取預設提供的 Ray Data、Spark 或 pandas 程式庫 (根據您選擇的引擎)。若要驗證您的檔案內容,您可使用適用於這些程式庫的常用檢查方法,例如 countschemashow 等。如需 主控台中互動式工作階段的詳細資訊,請參閱搭配使用筆記本與 AWS Glue Studio 和 AWS Glue

    由於您已確認檔案寫入儲存貯體,您可以相對地確認若輸出有任何問題,則與 IAM 組態無關。使用 yourRoleName 設定工作階段,以存取相關檔案。

若結果不如預期,請檢查本指南中的疑難排解內容,以識別並修復錯誤的來源。若要解譯任務執行錯誤狀態,請參閱 AWS Glue 任務執行狀態。您可以在 AWS Glue 疑難排解 一章中找到疑難排解內容。如需了解與 Ray 任務相關的特定錯誤,請參閱疑難排解一章中的 對日誌 AWS Glue 中的 Ray 錯誤進行故障診斷

後續步驟

您現在已端對端使用 AWS Glue for Ray 看到並執行 ETL 程序。您可以使用下列資源來了解 AWS Glue Ray 提供哪些工具來大規模轉換和解譯您的資料。

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。