Utilisation du connecteur de données Athena pour un métastore Hive externe - 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.

Utilisation du connecteur de données Athena pour un métastore Hive externe

Vous pouvez utiliser le connecteur de données Amazon Athena pour le métastore Hive externe afin d'interroger les jeux de données Simple Storage Service (Amazon S3) qui utilisent un métastore Apache Hive. Aucune migration des métadonnées vers l' AWS Glue Data Catalog n'est nécessaire. Dans la console de gestion Athena, vous configurez une fonction Lambda pour communiquer avec le métastore Hive qui se trouve dans votre VPC privé, puis vous la connectez au métastore. La connexion de Lambda à votre métastore Hive est sécurisée par un canal privé Amazon VPC et n'utilise pas l'internet public. Vous pouvez fournir votre propre code de fonction Lambda ou utiliser l'implémentation par défaut du connecteur de données Athena pour le métastore Hive externe.

Présentation des fonctions

Avec le connecteur de données Athena pour métastore Hive externe, vous pouvez effectuer les tâches suivantes :

  • Utiliser la console Athena pour enregistrer des catalogues personnalisés et exécuter des requêtes à l'aide de ceux-ci.

  • Définir des fonctions Lambda pour différents métastores externes de Hive et les joindre dans des requêtes Athena.

  • Utilisez le AWS Glue Data Catalog et vos métastores Hive externes dans la même requête Athena.

  • Spécifiez un catalogue dans le contexte d'exécution de requête en tant que catalogue par défaut actuel. Cela supprime la nécessité de préfixer les noms de catalogue aux noms de base de données dans vos requêtes. Au lieu d'utiliser la syntaxe catalog.database.table, vous pouvez utiliser database.table.

  • Utilisez une variété d'outils pour exécuter des requêtes qui font référence aux métastores Hive externes. Vous pouvez utiliser la console Athena, l'interface de ligne de commande (AWS CLI), le kit SDK AWS, les API Athena et les pilotes JDBC et ODBC Athena mis à jour. Les pilotes mis à jour prennent en charge les catalogues personnalisés.

Prise en charge de l'API

Le connecteur de données Athena pour le métastore Hive externe comprend la prise en charge des opérations d'API d'enregistrement du catalogue et des opérations de l'API de métadonnées.

  • Enregistrement de catalogue – Enregistrez les catalogues personnalisés pour les métastores Hive externes et les sources de données fédérées.

  • Métadonnées – Utilisez les API de métadonnées pour fournir des informations de base de données et de table pour AWS Glue et tout catalogue que vous enregistrez dans Athena.

  • Client JAVA SDK Athena – Utilisez les API d'enregistrement de catalogue, les API de métadonnées et la prise en charge des catalogues dans l'opération StartQueryExecution dans le client Java SDK Athena mis à jour.

Implémentation de référence

Athena fournit une implémentation de référence pour la fonction Lambda qui se connecte aux métastores Hive externes. L'implémentation de référence est fournie sur GitHub en tant que projet open source dans le métastore Athena Hive.

La mise en œuvre de référence est disponible sous la forme des deux applications AWS SAM suivantes dans le AWS Serverless Application Repository (SAR). Vous pouvez utiliser l'une de ces applications dans le SAR pour créer vos propres fonctions Lambda.

  • AthenaHiveMetastoreFunction – Fichier .jar de fonction Lambda uber. Un JAR « uber » (également connu sous le nom de gros JAR ou JAR avec dépendances) est un fichier .jar qui contient à la fois un programme Java et ses dépendances dans un seul fichier.

  • AthenaHiveMetastoreFunctionWithLayer – Couche Lambda et fichier .jar de fonction Lambda mince.

Flux de travail

Le diagramme suivant montre comment Athena interagit avec votre métastore Hive externe.


                Mode d'interaction d'Athena avec votre métastore Hive externe.

Dans ce flux de travail, votre métastore Hive connecté à une base de données se trouve à l'intérieur de votre VPC. Vous utilisez Hive Server2 pour gérer votre métastore Hive à l'aide de la CLI Hive.

Le flux de travail permettant d'utiliser des métastores Hive externes depuis Athena inclut les étapes suivantes.

  1. Vous créez une fonction Lambda qui connecte Athena au métastore Hive se trouvant à l'intérieur de votre VPC.

  2. Vous enregistrez un nom de catalogue unique pour votre métastore Hive et un nom de fonction correspondant dans votre compte.

  3. Lorsque vous exécutez une requête DML ou DDL Athena qui utilise le nom du catalogue, le moteur de requête Athena appelle le nom de fonction Lambda que vous avez associé au nom du catalogue.

  4. À l'aide de AWS PrivateLink, la fonction Lambda communique avec le métastore Hive externe dans votre VPC et reçoit les réponses aux requêtes de métadonnées. Athena utilise les métadonnées de votre métastore Hive externe tout comme il utilise les métadonnées du AWS Glue Data Catalog par défaut.

Considérations et restrictions

Lorsque vous utilisez le connecteur de données Athena pour le métastore Hive externe, tenez compte des points suivants :

  • Vous pouvez utiliser l'instruction CTAS pour créer une table sur un métastore Hive externe.

  • Vous pouvez utiliser l'instruction INSERT INTO pour insérer des données dans un métastore Hive externe.

  • La prise en charge DDL pour le métastore Hive externe est limitée aux instructions suivantes.

    • ALTER DATABASE SET DBPROPERTIES

    • ALTER TABLE ADD COLUMNS

    • ALTER TABLE ADD PARTITION

    • ALTER TABLE DROP PARTITION

    • ALTER TABLE RENAME PARTITION

    • ALTER TABLE REPLACE COLUMNS

    • ALTER TABLE SET LOCATION

    • ALTER TABLE SET TBLPROPERTIES

    • CREATE DATABASE

    • CREATE TABLE

    • CREATE TABLE AS

    • DESCRIBE TABLE

    • DROP DATABASE

    • DROP TABLE

    • SHOW COLUMNS

    • SHOW CREATE TABLE

    • SHOW PARTITIONS

    • SHOW SCHEMAS

    • SHOW TABLES

    • SHOW TBLPROPERTIES

  • Le nombre maximal de catalogues enregistrés que vous pouvez avoir est de 1 000.

  • L'authentification Kerberos pour le métastore Hive n'est pas prise en charge.

  • Pour utiliser le pilote JDBC avec un metastore Hive externe ou des requêtes fédérées, incluez MetadataRetrievalMethod=ProxyAPI dans votre chaîne de connexion JDBC. Pour plus d'informations sur le pilote JDBC, voir Connexion à Amazon Athena avec JDBC.

  • Les colonnes cachées $path, $bucket, $file_size, $file_modified_time, $partition, $row_id de Hive ne peuvent pas être utilisées pour le filtrage du contrôle d'accès précis.

  • Les tables cachées du système Hive comme example_table$partitions ou example_table$properties ne sont pas prises en charge par le contrôle d'accès précis.

Autorisations

Les connecteurs de données prédéfinis et personnalisés peuvent nécessiter l'accès aux ressources suivantes pour fonctionner correctement. Vérifiez les informations relatives au connecteur que vous utilisez pour vous assurer que vous avez correctement configuré votre VPC. Pour de plus amples informations sur les autorisations IAM requises pour exécuter des requêtes et créer un connecteur de source de données dans Athena, voir Autorisation d'accès à un connecteur de données Athena pour un métastore Hive externe et Autorisation d'accès des fonctions Lambda aux métastores Hive externes.

  • Simple Storage Service (Amazon S3) – Outre l'écriture des résultats des requêtes dans l'emplacement des résultats des requêtes Athena dans Simple Storage Service (Amazon S3), les connecteurs de données écrivent également dans un compartiment de déversement dans Simple Storage Service (Amazon S3). Une connectivité et des autorisations d'accès à cet emplacement Simple Storage Service (Amazon S3) sont requises. Pour plus d'informations, consultez Emplacement de déversement dans Simple Storage Service (Amazon S3) plus loin dans cette rubrique.

  • Athena – L'accès est nécessaire pour vérifier l'état de la requête et empêcher le surbalayage.

  • AWS Glue – L'accès est nécessaire si votre connecteur utilise AWS Glue pour les métadonnées supplémentaires ou primaires.

  • AWS Key Management Service

  • Politiques – Le métastore Hive, Athena Query Federation et les UDF nécessitent des politiques en plus de Politique gérée par AWS : AmazonAthenaFullAccess. Pour de plus amples informations, veuillez consulter Gestion des identités et des accès dans Athena.

Emplacement de déversement dans Simple Storage Service (Amazon S3)

En raison de la limite de la taille des réponses des fonctions Lambda, les réponses supérieures au seuil sont déversées dans un emplacement Simple Storage Service (Amazon S3) que vous spécifiez lorsque vous créez votre fonction Lambda. Athena lit directement ces réponses de Simple Storage Service (Amazon S3).

Note

Athena ne supprime pas les fichiers de réponse sur Simple Storage Service (Amazon S3). Nous vous recommandons de configurer une politique de rétention pour supprimer automatiquement les fichiers de réponse.