Connect Athena à un métastore Hive à l'aide d'un rôle d'exécution existant IAM - Amazon Athena

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.

Connect Athena à un métastore Hive à l'aide d'un rôle d'exécution existant IAM

Pour connecter votre métastore Hive externe à Athena à l'aide d'une fonction Lambda qui utilise un IAM rôle existant, vous pouvez utiliser l'implémentation de référence d'Athena du connecteur Athena pour le métastore Hive externe.

Les trois étapes principales sont les suivantes :

  1. Cloner et compiler : clonez l'implémentation de référence Athena et générez le JAR fichier contenant le code de fonction Lambda.

  2. AWS Lambda console — Dans la AWS Lambda console, créez une fonction Lambda, attribuez-lui un rôle d'IAMexécution existant et téléchargez le code de fonction que vous avez généré.

  3. Console Amazon Athena – Dans la console Amazon Athena, créez un nom de source de données que vous pourrez utiliser pour faire référence à votre métastore Hive externe dans vos requêtes Athena.

Si vous êtes déjà autorisé à créer un IAM rôle personnalisé, vous pouvez utiliser un flux de travail plus simple qui utilise la console Athena AWS Serverless Application Repository pour créer et configurer une fonction Lambda. Pour de plus amples informations, veuillez consulter Connect Athena à un metastore Apache Hive.

Prérequis

Clonage et création de la fonction Lambda

Le code de fonction pour l'implémentation de référence Athena est un projet Maven situé sur GitHub awslabs/. aws-athena-hive-metastore Pour des informations détaillées sur le projet, consultez le README fichier correspondant GitHub ou le Modifier le connecteur de métastore Hive externe Athena sujet de cette documentation.

Clonage et création du code de fonction Lambda
  1. Saisissez la commande suivante pour cloner l'implémentation de référence Athena :

    git clone https://github.com/awslabs/aws-athena-hive-metastore
  2. Exécutez la commande suivante pour créer le fichier .jar pour la fonction Lambda :

    mvn clean install

    Une fois le projet crée avec succès, le fichier .jar suivant est créé dans le dossier cible de votre projet :

    hms-lambda-func-1.0-SNAPSHOT-withdep.jar

    Dans la section suivante, vous allez utiliser la AWS Lambda console pour télécharger ce fichier sur votre compte Amazon Web Services.

Création et configuration de la fonction Lambda dans la console AWS Lambda

Dans cette section, vous allez utiliser la AWS Lambda console pour créer une fonction utilisant un rôle IAM d'exécution existant. Après avoir configuré un VPC pour la fonction, vous téléchargez le code de fonction et configurez les variables d'environnement pour la fonction.

Créer la fonction Lambda

Au cours de cette étape, vous créez une fonction dans la AWS Lambda console qui utilise un IAM rôle existant.

Pour créer une fonction Lambda qui utilise un rôle existant IAM
  1. Connectez-vous à la AWS Lambda console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/lambda/.

  2. Dans le volet de navigation, choisissez Fonctions.

  3. Sélectionnez Create function (Créer une fonction).

  4. Choisissez Créer à partir de zéro.

  5. Dans Function name (Nom de la fonction), saisissez le nom de votre fonction Lambda (par exemple, EHMSBasedLambda).

  6. Pour Runtime (Exécution), choisissez Java 8.

  7. Sous Permissions (Autorisations), développez Change default execution role (Modifier le rôle d'exécution par défaut).

  8. Pour Execution role (Rôle d'exécution), choisissez Use an existing role (Utilisez un rôle existant).

  9. Pour Rôle existant, choisissez le rôle IAM d'exécution que votre fonction Lambda utilisera pour Athena (cet exemple utilise un rôle appelé). AthenaLambdaExecutionRole

  10. Développez Advanced settings (Paramètres avancés).

  11. Sélectionnez Enable Network (Activer le réseau).

  12. Choisissez VPCen effet VPC celui auquel votre fonction aura accès.

  13. Pour les sous-réseaux, choisissez les VPC sous-réseaux que Lambda doit utiliser.

  14. Pour les groupes de sécurité, choisissez les groupes VPC de sécurité que Lambda doit utiliser.

  15. Sélectionnez Create function (Créer une fonction). La AWS Lambda console ouvre la page de configuration de votre fonction et commence à créer votre fonction.

Chargement du code et configuration de la fonction Lambda

Lorsque la console vous informe que votre fonction a été créée avec succès, vous pouvez télécharger le code de la fonction et configurer ses variables d'environnement.

Téléchargement du code de votre fonction Lambda et configuration de ses variables d'environnement
  1. Dans la console Lambda, assurez-vous que vous êtes sur l'onglet Code de la page de la fonction que vous avez spécifiée.

  2. Pour Code source (Code source), choisissez Upload from (Charger depuis) puis choisissez .zip or .jar file (fichier .zip ou .jar).

  3. Téléchargement du fichier hms-lambda-func-1.0-SNAPSHOT-withdep.jar généré précédemment.

  4. Sur la page de la fonction Lambda, choisissez l'onglet Configuration.

  5. Dans le panneau de gauche, choisissez Environment variables (Variables d'environnement).

  6. Dans la section Environment variables (Variables d'environnement), choisissez Edit (Modifier).

    Choisissez Edit (Modifier) pour modifier les variables d'environnement de la fonction Lambda.
  7. Sur la page Edit environment variables (Modifier les variables d'environnement), utilisez l'option Add environment variable (Ajouter une variable d'environnement) pour ajouter les clés et les valeurs des variables d'environnement suivantes :

    • HMS_ URIS — Utilisez la syntaxe suivante pour saisir le nom URI de votre hôte de métastore Hive qui utilise le protocole Thrift sur le port 9083.

      thrift://<host_name>:9083
    • SPILL_ LOCATION — Spécifiez un emplacement Amazon S3 dans votre compte Amazon Web Services pour conserver les métadonnées dérivées si la taille de réponse de la fonction Lambda dépasse 4 Mo.

      Spécification des valeurs pour les variables d'environnement de la fonction Lambda.
  8. Choisissez Save (Enregistrer).

À ce stade, vous êtes prêt à configurer Athena pour qu'il utilise votre fonction Lambda afin de se connecter à votre métastore Hive. Pour les étapes, consultez Configuration d'Athena pour utiliser un connecteur de métastore Hive déployé.