Création d'un lac de données à partir d'une JDBC source dans Lake Formation - AWS Lake Formation

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.

Création d'un lac de données à partir d'une JDBC source dans Lake Formation

Ce didacticiel vous explique les étapes à suivre sur la AWS Lake Formation console pour créer et charger votre premier lac de données à partir d'une JDBC source à l'aide de Lake Formation.

Public visé

Le tableau suivant répertorie les rôles utilisés dans ce AWS Lake Formation JDBCdidacticiel.

Rôle Description
IAMadministrateur Un utilisateur capable de créer AWS Identity and Access Management (IAM) des utilisateurs, des rôles et des compartiments Amazon Simple Storage Service (Amazon S3). Possède la politique AdministratorAccess AWS gérée.
Administrateur du lac de données Un utilisateur qui peut accéder au catalogue de données, créer des bases de données et accorder des autorisations Lake Formation à d'autres utilisateurs. Dispose de moins d'IAMautorisations que l'IAMadministrateur, mais suffisamment pour administrer le lac de données.
Analyste des données Un utilisateur qui peut exécuter des requêtes sur le lac de données. Dispose uniquement de suffisamment d'autorisations pour exécuter des requêtes.
Rôle du flux de travail Rôle doté des IAM politiques requises pour exécuter un flux de travail.

Pour plus d'informations sur les conditions requises pour suivre le didacticiel, consultezJDBCprérequis du didacticiel.

JDBCprérequis du didacticiel

Avant de commencer le AWS Lake Formation JDBCdidacticiel, assurez-vous d'avoir effectué les opérations suivantes :

  • Effectuez les tâches définies dans Débuter avec Lake Formation.

  • Choisissez un magasin de données JDBC accessible que vous souhaitez utiliser pour le didacticiel.

  • Rassemblez les informations nécessaires à la création d'un AWS Glue type de connexionJDBC. Cet objet de catalogue de données inclut les informations d'accès URL au magasin de données, les informations de connexion et, si le magasin de données a été créé dans un Amazon Virtual Private Cloud (AmazonVPC), des informations de configuration supplémentaires VPC spécifiques. Pour plus d'informations, consultez la section Définition des connexions dans AWS Glue Catalogue de données dans le guide du AWS Glue développeur.

Le didacticiel part du principe que vous connaissez AWS Identity and Access Management (IAM). Pour plus d'informations à ce sujetIAM, consultez le guide de IAM l'utilisateur.

Pour commencer, passez àÉtape 1 : créer un utilisateur d'analyste de données.

Étape 1 : créer un utilisateur d'analyste de données

Au cours de cette étape, vous créez un utilisateur AWS Identity and Access Management (IAM) qui sera l'analyste de données de votre lac de données dans AWS Lake Formation.

Cet utilisateur dispose du minimum d'autorisations pour interroger le lac de données.

  1. Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam. Connectez-vous en tant qu'utilisateur administrateur que vous avez créé Création d'un utilisateur doté d'un accès administratif ou en tant qu'utilisateur avec la politique AdministratorAccess AWS gérée.

  2. Créez un utilisateur nommé datalake_user avec les paramètres suivants :

    • Activez AWS Management Console l'accès.

    • Définissez un mot de passe et n'exigez pas de réinitialisation du mot de passe.

    • Joignez la politique AmazonAthenaFullAccess AWS gérée.

    • Joignez la politique intégrée suivante. Nommez la stratégie DatalakeUserBasic.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "glue:GetTable", "glue:GetTables", "glue:SearchTables", "glue:GetDatabase", "glue:GetDatabases", "glue:GetPartitions", "lakeformation:GetResourceLFTags", "lakeformation:ListLFTags", "lakeformation:GetLFTag", "lakeformation:SearchTablesByLFTags", "lakeformation:SearchDatabasesByLFTags" ], "Resource": "*" } ] }

Étape 2 : créer une connexion dans AWS Glue

Note

Ignorez cette étape si vous possédez déjà un AWS Glue connexion à votre source JDBC de données.

AWS Lake Formation accède aux sources de JDBC données par le biais d'un AWS Glue connexion. Une connexion est un objet du catalogue de données qui contient toutes les informations requises pour se connecter à la source de données. Vous pouvez créer une connexion à l'aide du AWS Glue console.

Pour créer une connexion
  1. Ouvrez le fichier AWS Glue sur la https://console.aws.amazon.com/glue/ console et connectez-vous en tant qu'utilisateur administrateur dans lequel vous l'avez crééeCréation d'un utilisateur doté d'un accès administratif.

  2. Dans le volet de navigation, sous Data catalog (Catalogue de données), choisissez Connections (Connexions).

  3. Sur la page Connectors (Connecteurs), sélectionnez Create custom connector (Créer un connecteur personnalisé).

  4. Sur la page des propriétés du connecteur, entrez le datalake-tutorial nom de la connexion, puis choisissez JDBCle type de connexion. Ensuite, sélectionnez Suivant.

  5. Continuez à utiliser l'assistant de connexion et enregistrez la connexion.

    Pour plus d'informations sur la création d'une connexion, consultez les propriétés de AWS Glue JDBC connexion dans le Guide du AWS Glue développeur.

Étape 3 : créer un compartiment Amazon S3 pour le lac de données

Au cours de cette étape, vous créez le bucket Amazon Simple Storage Service (Amazon S3) qui doit être l'emplacement racine de votre lac de données.

  1. Ouvrez la console Amazon S3 à https://console.aws.amazon.com/s3/et connectez-vous en tant qu'utilisateur administrateur dans lequel vous l'avez crééeCréation d'un utilisateur doté d'un accès administratif.

  2. Choisissez Create bucket, puis passez par l'assistant pour créer un bucket nommé<yourName>-datalake-tutorial, où <yourName> est votre prénom et votre nom de famille. olpPar exemple : jdoe-datalake-tutorial.

    Pour obtenir des instructions détaillées sur la création d'un compartiment Amazon S3, consultez Comment créer un compartiment S3 ? dans le guide de l'utilisateur d'Amazon Simple Storage Service.

Étape 4 : enregistrer un chemin Amazon S3

Au cours de cette étape, vous devez enregistrer un chemin Amazon Simple Storage Service (Amazon S3) comme emplacement racine de votre lac de données.

  1. Ouvrez la console Lake Formation à l'adresse https://console.aws.amazon.com/lakeformation/. Connectez-vous en tant qu'administrateur du lac de données.

  2. Dans le volet de navigation, sous Administration, sélectionnez Data lake locations.

  3. Choisissez Enregistrer l'emplacement, puis choisissez Parcourir.

  4. Sélectionnez le <yourName>-datalake-tutorial compartiment que vous avez créé précédemment, acceptez le IAM rôle par défautAWSServiceRoleForLakeFormationDataAccess, puis choisissez Enregistrer l'emplacement.

    Pour plus d'informations sur l'enregistrement des points de vente, consultezAjouter un emplacement Amazon S3 à votre lac de données.

Étape 5 : accorder des autorisations de localisation des données

Les principaux doivent disposer d'autorisations de localisation des données sur l'emplacement d'un lac de données pour créer des tables de catalogue de données ou des bases de données pointant vers cet emplacement. Vous devez accorder des autorisations de localisation des données au IAM rôle pour les flux de travail afin que le flux de travail puisse écrire sur la destination d'ingestion des données.

  1. Sur la console Lake Formation, dans le volet de navigation, sous Autorisations, sélectionnez Data locations.

  2. Choisissez Grant, puis dans la boîte de dialogue Accorder des autorisations, procédez comme suit :

    1. Pour IAMl'utilisateur et les rôles, sélectionnezLakeFormationWorkflowRole.

    2. Pour les emplacements de stockage, choisissez votre <yourName>-datalake-tutorial compartiment.

  3. Choisissez Grant (Accorder).

Pour plus d'informations sur les autorisations de localisation des données, consultezUnderlying data access control.

Étape 6 : Création d'une base de données dans le catalogue de données

Les tables de métadonnées du Lake Formation Data Catalog sont stockées dans une base de données.

  1. Sur la console Lake Formation, dans le volet de navigation, sous Catalogue de données, sélectionnez Databases.

  2. Choisissez Créer une base de données, puis entrez le nom sous Détails de la base de donnéeslakeformation_tutorial.

  3. Laissez les autres champs vides, puis choisissez Créer une base de données.

Étape 7 : Accorder les autorisations relatives aux données

Vous devez accorder des autorisations pour créer des tables de métadonnées dans le catalogue de données. Étant donné que le flux de travail s'exécute avec le rôleLakeFormationWorkflowRole, vous devez accorder ces autorisations au rôle.

  1. Sur la console Lake Formation, dans le volet de navigation, sous Autorisations, sélectionnez Autorisations du lac de données.

  2. Choisissez Grant, puis dans la boîte de dialogue Accorder les autorisations relatives aux données, procédez comme suit :

    1. Sous Principaux, pour IAMl'utilisateur et les rôles, sélectionnezLakeFormationWorkflowRole.

    2. Sous Balises LF ou ressources de catalogue, sélectionnez Ressources de catalogue de données nommées.

    3. Pour Bases de données, choisissez la base de données que vous avez créée précédemment,lakeformation_tutorial.

    4. Sous Autorisations de base de données, sélectionnez Créer une table, Modifier et Supprimer, puis désélectionnez Super si cette option est sélectionnée.

  3. Choisissez Grant (Accorder).

Pour plus d'informations sur l'octroi des autorisations de Lake Formation, consultezVue d'ensemble des autorisations relatives à Lake Formation .

Étape 8 : Utiliser un plan pour créer un flux de travail

Le AWS Lake Formation flux de travail génère le AWS Glue des tâches, des robots d'exploration et des déclencheurs qui découvrent et ingèrent des données dans votre lac de données. Vous créez un flux de travail basé sur l'un des plans prédéfinis de Lake Formation.

  1. Sur la console Lake Formation, dans le volet de navigation, choisissez Blueprints, puis Use blueprint.

  2. Sur la page Utiliser un plan, sous Type de plan, choisissez Instantané de base de données.

  3. Sous Importer la source, pour Connexion à la base de données, choisissez la connexion que vous venez de créer ou choisissez une connexion existante pour votre source de données. datalake-tutorial

  4. Dans le champ Chemin des données source, entrez le chemin à partir duquel les données doivent être ingérées dans le formulaire<database>/<schema>/<table>.

    Vous pouvez remplacer le caractère générique pour le pourcentage (%) par le schéma ou le tableau. Pour les bases de données qui prennent en charge les schémas, entrez <database>/<schema>/% pour correspondre à toutes les tables de <schema> dans <database>. Oracle Database et My SQL ne supportent pas le schéma dans le chemin ; entrez plutôt <database>/%. Pour Oracle Database, <database> est l'identifiant du système (SID).

    Par exemple, si une base de données Oracle possède orcl la propriétéSID, entrez orcl/% toutes les tables auxquelles l'utilisateur indiqué dans la JDCB connexion a accès.

    Important

    Ce champ est sensible à la casse.

  5. Sous Cible d'importation, spécifiez les paramètres suivants :

    Base de données cible lakeformation_tutorial
    Emplacement de stockage cible s3://<yourName>-datalake-tutorial
    Format de données (Choisissez Parquet ouCSV)
  6. Pour la fréquence d'importation, choisissez Exécuter à la demande.

  7. Sous Options d'importation, spécifiez les paramètres suivants :

    Nom du flux de travail lakeformationjdbctest
    IAMrôle LakeFormationWorkflowRole
    Préfixe de table jdbctest
    Note

    Doit être en minuscules.

  8. Choisissez Créer et attendez que la console indique que le flux de travail a été créé avec succès.

    Astuce

    Avez-vous reçu le message d'erreur suivant ?

    User: arn:aws:iam::<account-id>:user/<datalake_administrator_user> is not authorized to perform: iam:PassRole on resource:arn:aws:iam::<account-id>:role/LakeFormationWorkflowRole...

    Si c'est le cas, vérifiez que vous avez remplacé <account-id> dans la politique en ligne pour l'utilisateur administrateur du lac de données disposant d'un numéro de AWS compte valide.

Étape 9 : Exécuter le flux de travail

Comme vous avez indiqué que le flux de travail est run-on-demand, vous devez le démarrer manuellement dans AWS Lake Formation.

  1. Sur la console Lake Formation, sur la page Blueprints, sélectionnez le flux de travaillakeformationjdbctest.

  2. Choisissez Actions, puis sélectionnez Démarrer.

  3. Au fur et à mesure que le flux de travail s'exécute, consultez sa progression dans la colonne État de la dernière exécution. Cliquez sur le bouton d'actualisation de temps en temps.

    Le statut passe de RUNNING, à Découvrir, à Importer, à COMPLETED.

    Lorsque le flux de travail est terminé :

    • Le catalogue de données contient de nouvelles tables de métadonnées.

    • Vos données sont ingérées dans le lac de données.

    Si le flux de travail échoue, procédez comme suit :

    1. Sélectionnez un flux de travail. Choisissez Actions, puis Afficher le graphique.

      Le flux de travail s'ouvre dans le AWS Glue console.

    2. Sélectionnez le flux de travail et cliquez sur l'onglet Historique.

    3. Sélectionnez l'exécution la plus récente et choisissez Afficher les détails de la course.

    4. Sélectionnez une tâche ou un robot d'exploration ayant échoué dans le graphique dynamique (d'exécution) et consultez le message d'erreur. Les nœuds défaillants sont rouges ou jaunes.

Étape 10 : Subvention SELECT sur les tables

Vous devez accorder l'SELECTautorisation sur les nouvelles tables du catalogue de données AWS Lake Formation afin que l'analyste de données puisse interroger les données vers lesquelles pointent les tables.

Note

Un flux de travail accorde automatiquement l'SELECTautorisation sur les tables qu'il crée à l'utilisateur qui l'a exécuté. Étant donné que l'administrateur du lac de données a exécuté ce flux de travail, vous devez accorder une autorisation SELECT à l'analyste de données.

  1. Sur la console Lake Formation, dans le volet de navigation, sous Autorisations, sélectionnez Autorisations du lac de données.

  2. Choisissez Grant, puis dans la boîte de dialogue Accorder les autorisations relatives aux données, procédez comme suit :

    1. Sous Principaux, pour IAMl'utilisateur et les rôles, sélectionnezdatalake_user.

    2. Sous Balises LF ou ressources de catalogue, sélectionnez Ressources de catalogue de données nommées.

    3. Pour Bases de données, sélectionnezlakeformation_tutorial.

      La liste des tables s'affiche.

    4. Pour Tables, choisissez une ou plusieurs tables dans votre source de données.

    5. Sous Autorisations relatives aux tables et aux colonnes, choisissez Sélectionner.

  3. Choisissez Grant (Accorder).

L'étape suivante est exécutée en tant qu'analyste de données.

Étape 11 : Interrogez le lac de données à l'aide de Amazon Athena

Utilisez la Amazon Athena console pour interroger les données de votre lac de données.

  1. Ouvrez la console Athena sur https://console.aws.amazon.com/athena/, et connectez-vous en tant qu'analyste de données, utilisateur. datalake_user

  2. Si nécessaire, choisissez Get Started pour passer à l'éditeur de requêtes Athena.

  3. Pour Data source (Source de données), choisissez AwsDataCatalog.

  4. Pour Database (Base de données), sélectionnez lakeformation_tutorial.

    La liste des tables s'affiche.

  5. Dans le menu contextuel situé à côté de l'un des tableaux, choisissez Aperçu du tableau.

    La requête s'exécute et affiche 10 lignes de données.

Étape 12 : interroger les données du lac de données à l'aide d'Amazon Redshift Spectrum

Vous pouvez configurer Amazon Redshift Spectrum pour interroger les données que vous avez importées dans votre lac de données Amazon Simple Storage Service (Amazon S3). Créez d'abord un rôle AWS Identity and Access Management (IAM) qui est utilisé pour lancer le cluster Amazon Redshift et pour interroger les données Amazon S3. Accordez ensuite à ce rôle les Select autorisations sur les tables que vous souhaitez interroger. Accordez ensuite à l'utilisateur l'autorisation d'utiliser l'éditeur de requêtes Amazon Redshift. Enfin, créez un cluster Amazon Redshift et exécutez des requêtes.

Vous créez le cluster en tant qu'administrateur et vous l'interrogez en tant qu'analyste de données.

Pour plus d'informations sur Amazon Redshift Spectrum, consultez la section Utilisation d'Amazon Redshift Spectrum pour interroger des données externes dans le manuel Amazon Redshift Database Developer Guide.

Pour configurer les autorisations permettant d'exécuter des requêtes Amazon Redshift
  1. Ouvrez la IAM console à l'adresse https://console.aws.amazon.com/iam/. Connectez-vous en tant qu'utilisateur administrateur que vous avez créé Création d'un utilisateur doté d'un accès administratif (nom d'utilisateurAdministrator) ou en tant qu'utilisateur doté de la politique AdministratorAccess AWS gérée.

  2. Dans le panneau de navigation, choisissez Politiques.

    Si vous sélectionnez Politiques pour la première fois, la page Bienvenue dans les politiques gérées s’affiche. Sélectionnez Get started (Mise en route).

  3. Choisissez Create Policy (Créer une politique).

  4. Choisissez l'JSONonglet.

  5. Collez le document JSON de politique suivant.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "glue:GetTable", "glue:GetTables", "glue:SearchTables", "glue:GetDatabase", "glue:GetDatabases", "glue:GetPartitions", "lakeformation:GetResourceLFTags", "lakeformation:ListLFTags", "lakeformation:GetLFTag", "lakeformation:SearchTablesByLFTags", "lakeformation:SearchDatabasesByLFTags" ], "Resource": "*" } ] }
  6. Lorsque vous avez terminé, choisissez Review (Vérifier) pour vérifier la politique. Le programme de validation des politiques signale les éventuelles erreurs de syntaxe.

  7. Sur la page Réviser la politique, entrez le nom RedshiftLakeFormationPolicy de la politique que vous créez. (Facultatif) Entrez une description. Vérifiez le récapitulatif de politique pour voir les autorisations accordées par votre politique. Sélectionnez ensuite Créer une politique pour enregistrer votre travail.

  8. Dans le volet de navigation de la IAM console, sélectionnez Rôles, puis sélectionnez Créer un rôle.

  9. Pour Sélectionner une entité de confiance, choisissez Service AWS .

  10. Choisissez le service Amazon Redshift pour assumer ce rôle.

  11. Choisissez le cas d'utilisation Redshift Customizable (Redshift personnalisable) pour votre service. Choisissez ensuite Suivant : Autorisations.

  12. Recherchez la politique d'autorisation que vous avez créée et cochez la case à côté du nom de la politique dans la liste. RedshiftLakeFormationPolicy

  13. Choisissez Suivant : Balises.

  14. Choisissez Suivant : Vérification.

  15. Pour Role name (Nom du rôle), entrez le nom RedshiftLakeFormationRole.

  16. (Facultatif) Dans le champ Description du rôle, saisissez la description du nouveau rôle.

  17. Passez en revue les informations du rôle, puis choisissez Create role (Créer un rôle).

Pour accorder Select des autorisations sur la table à interroger dans la base de données Lake Formation
  1. Ouvrez la console Lake Formation à l'adresse https://console.aws.amazon.com/lakeformation/. Connectez-vous en tant qu'administrateur du lac de données.

  2. Dans le volet de navigation, sous Autorisations, sélectionnez Autorisations du lac de données, puis choisissez Grant.

  3. Saisissez les informations suivantes :

    • Pour IAMles utilisateurs et les rôles, choisissez le IAM rôle que vous avez créé,RedshiftLakeFormationRole. Lorsque vous exécutez l'éditeur de requêtes Amazon Redshift, celui-ci utilise ce IAM rôle pour autoriser l'accès aux données.

    • Pour Database (Base de données), sélectionnez lakeformation_tutorial.

      La liste des tables s'affiche.

    • Pour Table, choisissez une table dans la source de données à interroger.

    • Choisissez l'autorisation Sélectionner une table.

  4. Choisissez Grant (Accorder).

Pour configurer Amazon Redshift Spectrum et exécuter des requêtes
  1. Ouvrez la console Amazon Redshift à l'adresse. https://console.aws.amazon.com/redshift Connectez-vous en tant qu'utilisateurAdministrator.

  2. Choisissez Créer un cluster.

  3. Sur la page Créer un cluster, entrez redshift-lakeformation-demo l'identifiant du cluster.

  4. Pour le type de nœud, sélectionnez dc2.large.

  5. Faites défiler la page vers le bas et sous Configurations de base de données, entrez ou acceptez les paramètres suivants :

    • Nom d'utilisateur de l'administrateur : awsuser

    • Mot de passe de l'utilisateur administrateur : (Choose a password)

  6. Développez les autorisations du cluster, puis sélectionnez IAMRôles disponibles RedshiftLakeFormationRole. Choisissez ensuite Ajouter IAM un rôle.

  7. Si vous devez utiliser un port différent de la valeur par défaut de 5439, à côté de Configurations supplémentaires, désactivez l'option Utiliser les valeurs par défaut. Développez la section consacrée aux configurations de base de données et entrez un nouveau numéro de port de base de données.

  8. Choisissez Créer un cluster.

    La page Clusters se charge.

  9. Patientez jusqu'à ce que l'état du cluster devienne disponible. Choisissez régulièrement l'icône d'actualisation.

  10. Accordez à l'analyste de données l'autorisation d'exécuter des requêtes sur le cluster. Pour ce faire, exécutez les étapes suivantes.

    1. Ouvrez la IAM console sur https://console.aws.amazon.com/iam/et connectez-vous en tant qu'Administratorutilisateur.

    2. Dans le volet de navigation, choisissez Utilisateurs et associez les politiques gérées suivantes à l'utilisateurdatalake_user.

      • AmazonRedshiftQueryEditor

      • AmazonRedshiftReadOnlyAccess

  11. Déconnectez-vous de la console Amazon Redshift et reconnectez-vous en tant qu'utilisateur. datalake_user

  12. Dans la barre d'outils verticale de gauche, cliquez EDITORsur l'icône pour ouvrir l'éditeur de requêtes et vous connecter au cluster. Si la boîte de dialogue Connect to database apparaît, choisissez le nom du clusterredshift-lakeformation-demo, puis entrez le nom de la base de donnéesdev, le nom awsuser d'utilisateur et le mot de passe que vous avez créés. Ensuite, choisissez Se connecter à la base de données.

    Note

    Si aucun paramètre de connexion ne vous est demandé et qu'un autre cluster est déjà sélectionné dans l'éditeur de requêtes, choisissez Modifier la connexion pour ouvrir la boîte de dialogue Connexion à la base de données.

  13. Dans la zone de texte New Query 1, entrez et exécutez l'instruction suivante pour mapper la base de données lakeformation_tutorial de Lake Formation au nom du schéma Amazon Redshift : redshift_jdbc

    Important

    Remplacez <account-id> avec un numéro de AWS compte valide, et <region> avec un nom de AWS région valide (par exemple,us-east-1).

    create external schema if not exists redshift_jdbc from DATA CATALOG database 'lakeformation_tutorial' iam_role 'arn:aws:iam::<account-id>:role/RedshiftLakeFormationRole' region '<region>';
  14. Dans la liste des schémas sous Sélectionner un schéma, choisissez redshift_jdbc.

    La liste des tables s'affiche. L'éditeur de requêtes affiche uniquement les tables pour lesquelles vous avez obtenu des autorisations relatives au lac de données de Lake Formation.

  15. Dans le menu contextuel situé à côté du nom d'une table, choisissez Prévisualiser les données.

    Amazon Redshift renvoie les 10 premières lignes.

    Vous pouvez désormais exécuter des requêtes sur les tables et les colonnes pour lesquelles vous avez des autorisations.

Étape 13 : Accorder ou révoquer les autorisations de Lake Formation à l'aide d'Amazon Redshift Spectrum

Amazon Redshift permet d'accorder et de révoquer les autorisations de Lake Formation sur les bases de données et les tables à l'aide d'instructions modifiées. SQL Ces instructions sont similaires aux instructions Amazon Redshift existantes. Pour plus d'informations, consultez GRANTet consultez le REVOKEmanuel Amazon Redshift Database Developer Guide.