Parámetros necesarios para el asistente Create Datasource - 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.

Parámetros necesarios para el asistente Create Datasource

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

  • El Amazon Redshift ClusterIdentifier

  • El nombre de la base de datos de Amazon Redshift

  • Las credenciales de la base de datos de Amazon Redshift (nombre de usuario y contraseña)

  • El rol de AWS Identity and Access Management (IAM) de Amazon ML Amazon Redshift

  • La consulta SQL en Amazon Redshift

  • (Opcional) La ubicación del esquema de Amazon ML

  • La ubicación de almacenamiento provisional de Amazon S3 (donde Amazon ML almacena los datos antes de crear el origen de datos)

Además, debe asegurarse de que los usuarios o los roles de IAM que crean orígenes de datos de Amazon Redshift (ya sea a través de la consola o a través de la acción CreateDatasourceFromRedshift) tengan el permiso iam:PassRole.

Amazon Redshift ClusterIdentifier

Use este parámetro que distingue entre mayúsculas y minúsculas para habilitar que Amazon ML encuentre y se conecte al clúster. Puede obtener el identificador del clúster (nombre) desde la consola de Amazon Redshift. Para obtener más información sobre clústeres, consulte Clústeres de Amazon Redshift.

Nombre de la base de datos de Amazon Redshift

Use este parámetro para indicarle a Amazon ML qué base de datos del clúster de Amazon Redshift contiene los datos que desea utilizar como origen de datos.

Credenciales de la base de datos Amazon Redshift

Utilice estos parámetros para especificar el nombre de usuario y la contraseña del usuario de la base de datos de Amazon Redshift en el contexto del cual se ejecutará la consulta de seguridad.

nota

Amazon ML requiere un nombre de usuario y una contraseña de Amazon Redshift para conectarse a la base de datos de Amazon Redshift. Después de descargar los datos a Amazon S3, Amazon ML no suele reutilizar ni almacenar la contraseña.

Función de Amazon ML en Amazon Redshift

Use este parámetro para especificar el nombre del rol de IAM que debería utilizar Amazon ML para configurar los grupos de seguridad para el clúster de Amazon Redshift y la política de buckets para la ubicación de almacenamiento provisional de Amazon S3.

Si no dispone de ningún rol de IAM que pueda acceder a Amazon Redshift, Amazon ML puede crear un rol automáticamente. Cuando Amazon ML crea un rol, crea y asocia una política administrada por el cliente a un rol de IAM. La política que crea Amazon ML solo concede a Amazon ML permiso para acceder al clúster que especifique.

Si ya posee un rol de IAM para acceder a Amazon Redshift, puede escribir el ARN del rol o elegir el rol de la lista desplegable. Los roles de IAM con acceso a Amazon Redshift aparecen en la parte superior de la lista desplegable.

El rol de IAM 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/*" } } }] }

Para obtener más información sobre las políticas administradas por los clientes, consulte Políticas administradas por el cliente en la Guía del usuario de IAM.

Consulta SQL en Amazon Redshift

Use este parámetro para especificar la consulta SQL SELECT que ejecuta Amazon ML en la base de datos de Amazon Redshift para seleccionar los datos. Amazon ML utiliza la acción DESCARGAR de Amazon Redshift para copiar los resultados de la consulta a una ubicación de Amazon S3 de forma segura.

nota

Amazon ML funciona mejor cuando los registros de entrada se encuentran en orden aleatorio (mezclados). Es fácil mezclar los resultados de la consulta SQL de Amazon Redshift mediante el rol random() de Amazon Redshift. Por ejemplo, imaginemos que esta es la consulta original:

"SELECT col1, col2, … FROM training_table"

Puede incrustar la mezcla aleatoria mediante la actualización de la consulta de esta manera:

"SELECT col1, col2, … FROM training_table ORDER BY random()"
Ubicación de los esquemas (opcional)

Use este parámetro para especificar la ruta de Amazon S3 del esquema para los datos de Amazon Redshift que exportará Amazon ML.

Si no proporciona ningún esquema para la fuente de datos, la consola de Amazon ML creará un esquema de Amazon ML basado en el esquema de datos de la consulta SQL de Amazon Redshift automáticamente. Los esquemas de Amazon ML tienen menos tipos de datos que los esquemas de Amazon Redshift, por lo que no es una conversión uno a uno. La consola de Amazon ML convierte tipos de datos de Amazon Redshift a tipos de datos de Amazon ML mediante el siguiente esquema de conversión.

Tipos de datos de Amazon Redshift Alias de Amazon Redshift Tipo de datos de Amazon ML
SMALLINT INT2 NUMERIC
INTEGER INT, INT4 NUMERIC
BIGINT INT8 NUMERIC
DECIMAL NUMERIC NUMERIC
REAL FLOAT4 NUMERIC
DOUBLE PRECISION FLOAT8, FLOAT NUMERIC
BOOLEANO BOOL BINARY
CHAR CHARACTER, NCHAR, BPCHAR CATEGÓRICO
VARCHAR CHARACTER VARYING, NVARCHAR, TEXT TEXT
DATE TEXT
TIMESTAMP TIMESTAMP WITHOUT TIME ZONE TEXT

Para convertirlos a tipos de datos Binary de Amazon ML, los valores binarios de Amazon Redshift deben admitir los valores de los booleanos. Si el tipo de datos booleanos no admite algunos valores, Amazon ML los convierte al tipo de datos más específico posible. Por ejemplo, si un booleano de Amazon Redshift tiene los valores 0, 1 y 2, Amazon ML convierte el booleano a un tipo de datos Numeric. Para obtener más información sobre los valores binarios admitidos, consulte Funcionamiento del campo AttributeType.

Si Amazon ML no puede averiguar un tipo de datos, se establece el tipo predeterminado Text.

Una vez que Amazon ML convierte el esquema, puede revisar y corregir los tipos de datos de Amazon ML asignados al asistente de creación de orígenes de datos y revisar el esquema antes de que Amazon ML cree el origen de datos.

Ubicación de almacenamiento provisional de Amazon S3

Use este parámetro para especificar el nombre de la ubicación de almacenamiento provisional de Amazon S3 donde Amazon ML almacena los resultados de la consulta SQL de Amazon Redshift. Después de crear el origen de datos, Amazon ML utiliza los datos de la ubicación de almacenamiento provisional en lugar de volver a Amazon Redshift.

nota

Como Amazon ML asume el rol de IAM definido por la función Amazon Redshift de Amazon ML, Amazon ML tiene permisos para acceder a cualquier objeto en la ubicación provisional de Amazon S3 especificada. Por ello, le recomendamos que solo almacene archivos que no contengan información confidencial en la ubicación de almacenamiento provisional de Amazon S3. Por ejemplo, si el bucket raíz es s3://mybucket/, le sugerimos que cree una ubicación para almacenar solo los archivos a los que desea que tenga acceso Amazon ML, como por ejemplo s3://mybucket/AmazonMLInput/.