Uso dos dados de um banco de dados Amazon RDS para criar uma fonte de dados do Amazon ML - 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.

Uso dos dados de um banco de dados Amazon RDS para criar uma fonte de dados do Amazon ML

O Amazon ML permite criar um objeto de fonte de dados a partir dos dados armazenados em um banco de dados MySQL no Amazon Relational Database Service (Amazon RDS). Quando você executar essa ação, o Amazon ML criará um objeto AWS Data Pipeline que executará a consulta SQL especificada e colocará a saída em um bucket do S3 de sua preferência. O Amazon ML usa esses dados para criar a fonte de dados.

nota

O Amazon ML só aceita bancos de dados MySQL em VPCs.

Para que o Amazon ML possa ler os dados de entrada, você deve exportar esses dados para o Amazon Simple Storage Service (Amazon S3). Você pode configurar o Amazon ML para realizar a exportação por meio da API. (O RDS limita-se à API, e não está disponível no console.)

Para que o Amazon ML se conecte ao banco de dados MySQL no Amazon RDS e leia dados em seu nome, forneça os seguintes dados:

  • O DB instance identifier do RDS

  • O nome do banco de dados MySQL

  • A função do AWS Identity and Access Management (IAM) usada para criar, ativar e executar o pipeline de dados

  • As credenciais de usuário do banco de dados:

    • Nome de usuário

    • Senha

  • As informações de segurança do AWS Data Pipeline:

    • A função de recursos do IAM

    • A função de serviço do IAM

  • As informações de segurança do Amazon RDS:

    • O ID da sub-rede

    • Os IDs do security group

  • A consulta SQL que especifica os dados a serem usados para criar a fonte de dados

  • O local de saída do S3 (bucket) usado para armazenar os resultados da consulta

  • (Opcional) O local do arquivo de esquema 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 RDS por meio da operação CreateDataSourceFromRDS tenham a permissão iam:PassRole. Para obter mais informações, consulte Controlar o acesso aos recursos do Amazon ML com o IAM.

Database instance identifier do RDS

O identificador de instância de banco de dados do RDS é um nome exclusivo fornecido por você que identifica a instância de banco de dados que o Amazon ML deve usar ao interagir com o Amazon RDS. Você pode encontrar o identificador de instância de banco de dados do RDS no console do Amazon RDS.

Nome do banco de dados MySQL

O nome do banco de dados MySQL especifica o nome do banco de dados MySQL na instância de banco de dados do RDS.

Credenciais de usuário do banco de dados

Para se conectar à instância de banco de dados do RDS, você precisa fornecer o nome de usuário e a senha do usuário do banco de dados que tem permissões suficientes para executar a consulta SQL fornecida por você.

Informações de segurança do AWS Data Pipeline

Para habilitar o acesso seguro ao AWS Data Pipeline, forneça os nomes da função do recurso do IAM e da função do serviço do IAM.

Uma instância do EC2 assume a função de recurso para copiar dados do Amazon RDS para o Amazon S3. A maneira mais fácil de criar essa função de recurso é usando o modelo DataPipelineDefaultResourceRole e listando machinelearning.aws.com como um serviço confiável. Para obter mais informações sobre o modelo, consulte Configurar funções do IAM no Guia do desenvolvedor do AWS Data Pipeline.

Se você criar sua própria função, ela deverá ter o seguinte conteúdo:

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

O AWS Data Pipeline assume a função de serviço para monitorar o progresso da cópia dos dados do Amazon RDS para o Amazon S3. A maneira mais fácil de criar essa função de recurso é usando o modelo DataPipelineDefaultRole e listando machinelearning.aws.com como um serviço confiável. Para obter mais informações sobre o modelo, consulte Configurar funções do IAM no Guia do desenvolvedor do AWS Data Pipeline.

Informações de segurança do Amazon RDS

Para habilitar o acesso seguro ao Amazon RDS, você precisa fornecer o VPC Subnet ID e RDS Security Group IDs. Também é preciso configurar regras de ingresso apropriadas para a sub-rede VPC apontada pelo parâmetro Subnet ID e fornecer o ID do security group que tem essa permissão.

Consulta SQL do MySQL

O parâmetro MySQL SQL Query especifica a consulta SQL SELECT que você deseja executar no banco de dados MySQL. Os resultados da consulta são copiados para o local de saída do S3 (bucket) que você especificar.

nota

A tecnologia de Machine Learning funciona melhor quando os registros de entrada são apresentados em ordem aleatória (embaralhada). Você pode embaralhar facilmente os resultados da consulta SQL do MySQL usando a função rand(). Por exemplo, suponhamos que esta seja a consulta original:

"SELECT col1, col2, … FROM training_table"

Você pode adicionar o embaralhamento aleatório, atualizando a consulta da seguinte maneira:

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

Local de saída do S3

O parâmetro S3 Output Location especifica o nome do local de "preparação" do Amazon S3 em que os resultados da consulta SQL do MySQL são gerados.

nota

Você precisa garantir que o Amazon ML tenha permissões para ler dados nesse local assim que os dados forem exportados do Amazon RDS. Para obter informações sobre como definir essas permissões, consulte "Conceder ao Amazon ML permissões para ler seus dados do Amazon S3".