Utilisation des données d'une base de données Amazon RDS pour créer une source de données Amazon ML - Amazon Machine Learning

Nous ne mettons plus à jour le service Amazon Machine Learning et n'acceptons plus de nouveaux utilisateurs pour ce service. Cette documentation est disponible pour les utilisateurs existants, mais nous ne la mettons plus à jour. Pour plus d'informations, veuillez consulter la rubriqueQu'est-ce qu'Amazon Machine Learning.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation des données d'une base de données Amazon RDS pour créer une source de données Amazon ML

Amazon ML vous permet de créer un objet source de données à partir de données stockées dans une base de données MySQL dans Amazon Relational Database Service (Amazon RDS). Lorsque vous effectuez cette action, Amazon ML crée un objet AWS Data Pipeline qui exécute la requête SQL que vous spécifiez et place la sortie dans un compartiment S3 de votre choix. Amazon ML utilise ces données pour créer la source de données.

Note

Amazon ML prend en charge uniquement les bases de données MySQL dans les VPC.

Pour qu'Amazon ML puisse lire vos données d'entrée, vous devez exporter ces données vers Amazon Simple Storage Service (Amazon S3). Vous pouvez configurer Amazon ML pour effectuer l'exportation à votre place en utilisant l'API. (RDS est limité à cette API et n'est pas disponible à partir de la console.)

Pour qu'Amazon ML se connecte à votre base de données MySQL dans Amazon RDS et lise les données à votre place, vous devez fournir les éléments suivants :

  • L'identifiant d'instance de base de données RDS

  • Le nom de la base de données MySQL

  • LeAWS Identity and Access Management(IAM) qui est utilisé pour créer, activer et exécuter le pipeline de données

  • Les informations d'identification de l'utilisateur de base de données :

    • Nom utilisateur

    • Mot de passe

  • Les informations de sécurité d'AWS Data Pipeline :

    • Le rôle de ressource IAM

    • Le rôle de service IAM

  • Les informations de sécurité Amazon RDS :

    • L'ID de sous-réseau

    • Les ID de groupes de sécurité

  • La requête SQL qui spécifie les données que vous souhaitez utiliser pour créer la source de données

  • L'emplacement (compartiment) de sortie S3 utilisé pour stocker les résultats de la requête

  • (Facultatif) L'emplacement du fichier de schéma de données

De plus, vous devez vous assurer que les utilisateurs ou les rôles IAM qui créent les sources de données Amazon RDS à l'aide de laCreateDataSourceFromRDSont l'opérationiam:PassRoleAutorisations. Pour plus d'informations, consultez Contrôle de l'accès aux ressources Amazon ML à l'aide d'IAM.

Identifiant d'instance de base de données RDS

L'identifiant d'instance de base de données RDS est un nom unique que vous fournissez pour identifier l'instance de base de données qu'Amazon ML doit utiliser lors de l'interaction avec Amazon RDS. Vous pouvez trouver l'identifiant d'instance de base de données RDS dans la console Amazon RDS.

Nom de la base de données MySQL

Le nom de base de données MySQL spécifie le nom de la base de données MySQL dans l'instance de base de données RDS.

Informations d'identification de l'utilisateur de base de données

Pour vous connecter à l'instance de base de données RDS, vous devez fournir le nom d'utilisateur et le mot de passe de l'utilisateur de la base de données qui dispose d'autorisations suffisantes pour exécuter la requête SQL que vous fournissez.

Informations de sécurité d'AWS Data Pipeline

Pour activer un accès AWS Data Pipeline sécurisé, vous devez fournir les noms du rôle de ressource IAM et du rôle de service IAM.

Une instance EC2 endosse le rôle de ressource pour copier les données d'Amazon RDS vers Amazon S3. La manière la plus simple de créer ce rôle de ressource consiste à utiliser le modèle DataPipelineDefaultResourceRole et à répertorier machinelearning.aws.com comme service approuvé. Pour plus d'informations sur ce modèle, consultez Configuration de rôles IAM dans le Manuel du développeur AWS Data Pipeline.

Si vous créez votre propre rôle, il doit avoir le contenu suivant :

{ "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 endosse le rôle de service pour surveiller la progression de la copie des données d'Amazon RDS vers Amazon S3. La manière la plus simple de créer ce rôle de ressource consiste à utiliser le modèle DataPipelineDefaultRole et à répertorier machinelearning.aws.com comme service approuvé. Pour plus d'informations sur ce modèle, consultez Configuration de rôles IAM dans le Manuel du développeur AWS Data Pipeline.

Informations de sécurité Amazon RDS

Pour activer un accès Amazon RDS sécurisé, vous devez fournir les paramètresVPC Subnet IDetRDS Security Group IDs. Vous devez également configurer des règles de trafic entrant appropriées pour le sous-réseau VPC sur lequel pointe le paramètre Subnet ID, et fournir l'ID du groupe de sécurité qui possède cette autorisation.

Requête SQL MySQL

Le paramètre MySQL SQL Query spécifie la requête SQL SELECT que vous voulez exécuter sur votre base de données MySQL. Les résultats de cette requête sont copiés dans l'emplacement (compartiment) de sortie S3 que vous spécifiez.

Note

La technologie d'apprentissage-machine fonctionne le mieux lorsque les enregistrements d'entrée sont présentés dans un ordre aléatoire (réorganisé aléatoirement). Vous pouvez facilement réorganiser aléatoirement les résultats de votre requête SQL MySQL à l'aide de la fonction rand(). Par exemple, supposons que la requête d'origine est :

« SELECT col1, col2, … FROM training_table »

Vous pouvez ajouter une réorganisation aléatoire en mettant à jour la requête comme ceci :

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

Emplacement de sortie S3

LeS3 Output Locationspécifie le nom de l'emplacement Amazon S3 « intermédiaire » où les résultats de la requête SQL MySQL sont générés.

Note

Vous devez vous assurer qu'Amazon ML dispose des autorisations nécessaires pour lire des données à partir de cet emplacement une fois que les données auront été exportées depuis Amazon RDS. Pour plus d'informations sur la définition de ces autorisations, consultez Octroi à Amazon ML des autorisations nécessaires pour lire vos données depuis Amazon S3.