使用 Amazon RDS 資料庫中的資料建立 Amazon ML 資料來源 - Amazon Machine Learning

我們不再更新 Amazon Machine Learning 服務或接受新使用者。本文件適用於現有使用者,但我們不再對其進行更新。如需詳細資訊,請參閱什麼是 Amazon Machine Learning

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

使用 Amazon RDS 資料庫中的資料建立 Amazon ML 資料來源

Amazon ML 允許您從存放在 Amazon Relational Database Service (Amazon RDS) 中 MySQL 資料庫的資料,建立資料來源物件。當您執行此動作,Amazon ML 會建立 AWS Data Pipeline 物件,此物件會執行您指定的 SQL 查詢,並將輸出放到您選擇的 S3 儲存貯體。Amazon ML 使用該資料來建立資料來源。

注意

Amazon ML 僅支援 VPC 中的 MySQL 資料庫。

您必須先將資料匯出至 Amazon Simple Storage Service (Amazon S3),Amazon ML 才能讀取您的輸入資料。您可以使用 API 設定 Amazon ML 為您執行匯出。(RDS 僅限於 API,不可從主控台使用。)

若要讓 Amazon ML 連接至 Amazon RDS 中您的 MySQL 資料庫並代表您讀取資料,您必須提供下列項目:

  • RDS 資料庫執行個體識別符

  • MySQL 資料庫名稱

  • 所以此AWS Identity and Access Management(IAM) 角色,用以建立、啟動和執行資料流程

  • 資料庫使用者登入資料:

    • 使用者名稱

    • 密碼

  • AWS Data Pipeline 安全資訊:

    • IAM 資源角色

    • IAM 服務角色

  • Amazon RDS 安全信息:

    • 子網路 ID

    • 安全群組 ID

  • SQL 查詢,指定您想要用來建立資料來源的資料

  • 用於存放查詢結果的 S3 輸出位置 (儲存貯體)

  • (選用) 資料結構描述檔案的位置

此外,您需要確定使用CreateDataSourceFromRDS操作具有iam:PassRole許可。如需詳細資訊,請參閱 控制 Amazon ML 資源的存取 - 使用 IAM

RDS 資料庫執行個體識別符

RDS 資料庫執行個體識別符是您提供的唯一名稱,用於識別 Amazon ML 與 Amazon RDS 互動時應使用的資料庫執行個體。您可以在 Amazon RDS 主控台中找到 RDS 資料庫執行個體識別符。

MySQL 資料庫名稱

MySQL 資料庫名稱指定 RDS 資料庫執行個體中的 MySQL 資料庫名稱。

資料庫使用者登入資料

若要連接到 RDS 資料庫執行個體,您必須提供具有足夠許可之資料庫使用者的使用者名稱和密碼,才能執行您提供的 SQL 查詢。

AWS Data Pipeline 安全資訊

若要啟用安全的 AWS Data Pipeline 存取,您必須提供 IAM 資源角色和 IAM 服務角色的名稱。

擔任資源角色的 EC2 執行個體會從 Amazon RDS 複製資料到 Amazon S3。建立此資源角色最簡單的方式是使用 DataPipelineDefaultResourceRole 範本,並將 machinelearning.aws.com 列為信任的服務。如需範本的詳細資訊,請參閱 AWS Data Pipeline 開發人員指南中的設定 IAM 角色

如果您建立自己的角色,則必須具備下列動作:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "machinelearning.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:machinelearning:us-east-1:123456789012:datasource/*" } } }] }

擔任服務角色的 AWS Data Pipeline 會監控從 Amazon RDS 複製資料到 Amazon S3 的進度。建立此資源角色最簡單的方式是使用 DataPipelineDefaultRole 範本,並將 machinelearning.aws.com 列為信任的服務。如需範本的詳細資訊,請參閱 AWS Data Pipeline 開發人員指南中的設定 IAM 角色

Amazon RDS 安全信息

若要啟用安全的 Amazon RDS 存取,您必須提供VPC Subnet IDRDS Security Group IDs。您也需要設定由 Subnet ID 參數指向的 VPC 子網路適當輸入規則,並提供具有此許可的安全群組 ID。

MySQL SQL 查詢

MySQL SQL Query 參數指定您想在 MySQL 資料庫上執行的 SQL SELECT 查詢。查詢的結果會複製到您指定的 S3 輸出位置 (儲存貯體)。

注意

當輸入記錄以隨機順序 (隨機播放) 呈現時,機器學習記數的運作最為良好。您可以使用 rand() 函數,輕鬆地隨機播放 MySQL SQL 查詢的結果。例如,假設這是原始查詢:

"SELECT col1, col2, … FROM training_table"

您可以更新查詢來增加隨機播放,如下所示:

"SELECT col1, col2, … FROM training_table ORDER BY rand()"

S3 輸出位置

所以此S3 Output Location參數指定「暫存」Amazon S3 位置的名稱,MySQL SQL 查詢的結果將輸出至此。

注意

您需要確保當資料從 Amazon RDS 匯出後,Amazon ML 具備由此位置讀取資料的許可。如需設定這些許可的詳細資訊,請參閱「授予 Amazon ML 許可從 Amazon S3 讀取您的資料」。