建立資料來源精靈的必要參數 - Amazon Machine Learning

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

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

建立資料來源精靈的必要參數

若要允許 Amazon ML 連線至您的 Amazon Redshift 資料庫並代表您讀取資料,您必須提供下列項目:

  • Amazon Redshift ClusterIdentifier

  • Amazon Redshift 資料庫名稱

  • Amazon Redshift 資料庫登入資料 (使用者名稱和密碼)

  • Amazon ML Amazon Redshift AWS Identity and Access Management (IAM) 角色

  • Amazon Redshift SQL 查詢

  • (選用) Amazon ML 結構描述的位置

  • Amazon S3 預備位置 (Amazon ML 在建立資料來源之前放置資料的位置)

此外,您需要確保建立 Amazon Redshift 資料來源 (無論是透過主控台或使用 CreateDatasourceFromRedshift動作) 的 IAM 使用者或角色具有 iam:PassRole許可。

Amazon Redshift ClusterIdentifier

使用此區分大小寫的參數,讓 Amazon ML 能夠尋找並連線至您的叢集。您可以從 Amazon Redshift 主控台取得叢集識別符 (名稱)。如需叢集的詳細資訊,請參閱 Amazon Redshift 叢集

Amazon Redshift 資料庫名稱

使用此參數來告知 Amazon ML Amazon Redshift 叢集中的哪個資料庫包含您要用作資料來源的資料。

Amazon Redshift 資料庫登入資料

使用這些參數來指定 Amazon Redshift 資料庫使用者的使用者名稱和密碼,其內容是執行安全性查詢。

注意

Amazon ML 需要 Amazon Redshift 使用者名稱和密碼才能連線至您的 Amazon Redshift 資料庫。將資料卸載至 Amazon S3 之後,Amazon ML 永遠不會重複使用您的密碼,也不會儲存密碼。

Amazon ML Amazon Redshift 角色

使用此參數指定 Amazon ML 應該用來設定 Amazon Redshift 叢集安全群組的 IAM 角色名稱,以及 Amazon S3 預備位置的儲存貯體政策。

如果您沒有可存取 Amazon Redshift 的 IAM 角色,Amazon ML 可以為您建立角色。當 Amazon ML 建立角色時,它會建立客戶受管政策並將其連接至 IAM 角色。Amazon ML 建立的政策會授予 Amazon ML 僅存取您指定叢集的許可。

如果您已有存取 Amazon Redshift 的 IAM 角色,您可以輸入角色的 ARN,或從下拉式清單中選擇角色。具有 Amazon Redshift 存取權的 IAM 角色會列在下拉式清單的頂端。

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/*" } } }] }

如需客戶受管政策的詳細資訊,請參閱《IAM 使用者指南》中的客戶受管政策

Amazon Redshift SQL 查詢

使用此參數指定 Amazon ML 在 Amazon Redshift 資料庫上執行的 SQL SELECT 查詢,以選取您的資料。Amazon ML 使用 Amazon Redshift UNLOAD 動作,將查詢結果安全地複製到 Amazon S3 位置。

注意

當輸入記錄以隨機順序 (隨機) 顯示時,Amazon ML 效果最佳。您可以使用 Amazon Redshift random() 函數,輕鬆縮減 Amazon Redshift SQL 查詢的結果。例如,假設這是原始查詢:

"SELECT col1, col2, … FROM training_table"

您可以更新下列這類查詢來內嵌隨機播放:

"SELECT col1, col2, … FROM training_table ORDER BY random()"
結構描述位置 (選用)

使用此參數,為 Amazon ML 將匯出的 Amazon Redshift 資料指定結構描述的 Amazon S3 路徑。

如果您未提供資料來源的結構描述,Amazon ML 主控台會根據 Amazon Redshift SQL 查詢的資料結構描述自動建立 Amazon ML 結構描述。Amazon ML 結構描述的資料類型少於 Amazon Redshift 結構描述,因此不是one-to-one轉換。Amazon ML 主控台使用以下轉換機制將 Amazon Redshift 資料類型轉換為 Amazon ML 資料類型。

Amazon Redshift 資料類型 Amazon Redshift 別名 Amazon ML 資料類型
SMALLINT INT2 NUMERIC
INTEGER INT、INT4 NUMERIC
BIGINT INT8 NUMERIC
DECIMAL NUMERIC NUMERIC
REAL FLOAT4 NUMERIC
DOUBLE PRECISION FLOAT8、FLOAT NUMERIC
BOOLEAN BOOL BINARY
CHAR CHARACTER、NCHAR、BPCHAR CATEGORICAL
VARCHAR CHARACTER VARYING、NVARCHAR、TEXT TEXT
DATE TEXT
TIMESTAMP TIMESTAMP WITHOUT TIME ZONE TEXT

若要轉換為 Amazon ML Binary資料類型,資料中 Amazon Redshift Boolean 的值必須支援 Amazon ML Binary 值。如果您的布林值資料類型有不支援的值,Amazon ML 會將它們轉換為最具體的資料類型。例如,如果 Amazon Redshift 布林值為 012,Amazon ML 會將布林值轉換為Numeric資料類型。如需所支援二元值的詳細資訊,請參閱使用 AttributeType 欄位

如果 Amazon ML 無法找出資料類型,則會預設為 Text

Amazon ML 轉換結構描述後,您可以在建立資料來源精靈中檢閱和更正指派的 Amazon ML 資料類型,並在 Amazon ML 建立資料來源之前修改結構描述。

Amazon S3 預備位置

使用此參數指定 Amazon ML 存放 Amazon Redshift SQL 查詢結果的 Amazon S3 預備位置名稱。建立資料來源後,Amazon ML 會使用預備位置中的資料,而不是返回 Amazon Redshift。

注意

由於 Amazon ML 擔任 Amazon ML Amazon Redshift 角色定義的 IAM 角色,因此 Amazon ML 具有存取指定 Amazon S3 預備位置中任何物件的許可。因此,建議您只將不包含敏感資訊的檔案存放在 Amazon S3 預備位置。例如,如果您的根儲存貯體是 s3://mybucket/,我們建議您建立一個位置,以僅存放您希望 Amazon ML 存取的檔案,例如 s3://mybucket/AmazonMLInput/