Aller au contenu principal

Activer la fédération du Hive metastore pour les métastores AWS Glue

Cet article explique comment fédérer un AWS Glue Hive metastore afin que votre organisation puisse travailler avec vos tables de Hive metastore à l'aide de Unity Catalog.

Pour un aperçu de la fédération du Hive metastore, consultez Fédération du Hive metastore : activer Unity Catalog pour gouverner les tables enregistrées dans un Hive metastore.

Présentation vidéo

Cette vidéo montre comment fédérer un métastore AWS Glue avec Unity Catalog, puis convertir les tables étrangères en tables gérées (10 minutes).

Avant de commencer

Passez en revue la liste des services et des fonctionnalités pris en charge par la fédération Hive metastore : Exigences et prise en charge des fonctionnalités.

Des exigences spécifiques sont listées pour chaque étape ci-dessous.

Étape 1 : Connectez Unity Catalog à votre Hive metastore AWS Glue.

Pour connecter votre Hive metastore AWS Glue à Databricks, vous devez :

  1. Créez un rôle IAM avec une politique de confiance qui donne un accès temporaire à Databricks aux ressources AWS Glue.
  2. Créez un identifiant de service qui enregistre le rôle IAM dans Unity Catalog. Un identifiant de service est un objet sécurisable Unity Catalog qui encapsule une information d'identification cloud à long terme.
  3. Créez une connexion Unity Catalog à votre catalogue AWS Glue depuis Databricks. Une connexion est un objet sécurisable Unity Catalog qui spécifie un chemin d'accès et des informations d'identification pour accéder à un système de base de données.

Exigences

Vous devez disposer des éléments suivants :

  • La possibilité de créer un rôle IAM qui accorde l'accès à votre catalogue AWS Glue.
  • La région et l'identifiant de compte du compte AWS qui contient votre catalogue AWS Glue.
  • Les privilèges CREATE SERVICE CREDENTIAL et CREATE CONNECTION sur le métastore Unity Catalog. Les administrateurs du metastore disposent de ces privilèges par default.

Créez le rôle IAM et l’identifiant de service

Utilisez les instructions de l'Étape 1 : Créer un rôle IAM pour créer un rôle IAM qui donne à Databricks un accès temporaire à vos ressources AWS Glue. Puisque ce rôle IAM doit être auto-assumé, le processus nécessite trois étapes :

Vous devez utiliser l'exemple de politique IAM pour AWS Glue qui est inclus dans ces instructions. L’exigence du rôle d’auto-attribution est également expliquée dans ces instructions.

Créer la connexion

Pour créer une connexion, vous pouvez utiliser Catalog Explorer ou la commande SQL CREATE CONNECTION dans un Notebook Databricks ou l’éditeur de query Databricks SQL.

remarque

Vous pouvez également utiliser l'API REST Databricks ou la CLI Databricks pour créer une connexion. Voir POST /api/2.1/unity-catalog/connections et les commandes Unity Catalog.

  1. Dans votre workspace Databricks, cliquez sur Icône de données. Catalogue .

  2. En haut du volet Catalog , cliquez sur l'icône Icône Ajouter ou plus et sélectionnez Créer une connexion dans le menu.

  3. Sur la page **Principes de base de la connexion** de l’assistant **Configurer la connexion**, saisissez un **Nom de connexion** convivial.

  4. Sélectionnez un type de connexion Hive Metastore et un type de metastore AWS Glue .

  5. Ajouter un commentaire (facultatif).

  6. Cliquez sur Suivant .

  7. Sur la page Détails de la connexion , saisissez les informations suivantes pour votre base de données hôte :

    • Région AWS : La région du compte AWS qui héberge le catalogue AWS Glue.
    • ID de compte AWS : l'ID de compte du compte AWS.
    • Identifiant : sélectionnez l'identifiant de service que vous avez créé à l'étape précédente.

    (Facultatif) Si l'instance de base de données n'utilise pas un certificat de serveur signé par une autorité de certification, sélectionnez Certificat de serveur de confiance .

  8. Cliquez sur Créer une connexion .

  9. Sur la page Principes de base du catalogue , saisissez un nom pour le catalogue étranger.

  10. Pour les chemins autorisés , choisissez les chemins de stockage cloud accessibles via le catalogue. Seules les tables relevant de ces chemins peuvent être interrogées via le catalogue étranger. Les chemins doivent être couverts par des emplacements externes. Pour plus d'informations, consultez Que sont les chemins autorisés ?

    Vous pouvez modifier les chemins autorisés après la création du catalogue. Voir Que sont les chemins autorisés ?.

  11. Cliquez sur **Créer un catalogue**.

  12. Sur la page Accès , sélectionnez les workspaces dans lesquels les utilisateurs peuvent accéder au catalogue que vous avez créé. Vous pouvez sélectionner Tous les workspaces ont accès , ou cliquer sur Attribuer aux workspaces , sélectionner les workspaces, puis cliquer sur Attribuer .

  13. Ajoutez un propriétaire qui pourra gérer l'accès à tous les objets du catalogue. start à taper un utilisateur ou un groupe dans la zone de texte, puis cliquez sur l'utilisateur ou le groupe dans les résultas renvoyés.

  14. Accorder des privilèges sur le catalogue.

    1. Cliquez sur Accorder .

    2. Spécifiez les **principals** qui auront accès aux objets dans le catalogue. start à taper un utilisateur ou un groupe dans la zone de texte, puis cliquez sur l'utilisateur ou le groupe dans les résultas renvoyés.

    3. Sélectionnez les Préréglages de privilèges à accorder à chaque utilisateur ou groupe. Tous les utilisateurs du compte se voient accorder BROWSE par default.

      • Sélectionnez Data Reader dans le menu déroulant pour accorder read privilèges sur les objets du catalogue.
      • Sélectionnez **Data Editor** dans le menu déroulant pour accorder read les modify privilèges et sur les objets du catalogue.
      • Sélectionnez manuellement les privilèges à accorder.
    4. Cliquez sur Accorder .

  15. Cliquez sur Suivant .

  16. Sur la page **Métadonnées**, vous pouvez éventuellement spécifier des tags sous forme de paires clé-valeur. Pour plus d'informations, consultez Appliquer des balises aux objets sécurisables d'Unity Catalog.

  17. Ajouter un commentaire (facultatif).

  18. Cliquez sur Enregistrer .

Étape 2 : Créer des emplacements externes pour les données dans votre Hive metastore

À cette étape, vous configurez un emplacement externe dans Unity Catalog pour régir l'accès aux emplacements de stockage cloud qui contiennent les données enregistrées dans votre Hive metastore AWS Glue.

Les emplacements externes sont des objets sécurisables Unity Catalog qui associent des informations d'identification de stockage avec des chemins de conteneur de stockage cloud.

Options de création de l'emplacement externe

Le processus que Databricks recommande pour créer un emplacement externe dans Unity Catalog dépend de votre situation :

  • Si vous n'avez pas d'identifiant de stockage créé dans Unity Catalog, vous pouvez créer l'emplacement externe à l'aide d'un Template AWS CloudFormation qui crée un rôle IAM et un identifiant de stockage pour vous. Suivez les instructions de Créer une identification de stockage qui accède à un compartiment AWS S3.
  • Si vous disposez déjà d'informations d'identification de stockage créées dans Unity Catalog, créez l'emplacement externe manuellement à l'aide de Catalog Explorer ou de SQL.

Activer le mode Fallback sur les emplacements externes

Dès que vous créez un emplacement externe dans Unity Catalog, l'accès au chemin représenté par cet emplacement externe est appliqué par les autorisations Unity Catalog lorsque vous exécutez des query sur un compute compatible Unity Catalog. Cela peut interrompre les workloads existants qui n'ont pas les autorisations Unity Catalog correctes pour accéder au chemin.

Lorsqu'un emplacement externe est en mode fallback, le système vérifie d'abord les autorisations Unity Catalog du principal demandeur sur l'emplacement, et si cela échoue, il revient à utiliser les informations d'identification existantes limitées au cluster ou au notebook, telles que les profils d'instance ou les propriétés de configuration Apache Spark, afin que vos charges de travail existantes continuent de s'exécuter sans interruption.

Le mode Fallback est pratique lorsque vous êtes en train de migrer votre charge de travail héritée. Une fois que vous avez mis à jour vos charges de travail pour qu'elles s'exécutent correctement à l'aide des autorisations Unity Catalog, vous devriez désactiver le mode fallback pour empêcher que les identifiants hérités à l'échelle du cluster soient utilisés pour contourner la gouvernance des données Unity Catalog.

Vous pouvez activer le mode fallback à l'aide de l'Explorateur de catalogues ou de l'API REST des emplacements externes Unity Catalog.

Autorisations requises : Propriétaire de l'emplacement externe.

  1. Dans votre workspace Databricks, cliquez sur Icône de données. Catalogue .
  2. Sur la page Accès rapide , cliquez sur Données externes > .
  3. Sélectionnez l’emplacement externe que vous voulez mettre à jour.
  4. Activez le bouton bascule Mode Fallback et cliquez sur Activer pour confirmer.

Étape 3 : Créer un catalogue étranger

remarque

Vous avez peut-être déjà terminé cette étape si vous avez utilisé l'assistant de création de connexion dans l'Explorateur de catalogues pour terminer l'étape 1. Si vous n'avez pas créé le catalogue étranger lorsque vous avez terminé l'étape 1, ou si vous avez utilisé SQL pour créer la connexion, vous devez suivre les instructions de cette section.

À cette étape, vous utilisez la connexion que vous avez créée à l'étape 1 pour créer un catalogue étranger dans Unity Catalog qui pointe vers l'emplacement externe que vous avez créé à l'étape 2. Un catalogue étranger est un objet sécurisable dans Unity Catalog qui reflète une base de données ou un catalogue dans un système de données externe, vous permettant d'effectuer des queries sur ces données dans votre workspace Databricks, avec un accès géré par Unity Catalog. Dans ce cas, le catalogue mis en miroir correspond à vos données enregistrées dans un Hive metastore.

Chaque fois qu'un utilisateur ou un workflow interagit avec le catalogue étranger, les métadonnées sont synchronisées à partir du Hive metastore.

Exigences

Exigences en matière d'autorisations :

Pour créer le catalogue étranger :

  • Le privilège CREATE CATALOG sur votre métastore Unity Catalog.
  • Soit la propriété de la connexion, soit le privilège CREATE FOREIGN CATALOG sur la connexion.
  • Pour saisir les chemins autorisés pour le catalogue étranger, vous devez disposer du privilège CREATE FOREIGN SECURABLE sur un emplacement externe qui couvre ces chemins. Le propriétaire de l'emplacement externe dispose de ce privilège par default.

Pour travailler avec le catalogue étranger :

  • Propriété du catalogue ou USE CATALOG

Exigences de compute :

  • Pour créer le catalogue à l'aide de l'Explorateur de catalogues : aucun compute requis.
  • Pour créer le catalogue à l'aide de SQL : Databricks Runtime 13.3 LTS ou version supérieure.
  • Pour travailler avec le catalogue : un compute avec mode d'accès standard sur Databricks Runtime 13.3 LTS, 14.3 LTS, 15.1 ou version ultérieure.

Créer le catalogue étranger

Pour créer un catalogue externe, vous pouvez utiliser l'Explorateur de catalogues ou la commande CREATE FOREIGN CATALOG SQL dans un notebook Databricks ou l'éditeur de query SQL.

Voir aussi Gérer et utiliser les catalogues étrangers.

remarque

Vous pouvez également utiliser l'API Unity Catalog. Voir Créer un catalogue dans la référence de l'API REST Databricks.

  1. Dans votre Workspace Databricks, cliquez sur Icône de données. **Catalogue** pour ouvrir l’Explorateur de catalogues.

  2. Sur la page Accès rapide , cliquez sur le bouton Ajouter des données et sélectionnez Ajouter un catalogue .

  3. Saisissez un nom de catalogue et sélectionnez un type de catalogue étranger .

  4. Sélectionnez la connexion que vous avez créée à l'étape 1 dans le menu déroulant.

  5. Dans le champ Chemins autorisés , saisissez les chemins d'accès aux emplacements de stockage cloud que vous avez définis comme emplacements externes à l'étape 2. Par exemple, s3://demo, s3://depts/finance.

    Les chemins d'accès autorisés constituent une couche de sécurité supplémentaire pour les catalogues externes pris en charge par la fédération Hive metastore. Voir Que sont les chemins autorisés ?.

  6. Dans le champ Emplacement de stockage , spécifiez un emplacement dans le stockage cloud où les métadonnées du catalogue seront stockées. Par exemple, s3://my-catalog-metadata.

  7. Cliquez sur Créer .

  8. (Facultatif) Cliquez sur Configurer pour ouvrir un assistant qui vous guide à travers l'octroi d'autorisations sur le catalogue et l'ajout de tags. Vous pouvez également effectuer ces étapes ultérieurement.

    Voir Gérer les privilèges dans Unity Catalog et Appliquer des tags aux objets sécurisables de Unity Catalog.

  9. (Facultatif) Associez le catalogue à des workspaces spécifiques.

    Par default, les catalogues peuvent être consultés depuis n'importe quel Workspace attaché au métastore Unity Catalog (restreint par les privilèges utilisateur). Si vous souhaitez autoriser l’accès uniquement à partir de workspaces spécifiques, accédez à l’onglet tab et attribuez des workspaces. Voir liaison Workspace-catalogue.

  10. Renseignez le catalogue externe avec les métadonnées du Hive metastore.

    Chaque fois qu'un utilisateur ou un flux de travail interagit avec le catalogue étranger, les métadonnées sont synchronisées depuis le Hive metastore. La première interaction peuple le catalogue dans Unity Catalog et rend son contenu visible dans l'interface utilisateur de l'Explorateur de catalogues. Vous pouvez peupler le catalogue en sélectionnant et en démarrant une ressource de compute prise en charge dans l'Explorateur de catalogues. Vous devez être le propriétaire du catalogue (ce que vous êtes en vertu de la création du catalogue) ou un utilisateur avec le privilège USE CATALOG.