Importer des métadonnées dans Dataproc Metastore

Cette page explique comment importer des métadonnées dans un service Dataproc Metastore.

La fonctionnalité d'importation de métadonnées vous permet de renseigner un service Dataproc Metastore existant avec des métadonnées stockées dans un format de stockage portable.

Ces métadonnées portables sont généralement exportées à partir d'un autre service Dataproc Metastore ou d'un métastore Hive autogéré.

À propos de l'importation de métadonnées

Vous pouvez importer les formats de fichier suivants dans Dataproc Metastore:

  • Ensemble de fichiers Avro stockés dans un dossier.
  • Un fichier de dump MySQL unique stocké dans un dossier Cloud Storage.

Les fichiers MySQL ou Avro que vous importez doivent être générés à partir d'une base de données relationnelle.

Si vos fichiers sont dans un format différent, par exemple PostgreSQL, vous devez les convertir au format Avro ou MySQL. Après la conversion, vous pouvez les importer dans Dataproc Metastore.

Avro

Les importations basées sur Avro ne sont compatibles qu'avec les versions 2.3.6 et 3.1.2 de Hive. Lors de l'importation de fichiers Avro, Dataproc Metastore attend une série de fichiers <table-name>.avro pour chaque table de votre base de données.

Pour importer des fichiers Avro, votre service Dataproc Metastore peut utiliser le type de base de données MySQL ou Spanner.

MySQL

Les importations basées sur MySQL sont compatibles avec toutes les versions de Hive. Lors de l'importation de fichiers MySQL, Dataproc Metastore attend un seul fichier SQL contenant toutes les informations de votre table. Les vidages MySQL obtenus à partir d'un cluster Dataproc utilisant le langage SQL natif sont également acceptés.

Pour importer des fichiers MySQL, votre service Dataproc Metastore doit utiliser le type de base de données MySQL. Le type de base de données Spanner n'est pas compatible avec les importations MySQL.

Considérations relatives à l'importation

  • L'importation écrase toutes les métadonnées existantes stockées dans un service Dataproc Metastore.

  • La fonctionnalité d'importation de métadonnées n'importe que les métadonnées. Les données créées par Apache Hive dans des tables internes ne sont pas répliquées lors de l'importation.

  • L'importation ne transforme pas le contenu de la base de données et ne gère pas la migration des fichiers. Si vous déplacez vos données vers un autre emplacement, vous devez mettre à jour manuellement les emplacements et le schéma de vos données de table dans votre service Dataproc Metastore.

  • L'importation ne restaure et ne remplace pas les stratégies IAM précises.

  • Si vous utilisez VPC Service Controls, vous ne pouvez importer que des données d'un bucket Cloud Storage résidant dans le même périmètre de service que le service Dataproc Metastore.

Avant de commencer

Rôles requis

Pour obtenir les autorisations dont vous avez besoin pour importer des métadonnées dans Dataproc Metastore, demandez à votre administrateur de vous attribuer les rôles IAM suivants:

Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

Ces rôles prédéfinis contiennent les autorisations requises pour importer des métadonnées dans Dataproc Metastore. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour importer des métadonnées dans Dataproc Metastore:

  • Pour importer des métadonnées : metastore.imports.create sur le service de métastore.
  • Avec MySQL, pour utiliser l'objet Cloud Storage (fichier de dump SQL) à des fins d'importation, attribuez à votre compte utilisateur et à l'agent de service Dataproc Metastore le rôle storage.objects.get sur le bucket Cloud Storage contenant le fichier de dump de métadonnées en cours d'importation.
  • Pour Avro, afin d'utiliser le bucket Cloud Storage pour l'importation, accordez à votre compte utilisateur et à l'agent de service Dataproc Metastore : storage.objects.get sur le bucket Cloud Storage contenant le fichier de dump de métadonnées à importer.

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Pour en savoir plus sur les rôles et autorisations spécifiques de Dataproc Metastore, consultez la page Présentation de l'IAM pour Dataproc Metastore.

Importer vos métadonnées

L'opération d'importation est un processus en deux étapes. Tout d'abord, vous préparez vos fichiers d'importation, puis vous les importez dans Dataproc Metastore.

Lorsque vous lancez une importation, Dataproc Metastore effectue une validation du schéma de métadonnées Hive. Cette validation vérifie les tables du fichier de vidage SQL et les noms de fichiers pour Avro. Si une table est manquante, l'importation échoue et un message d'erreur décrivant la table correspondante s'affiche.

Pour vérifier la compatibilité des métadonnées Hive avant une importation, vous pouvez utiliser le kit d'outils Dataproc Metastore.

Préparer les fichiers d'importation avant l'importation

Avant de pouvoir importer vos fichiers dans Dataproc Metastore, vous devez copier vos fichiers de dump de métadonnées dans Cloud Storage, tels que votre bucket Cloud Storage d'artefacts.

Déplacer vos fichiers vers Cloud Storage

  1. Créez un vidage de la base de données externe que vous souhaitez importer dans Dataproc Metastore.

    Pour savoir comment créer un vidage de base de données, consultez les pages suivantes:

  2. Importez les fichiers dans Cloud Storage.

    Veillez à noter le chemin d'accès Cloud Storage dans lequel vous importez vos fichiers, vous devrez l'utiliser ultérieurement pour effectuer l'importation.

    • Si vous importez des fichiers MySQL, importez le fichier SQL dans un bucket Cloud Storage.

    • Si vous importez des fichiers Avro, les fichiers doivent être importés dans un dossier Cloud Storage.

      • Votre importation Avro doit inclure un fichier Avro pour chaque table Hive, même si la table est vide.
      • Les noms de fichiers Avro doivent respecter le format <table-name>.avro. L'élément <table-name> doit être en majuscules. Exemple : AUX_TABLE.avro.

Importer les fichiers dans Dataproc Metastore

Avant d'importer des métadonnées, consultez les considérations relatives à l'importation.

Lorsqu'une importation est en cours d'exécution, vous ne pouvez pas mettre à jour un service Dataproc Metastore, par exemple modifier les paramètres de configuration. Cependant, vous pouvez tout de même l'utiliser pour des opérations normales, par exemple pour accéder à ses métadonnées à partir de clusters Dataproc associés ou de clusters autogérés.

Console

  1. Dans la console Google Cloud, ouvrez la page Dataproc Metastore:

    Ouvrir Dataproc Metastore

  2. Sur la page Dataproc Metastore, cliquez sur le nom du service dans lequel vous souhaitez importer des métadonnées.

    La page Détails du service s'ouvre.

    Page d'information sur le service
    Figure 1 : Page d'informations du service Dataproc Metastore.
  3. Dans la barre de navigation, cliquez sur Import (Importer).

    La boîte de dialogue Import (Importer) s'ouvre.

  4. Saisissez le nom de l'importation dans Import name.

  5. Dans la section Destination, choisissez MySQL ou Avro.

  6. Dans le champ URI de destination, cliquez sur Parcourir et sélectionnez l'URI Cloud Storage dans lequel vous souhaitez importer vos fichiers.

    Vous pouvez également saisir manuellement l'emplacement de votre bucket dans le champ de texte prévu à cet effet. Utilisez le format suivant: bucket/object ou bucket/folder/object.

  7. (Facultatif) Saisissez une Description de l'importation.

    Vous pouvez modifier la description sur la page Détails du service.

  8. Pour mettre à jour le service, cliquez sur Importer.

    Une fois l'importation terminée, elle apparaît dans un tableau de la page Détails du service de l'onglet Importation/Exportation.

gcloud CLI

  1. Pour importer des métadonnées, exécutez la commande gcloud metastore services import gcs suivante:

    gcloud metastore services import gcs SERVICE_ID \
      --location=LOCATION \
      --import-id=IMPORT_ID \
      --description=DESCRIPTION \
      --dump-type=DUMP_TYPE \
      --database-dump=DATABASE_DUMP
    

    Remplacez les éléments suivants :

    • SERVICE_ID: ID ou nom complet de votre service Dataproc Metastore.
    • LOCATION: région Google Cloud dans laquelle se trouve votre service Dataproc Metastore.
    • IMPORT_ID: ID ou nom complet pour l'importation des métadonnées. Par exemple, import1.
    • DESCRIPTION : (facultatif) description de votre importation. Vous pourrez le modifier plus tard avec gcloud metastore services imports update IMPORT.
    • DUMP_TYPE: type de la base de données externe que vous importez. Les valeurs acceptées sont mysql et avro. La valeur par défaut est mysql.
    • DATABASE_DUMP: chemin d'accès à Cloud Storage contenant les fichiers de base de données. Ce chemin d'accès doit commencer par gs://. Pour Avro, indiquez le chemin d'accès au dossier dans lequel les fichiers Avro sont stockés (le dossier Cloud Storage). Pour MySQL, indiquez le chemin d'accès au fichier MySQL (l'objet Cloud Storage).
  2. Vérifiez que l'importation a réussi.

REST

Suivez les instructions de l'API pour importer des métadonnées dans un service à l'aide de l'explorateur d'API.

L'API vous permet de créer, répertorier, décrire et mettre à jour des importations, mais vous ne pouvez pas les supprimer. Toutefois, la suppression d'un service Dataproc Metastore supprime toutes les importations imbriquées stockées.

Une fois l'importation terminée, Dataproc Metastore revient automatiquement à l'état actif. Si l'importation échoue, Dataproc Metastore revient à son état sain précédent.

Afficher l'historique des importations

Pour afficher l'historique des importations d'un service Dataproc Metastore dans la console Google Cloud, procédez comme suit:

  1. Dans la console Google Cloud, ouvrez la page Dataproc Metastore.
  2. Dans la barre de navigation, cliquez sur Importer/Exporter.

    L'historique de vos importations s'affiche dans le tableau Historique des importations.

    L'historique affiche les 25 dernières importations.

La suppression d'un service Dataproc Metastore entraîne également la suppression de tout l'historique des importations associé.

Résoudre les problèmes courants

Voici quelques problèmes courants:

Si vous avez besoin d'aide pour résoudre les problèmes courants, consultez Scénarios d'erreur d'importation et d'exportation.

Étapes suivantes