Utiliser 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.

Utiliser 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 le 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 espace privé, VPC puis vous le connectez au métastore. La connexion entre Lambda et votre métastore Hive est sécurisée par un VPC canal Amazon privé 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 les métastores Hive AWS Glue Data Catalog et vos métastores 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'Athéna, ainsi que AWS CLI les pilotes AWS SDK Athena APIs et Athena mis à jour. JDBC ODBC Les pilotes mis à jour prennent en charge les catalogues personnalisés.

APIsoutien

Athena Data Connector pour External Hive Metastore inclut la prise en charge des opérations d'enregistrement API des catalogues et des opérations de métadonnées. API

  • 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 métadonnées APIs pour fournir des informations de base de données AWS Glue et de table pour tout catalogue que vous enregistrez auprès d'Athena.

  • JAVASDKClient Athena : utilisez l'enregistrement des catalogues APIsAPIs, les métadonnées et la prise en charge des catalogues dans le cadre du StartQueryExecution fonctionnement du client Athena Java mis à jour. SDK

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 sous GitHub forme de projet open source sur le metastore Athena Hive.

L'implémentation de référence est disponible sous la forme AWS SAM des deux applications suivantes dans le AWS Serverless Application Repository (SAR). Vous pouvez utiliser l'une ou l'autre de ces applications SAR pour créer vos propres fonctions Lambda.

  • AthenaHiveMetastoreFunction – Fichier .jar de fonction Lambda uber. Un « uber » JAR (également appelé fat JAR ou JAR avec dépendances) est un .jar fichier 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é à la base de données se trouve dans votre. VPC Vous utilisez Hive Server2 pour gérer votre métastore Hive à l'aide du Hive. CLI

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 qui se trouve dans 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 Athena DML ou une DDL requête qui utilise le nom du catalogue, le moteur de requêtes Athena appelle le nom de la 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 de votre entreprise VPC et reçoit des réponses aux demandes 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 l'utiliser CTAS pour créer une table sur un métastore Hive externe.

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

  • DDLle support pour le métastore Hive externe est limité aux déclarations 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

    • CREATETABLEEN TANT QUE

    • 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 JDBC pilote avec un métastore Hive externe ou des requêtes fédérées, incluez-le MetadataRetrievalMethod=ProxyAPI dans votre chaîne de connexion. JDBC Pour plus d'informations sur le JDBC pilote, consultezConnectez-vous à 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 l'avez VPC correctement configuré. Pour plus d'informations sur IAM les autorisations requises pour exécuter des requêtes et créer un connecteur de source de données dans Athena, reportez-vous Autoriser l'accès au connecteur de données Athena pour le métastore Hive externe aux sections 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 requis si votre connecteur utilise AWS Glue des métadonnées supplémentaires ou principales.

  • AWS Key Management Service

  • Politiques — Hive Metastore, Athena Query Federation et UDFs requière des politiques en plus des. AWS politique gérée : 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.