Parâmetros obrigatórios do assistente Create Datasource - Amazon Machine Learning

Não estamos mais atualizando o serviço Amazon Machine Learning nem aceitando novos usuários para ele. Essa documentação está disponível para usuários existentes, mas não estamos mais atualizando-a. Para obter mais informações, consulte O que é o Amazon Machine Learning.

Parâmetros obrigatórios do assistente Create Datasource

Para permitir que o Amazon ML se conecte ao banco de dados do Amazon Redshift e leia dados em seu nome, você precisa fornecer o seguinte:

  • O ClusterIdentifier do Amazon Redshift

  • O nome do banco de dados do Amazon Redshift

  • As credenciais do banco de dados do Amazon Redshift (nome de usuário e senha)

  • O perfil do AWS Identity and Access Management (IAM) do Amazon ML Amazon Redshift

  • A consulta SQL do Amazon Redshift

  • (Opcional) O local do esquema do Amazon ML

  • O local de preparação do Amazon S3 (onde o Amazon ML coloca os dados antes de criar a fonte de dados)

Além disso, é necessário garantir que os usuários ou as funções do IAM que criam fontes de dados do Amazon Redshift (por meio do console ou usando a ação CreateDatasourceFromRedshift) tenham a permissão iam:PassRole.

ClusterIdentifier do Amazon Redshift

Use esse parâmetro que diferencia maiúsculas de minúsculas para habilitar o Amazon ML a encontrar e se conectar ao cluster. Você pode obter o identificador do cluster (nome) a partir do console do Amazon Redshift. Para obter mais informações sobre clusters, consulte Clusters do Amazon Redshift.

Nome do banco de dados do Amazon Redshift

Use este parâmetro para informar ao Amazon ML qual banco de dados no cluster do Amazon Redshift contém os dados que você deseja usar como a fonte de dados.

Credenciais do banco de dados do Amazon Redshift

Use estes parâmetros para especificar o nome de usuário e a senha do usuário do banco de dados do Amazon Redshift no contexto em que a consulta de segurança será executada.

nota

O Amazon ML exige um nome de usuário e uma senha do Amazon Redshift para se conectar ao banco de dados do Amazon Redshift. Depois de descarregar os dados no Amazon S3, o Amazon ML nunca reutiliza a senha nem a armazena.

Função do Amazon ML no Amazon Redshift

Use este parâmetro para especificar o nome do perfil do IAM que o Amazon ML deve usar para configurar os grupos de segurança para o cluster do Amazon Redshift e a política de bucket para o local de preparação do Amazon S3.

Se você não tiver um perfil do IAM que possa acessar o Amazon Redshift, o Amazon ML poderá criar um para você. Quando o Amazon ML cria um perfil, ele cria e anexa uma política gerenciada pelo cliente a um perfil do IAM. A política que o Amazon ML cria concede permissão do Amazon ML para acessar apenas o cluster especificado.

Se você já tem um perfil do IAM para acessar o Amazon Redshift, pode digitar o ARN do perfil ou escolher a função na lista suspensa. Os perfis do IAM com o acesso do Amazon Redshift são listados na parte superior do menu suspenso.

O perfil do IAM deve ter o conteúdo do a seguir:

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

Para obter mais informações sobre políticas gerenciadas pelo cliente, consulte Políticas gerenciadas pelo cliente no Guia do usuário do IAM.

Consulta SQL do Amazon Redshift

Use este parâmetro para especificar a consulta SQL SELECT que o Amazon ML executa no banco de dados do Amazon Redshift para selecionar os dados. O Amazon ML usa a ação UNLOAD do Amazon Redshift para copiar com segurança os resultados da consulta para um local do Amazon S3.

nota

O Amazon ML funciona melhor quando os registros de entrada estão em ordem aleatória (embaralhada). Você pode embaralhar facilmente os resultados da consulta SQL do Amazon Redshift usando a função random() do Amazon Redshift. Por exemplo, suponhamos que esta seja a consulta original:

"SELECT col1, col2, … FROM training_table"

Você pode incorporar o embaralhamento aleatório, basta atualizar a consulta da seguinte maneira:

"SELECT col1, col2, … FROM training_table ORDER BY random()"
Schema Location (opcional)

Use este parâmetro para especificar o caminho do Amazon S3 para o esquema dos dados do Amazon Redshift que o Amazon ML exportará.

Se você não fornecer um esquema da fonte de dados, o console do Amazon ML criará automaticamente um esquema do Amazon ML com base no esquema de dados da consulta SQL do Amazon Redshift. Os esquemas do Amazon ML têm menos tipos de dados que os do Amazon Redshift, de forma que não se trata de uma conversão de um para um. O console do Amazon ML converte tipos de dados do Amazon Redshift em tipos de dados do Amazon ML usando o esquema de conversão a seguir.

Tipo de dados do Amazon Redshift Aliases do Amazon Redshift Tipo de dados do 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

Para serem convertidos em tipos de dados Binary do Amazon ML, os valores dos booleanos do Amazon Redshift nos dados precisam ser compatíveis com os valores binários do Amazon ML. Se o tipo de dados booleanos tiver valores não compatíveis, o Amazon ML os converterá no tipo de dados mais específico possível. Por exemplo, se um valor booleano do Amazon Redshift tiver os valores 0, 1 e 2, o Amazon ML converterá o valor booleano em um tipo de dados Numeric. Para obter mais informações sobre valores binários compatíveis, consulte Usar o campo AttributeType.

Se o Amazon ML não conseguir descobrir um tipo de dados, ele usará Text como padrão.

Após o Amazon ML converter o esquema, é possível revisar e corrigir os tipos de dados do Amazon ML atribuídos no assistente Criar fonte de dados e revisar o esquema antes de o Amazon ML criar a fonte de dados.

Local de preparação do Amazon S3

Use este parâmetro para especificar o nome do local de preparação do Amazon S3 no qual o Amazon ML armazena os resultados da consulta SQL do Amazon Redshift. Depois de criar a fonte de dados, o Amazon ML usa os dados no local de preparação em vez de retornar para o Amazon Redshift.

nota

Como o Amazon ML assume o perfil do IAM definido pela função do Amazon Redshift no Amazon ML, o Amazon ML tem permissões para acessar qualquer objeto no local de preparação especificado do Amazon S3. Por isso, recomendamos que você armazene no local de preparação do Amazon S3 somente os arquivos que não contenham informações confidenciais. Por exemplo, se o bucket raiz for s3://mybucket/, sugerimos que você crie um local para armazenar somente os arquivos que você quer que o Amazon ML acesse, como s3://mybucket/AmazonMLInput/.