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 データソースを作成する IAM ユーザーまたはロール (コンソールによるか、または、CreateDatasourceFromRedshift
アクションを使用するかにかかわらず) が、iam:PassRole
権限を持っていることを確認する必要があります。
- Amazon Redshift
ClusterIdentifier
-
この大文字と小文字を区別するパラメータを使用して、Amazon ML がクラスターを検索して接続できるようにします。Amazon Redshift コンソールからクラスター識別子 (名前) を取得できます。クラスターの詳細については、「Amazon Redshift クラスター」を参照してください。
- Amazon Redshift データベースの名前
-
このパラメータを使用して、Amazon Redshift クラスターのどのデータベースにデータソースとして使用するデータが含まれているかを Amazon ML に伝えます。
- Amazon Redshift データベース認証情報
-
これらのパラメータを使用して、セキュリティクエリが実行されるコンテキスト内の Amazon Redshift データベースユーザーのユーザー名とパスワードを指定します。
注記
Amazon ML では、Amazon Redshift データベースに接続するために、Amazon Redshift ユーザー名とパスワードが必要です。データを Amazon S3 にアンロードした後に、Amazon ML がパスワードを再利用する、または、パスワードを保存することはありません。
- Amazon ML Amazon Redshift ロール
-
このパラメータを使用して、Amazon Redshift クラスターのセキュリティグループと Amazon S3 のステージング場所のバケットポリシーを設定するために Amazon ML が使用する IAM ロールの名前を指定します。
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 Redshift データベースで Amazon ML が実行する 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 スキーマより少ないため、1 対 1 の変換ではありません。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 ブール値が Amazon ML バイナリ値をサポートしている必要があります。ブール値のデータ型が、サポートされていない値を持つ場合は、Amazon ML はそれをできるだけ具体的なデータ型に変換します。例えば、Amazon Redshift のブール値が0
、1
、および2
である場合、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/
)。