使用 Amazon Redshift ML 執行進階分析 - AWS 方案指引

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

使用 Amazon Redshift ML 執行進階分析

由 Po Hong (AWS) 和 Chyanna Antonio (AWS) 建立

Summary

在 Amazon Web Services (AWS) 雲端上,您可以使用 Amazon Redshift Machine Learning (Amazon Redshift ML) 對存放在 Amazon Redshift 叢集或 Amazon Simple Storage Service (Amazon S3) 中的資料執行 ML 分析。Amazon Redshift ML 支援監督式學習,通常用於進階分析。Amazon Redshift ML 的使用案例包括營收預測、信用卡詐騙偵測,以及客戶生命週期價值 (CLV) 或客戶流失預測。

Amazon Redshift ML 可讓資料庫使用者使用標準 SQL 命令輕鬆建立、訓練和部署 ML 模型。Amazon Redshift ML 使用 Amazon SageMaker Autopilot 根據您的資料自動訓練和調整分類或迴歸的最佳 ML 模型,同時保留控制和可見性。

Amazon Redshift、Amazon S3 和 Amazon SageMaker 之間的所有互動都會抽象化並自動化。訓練並部署 ML 模型後,它在 Amazon Redshift 中成為使用者定義函數 (UDF),可用於 SQL 查詢。 

此模式補充了 AWS 部落格中的使用 SQL 搭配 Amazon Redshift ML 在 Amazon Redshift 中建立、訓練和部署 ML 模型,以及入門資源中心的建置、訓練和部署 ML 模型 Amazon SageMaker教學。

先決條件和限制

先決條件

  • 作用中的 AWS 帳戶

  • Amazon Redshift 資料表中的現有資料

技能

  • 熟悉 Amazon Redshift ML 所使用的術語和概念,包括機器學習訓練預測。如需詳細資訊,請參閱《Amazon Machine Learning (Amazon ML) 文件》中的訓練 ML 模型

  • 具有 Amazon Redshift 使用者設定、存取管理和標準 SQL 語法的經驗。如需詳細資訊,請參閱《Amazon Redshift 文件》中的 Amazon Redshift 入門。

  • Amazon S3 和 AWS Identity and Access Management (IAM) 的知識和經驗。 

  • 在 AWS Command Line Interface (AWS CLI) 中執行命令的經驗也很有幫助,但並非必要。

限制

  • Amazon Redshift 叢集和 S3 儲存貯體必須位於相同的 AWS 區域。

  • 此模式的方法僅支援監督式學習模型,例如迴歸、二進位分類和多類別分類。 

架構

工作流程顯示 Amazon Redshift ML 如何與 SageMaker 搭配使用,以建置、訓練和部署 ML 模型。

下列步驟說明 Amazon Redshift ML 如何與 SageMaker 搭配使用,以建置、訓練和部署 ML 模型: 

  1. Amazon Redshift 會將訓練資料匯出至 S3 儲存貯體。

  2. SageMaker Autopilot 會自動預先處理訓練資料。

  3. 叫用CREATE MODEL陳述式之後,Amazon Redshift ML 會使用 SageMaker 進行訓練。

  4. SageMaker Autopilot 會搜尋並建議 ML 演算法和最佳化評估指標的最佳超參數。

  5. Amazon Redshift ML 會將輸出 ML 模型註冊為 Amazon Redshift 叢集中的 SQL 函數。

  6. ML 模型的 函數可用於 SQL 陳述式。 

技術堆疊

  • Amazon Redshift

  • SageMaker

  • Amazon S3

工具

  • Amazon Redshift – Amazon Redshift 是一種企業級的 PB 級全受管資料倉儲服務。

  • Amazon Redshift ML – Amazon Redshift Machine Learning (Amazon Redshift ML) 是一種強大的雲端服務,可讓所有技能水準的分析師和資料科學家輕鬆使用 ML 技術。

  • Amazon S3 – Amazon Simple Storage Service (Amazon S3) 是網際網路的儲存體。 

  • Amazon SageMaker – SageMaker 是全受管 ML 服務。 

  • Amazon SageMaker Autopilot – SageMaker Autopilot 是一種功能集,可自動執行自動機器學習 (AutoML) 程序的關鍵任務。

Code

您可以使用下列程式碼,在 Amazon Redshift 中建立受監督的 ML 模型:

“CREATE MODEL customer_churn_auto_model FROM (SELECT state, account_length, area_code, total_charge/account_length AS average_daily_spend, cust_serv_calls/account_length AS average_daily_cases, churn FROM customer_activity WHERE record_date < '2020-01-01' ) TARGET churn FUNCTION ml_fn_customer_churn_auto IAM_ROLE 'arn:aws:iam::XXXXXXXXXXXX:role/Redshift-ML' SETTINGS ( S3_BUCKET 'your-bucket' );”)
注意

SELECT 狀態可以參考 Amazon Redshift 一般資料表、Amazon Redshift Spectrum 外部資料表或兩者。

史詩

任務描述所需的技能

準備訓練和測試資料集。

登入 AWS 管理主控台並開啟 Amazon SageMaker 主控台。遵循建置、訓練和部署機器學習模型教學中的指示,建立具有標籤欄 (監督式訓練) 且無標頭的 .csv 或 Apache Parquet 檔案。 

注意

我們建議您隨機播放原始資料集,並將其分割為模型訓練的訓練集 (70%),以及模型效能評估的測試集 (30%)。

資料科學家
任務描述所需的技能

建立和設定 Amazon Redshift 叢集。

在 Amazon Redshift 主控台上,根據您的需求建立叢集。如需詳細資訊,請參閱 Amazon Redshift 文件中的建立叢集。 

重要

Amazon Redshift 叢集必須使用SQL_PREVIEW維護軌道建立。如需預覽追蹤的詳細資訊,請參閱 Amazon Redshift 文件中的選擇叢集維護追蹤

DBA,雲端架構師

建立 S3 儲存貯體以存放訓練資料和模型成品。

在 Amazon S3 主控台上,為訓練和測試資料建立 S3 儲存貯體。如需建立 S3 儲存貯體的詳細資訊,請參閱從 AWS Quick Starts 建立 S3 儲存貯體。 

重要

請確定您的 Amazon Redshift 叢集和 S3 儲存貯體位於相同的區域。 

DBA,雲端架構師

建立 IAM 政策並將其連接至 Amazon Redshift 叢集。

建立 IAM 政策,以允許 Amazon Redshift 叢集存取 SageMaker 和 Amazon S3。如需指示和步驟,請參閱《Amazon Redshift 文件》中的使用 Amazon Redshift ML 的叢集設定

DBA,雲端架構師

允許 Amazon Redshift 使用者和群組存取結構描述和資料表。

授予許可,以允許 Amazon Redshift 中的使用者和群組存取內部和外部結構描述和資料表。如需步驟和說明,請參閱《Amazon Redshift 文件》中的管理許可和擁有權

DBA
任務描述所需的技能

在 Amazon Redshift 中建立和訓練 ML 模型。

在 Amazon Redshift ML 中建立和訓練 ML 模型。如需詳細資訊,請參閱 Amazon Redshift 文件中的 CREATE MODEL陳述式。

開發人員、資料科學家
任務描述所需的技能

使用產生的 ML 模型函數執行推論。

如需使用產生的 ML 模型函數執行推論的詳細資訊,請參閱 Amazon Redshift 文件中的預測

資料科學家、商業智慧使用者

相關資源

準備訓練和測試資料集

準備和設定技術堆疊

在 Amazon Redshift 中建立和訓練 ML 模型

在 Amazon Redshift 中執行批次推論和預測

其他資源