Uso de datos de una base de datos de Amazon RDS para crear una fuente de datos de Amazon ML - Amazon Machine Learning

Ya no actualizamos el servicio Amazon Machine Learning ni aceptamos nuevos usuarios para él. Esta documentación está disponible para los usuarios actuales, pero ya no la actualizamos. Para obtener más información, consulte Qué es Amazon Machine Learning.

Uso de datos de una base de datos de Amazon RDS para crear una fuente de datos de Amazon ML

Amazon ML le permite crear un objeto de origen de datos a partir de los datos almacenados en una base de datos Amazon Relational Database Service (Amazon RDS). Al realizar esta acción, Amazon ML crea un objeto de AWS Data Pipeline que ejecuta la consulta SQL que especifique y coloca el resultado en un bucket de S3 de su elección. Amazon ML utiliza esos datos para crear la fuente de datos.

nota

Amazon ML solo es compatible con bases de datos MySQL en VPC.

Para que Amazon ML pueda leer los datos de entrada, debe exportarlos al Amazon Simple Storage Service (Amazon S3). Puede configurar Amazon ML para que realice la exportación con la API. (RDS se limita a la API y no está disponible desde la consola).

Para que Amazon ML se conecte a la base de datos de MySQL en Amazon RDS y lea datos en su nombre, debe proporcionar lo siguiente:

  • El identificador de instancias de bases de datos de RDS

  • El nombre de la base de datos de MySQL

  • El rol de IAM (AWS Identity and Access Management) que se utiliza para crear, activar y ejecutar la canalización de datos

  • Las credenciales del usuario de la base de datos:

    • Nombre de usuario

    • Contraseña

  • La información de seguridad de AWS Data Pipeline:

    • El rol de recursos de IAM

    • El rol de servicio de IAM

  • La información de seguridad de Amazon RDS:

    • El ID de subred

    • Los ID de los grupos de seguridad

  • La consulta SQL que especifica los datos que desea utilizar para crear la fuente de datos

  • La ubicación de salida de S3 (bucket) utilizada para almacenar los resultados de la consulta

  • (Opcional) La ubicación del archivo de esquema de datos

Además, debe asegurarse de que los usuarios de IAM o los roles que crean fuentes de datos de Amazon RDS mediante la operación CreateDataSourceFromRDS tienen el permiso iam:PassRole. Para obtener más información, consulte Control de acceso a los recursos de Amazon ML con IAM.

Identificador de instancias de bases de datos de RDS

El identificador de instancias de bases de datos de RDS es un nombre único que suministra y que identifica la instancia de base de datos que Amazon ML debe utilizar a la hora de interactuar con Amazon RDS. Puede encontrar el identificador de instancias de bases de datos de RDS en la consola de Amazon RDS.

Nombre de la base de datos de MySQL

El nombre de la base de datos de MySQL especifica el nombre de la base de datos de MySQL en la instancia de bases de datos de RDS.

Credenciales del usuario de la base de datos

Para conectarse a la instancia de base de datos de RDS, debe proporcionar el nombre de usuario y la contraseña de usuario de la base de datos que tenga permisos suficientes para ejecutar la consulta SQL que proporcione.

Información de seguridad de AWS Data Pipeline

Para habilitar el acceso seguro de AWS Data Pipeline, debe proporcionar los nombres del rol de recursos de IAM y del rol de servicios de IAM.

Una instancia EC2 asume el rol de recursos para copiar datos de Amazon RDS a Amazon S3. La forma más sencilla de crear este rol de recursos es usar la plantilla DataPipelineDefaultResourceRole e incorporar machinelearning.aws.com como servicio de confianza. Para obtener información acerca de la plantilla, consulte Configuración de roles de IAM en la Guía para desarrolladores de AWS Data Pipeline.

Si crea su propia función, debe tener el siguiente contenido:

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

AWS Data Pipeline asume el rol de servicio para monitorizar el progreso de copia de datos de Amazon RDS a Amazon S3. La forma más sencilla de crear este rol de recursos es usar la plantilla DataPipelineDefaultRole e incorporar machinelearning.aws.com como servicio de confianza. Para obtener información acerca de la plantilla, consulte Configuración de roles de IAM en la Guía para desarrolladores de AWS Data Pipeline.

Información de seguridad de Amazon RDS

Para habilitar el acceso seguro de Amazon RDS, debe proporcionar el VPC Subnet ID y el RDS Security Group IDs. También tendrá que configurar las reglas de entrada adecuadas para la subred VPC a la que apunta el parámetro Subnet ID y proporcionar el ID del grupo de seguridad que tiene este permiso.

Consulta SQL de MySQL

El parámetro MySQL SQL Query especifica la consulta SQL SELECT que desea ejecutar en la base de datos MySQL. Los resultados de la consulta se copian en la ubicación de salida de S3 (bucket) que especifique.

nota

La tecnología de aprendizaje automático funciona mejor cuando los registros de entrada se presentan en orden aleatorio (desordenados). Puede mezclar fácilmente los resultados de la consulta SQL de MySQL mediante la función rand(). Por ejemplo, imaginemos que esta es la consulta original:

"SELECT col1, col2, … FROM training_table"

Puede añadir una mezcla aleatoria actualizando la consulta de esta manera:

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

Ubicación de salida de S3

El parámetro S3 Output Location especifica el nombre de la ubicación de Amazon S3 "provisional" en la que se ubican los resultados de la consulta SQL de MySQL.

nota

Debe asegurarse de que Amazon ML tiene permisos para leer datos desde esta ubicación una vez que los datos se exportan desde Amazon RDS. Para obtener información acerca de cómo ajustar estos permisos, consulte Concesión de permisos a Amazon ML para leer datos desde Amazon S3.