데이터 소스 생성 마법사에 대한 필수 파라미터 - 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 데이터 소스를 생성하는 IAM 사용자 또는 역할에 iam:PassRole 권한이 있음을 확인해야 합니다(콘솔을 통해 또는 CreateDatasourceFromRedshift 작업을 사용하여).

Amazon Redshift ClusterIdentifier

Amazon ML이 클러스터를 찾아서 연결할 수 있도록 하려면 이 파라미터(대소문자 구분)를 사용합니다. Amazon Redshift 콘솔에서 클러스터 식별자(이름)를 얻을 수 있습니다. 클러스터에 대한 자세한 내용은 Amazon Redshift 클러스터 섹션을 참조하세요.

Amazon Redshift 데이터베이스 이름

데이터 소스로 사용할 데이터를 포함하고 있는 Amazon Redshift 클러스터의 데이터베이스를 Amazon ML에 알리려면 이 파라미터를 사용합니다.

Amazon Redshift 데이터베이스 보안 인증 정보

보안 쿼리가 실행될 컨텍스트에서 Amazon Redshift 데이터베이스 사용자의 사용자 이름과 암호를 지정하려면 이 파라미터를 사용합니다.

참고

Amazon Redshift 데이터베이스에 연결하려면 Amazon ML에 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 ML이 데이터를 선택하기 위해 Amazon Redshift 데이터베이스에서 실행하는 SQL SELECT 쿼리를 지정하려면 이 파라미터를 사용합니다. Amazon ML은 Amazon Redshift 언로드 작업을 사용하여 쿼리 결과를 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 스키마보다 데이터 유형 수가 적기 때문에 일대일 변환이 아닙니다. 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/인 경우 s3://mybucket/AmazonMLInput/처럼 Amazon ML이 액세스할 수 있게 하려는 파일만 저장할 위치를 생성하는 것이 좋습니다.