Gérer les métadonnées des lacs, des zones et des éléments

Ce guide décrit les métadonnées Dataplex Universal Catalog pour les lacs, les zones et les éléments, et explique comment utiliser les API Dataplex Universal Catalog pour les gérer.

Présentation

Dataplex Universal Catalog analyse les éléments suivants :

  • Actifs de données structurées et semi-structurées dans les lacs de données, pour extraire les métadonnées de table dans les entités de table
  • Données non structurées, telles que des images et des textes, pour extraire les métadonnées des ensembles de fichiers dans des entités d'ensemble de fichiers

Vous pouvez utiliser l'API de métadonnées Dataplex Universal Catalog pour effectuer les opérations suivantes :

  • Afficher, modifier et supprimer les métadonnées des entités de table et de fichier
  • Créer vos propres métadonnées d'entité de table ou d'ensemble de fichiers

Vous pouvez analyser les métadonnées Dataplex Universal Catalog à l'aide des éléments suivants :

  • Data Catalog (obsolète) pour la recherche et le taggage
  • Dataproc Metastore et BigQuery pour interroger les métadonnées des tables et traiter les analyses

API Dataplex Universal Catalog

Cette section récapitule les API Dataplex Universal Catalog et les ressources clés associées.

API du plan de contrôle

L'API du plan de contrôle Dataplex Universal Catalog permet de créer et de gérer les ressources de lac, de zone et d'élément.

  • Lac : instance de service Dataplex Universal Catalog qui permet de gérer les ressources de stockage dans les projets d'une organisation.

  • Zone : regroupement logique de composants dans un lac. Utilisez plusieurs zones dans un lac pour organiser les données en fonction de leur état de préparation, de leur charge de travail ou de la structure de l'organisation.

  • Composants : ressources de stockage, avec des données stockées dans des buckets Cloud Storage ou des ensembles de données BigQuery, qui sont associées à une zone d'un lac.

API Metadata

Utilisez l'API de métadonnées Dataplex Universal Catalog pour créer et gérer des métadonnées dans les entités, partitions, tables et ensembles de fichiers. Dataplex Universal Catalog analyse les composants de données, qu'ils se trouvent dans un lac ou qu'ils soient fournis par vous, pour créer des entités et des partitions. Les entités et les partitions conservent des références aux composants et aux emplacements de stockage physique associés.

Concepts clés

Entité de table :

Métadonnées pour les données structurées avec des schémas bien définis. Les entités de table sont identifiées de manière unique par un ID d'entité et un emplacement de données. Les métadonnées des entités de table peuvent être interrogées dans BigQuery et Dataproc Metastore :

  • Objets Cloud Storage : métadonnées des objets Cloud Storage, accessibles via les API Cloud Storage.
  • Tables BigQuery : métadonnées des tables BigQuery, accessibles via les API BigQuery.
Entité Fileset :

Métadonnées sur les données non structurées, généralement sans schéma. Les ensembles de fichiers sont identifiés de manière unique par l'ID d'entité et l'emplacement des données. Chaque ensemble de fichiers possède un format de données.

Partitions :

Métadonnées d'un sous-ensemble de données dans une entité de table ou d'ensemble de fichiers, identifiées par un ensemble de paires clé/valeur et un emplacement de données.

Essayer l'API

Consultez les pages de documentation de référence de l'API lakes.zones.entities et lakes.zones.partitions de Dataplex Universal Catalog pour afficher les paramètres et les champs associés à chaque API. Utilisez le panneau Essayer cette API qui accompagne la documentation de référence de chaque méthode d'API pour envoyer des requêtes d'API à l'aide de différents paramètres et champs. Vous pouvez créer, afficher et envoyer vos requêtes sans avoir à générer d'identifiants, puis afficher les réponses renvoyées par le service.

Les sections suivantes vous aident à comprendre et à utiliser les API de métadonnées Dataplex Universal Catalog.

Entités

Lister les entités

Pour limiter la liste des entités renvoyées par le service, ajoutez des paramètres de requête filter à l'URL de la requête list entities.

Obtenir une entité

Par défaut, la réponse Get Entity contient des métadonnées d'entité de base. Pour récupérer des métadonnées de schéma supplémentaires, ajoutez le paramètre de requête view à l'URL de la requête.

Informations sur la compatibilité : bien que les métadonnées du catalogue universel Dataplex soient enregistrées de manière centralisée dans l'API de métadonnées, seules les métadonnées des tables d'entités compatibles avec BigQuery et Apache Hive Metastore sont publiées dans BigQuery et Dataproc Metastore. L'API Get Entity renvoie un message CompatibilityStatus, qui indique si les métadonnées de la table sont compatibles avec BigQuery et Hive Metastore, et, le cas échéant, la raison de l'incompatibilité.

Mettre à jour une entité

Utilisez cette API pour modifier les métadonnées d'entité, y compris pour indiquer si vous ou Dataplex Universal Catalog les gérerez.

  • Cette API remplace entièrement tous les champs modifiables Entity. Les champs d'entité suivants sont immuables. Si vous les spécifiez dans une demande de mise à jour, ils seront ignorés :
  • Spécifiez une valeur pour tous les champs d'entité modifiables, y compris tous les champs schema, même si les valeurs ne sont pas modifiées.
  • Fournissez le champ etag. Pour obtenir l'etag, vous devez d'abord envoyer une requête entities.get, qui renvoie le etag de l'entité dans la réponse.
  • Mise à jour des champs de schéma : vous pouvez mettre à jour le schéma de table découvert par Dataplex Universal Catalog pour améliorer sa précision :
    • Si le schéma est un ensemble de fichiers, laissez tous les champs de schéma vides.
    • Pour définir un champ répété, définissez le mode sur REPEATED. Pour définir un champ de structure, définissez type sur RECORD.
    • Vous pouvez définir le champ userManaged du schéma pour spécifier si vous ou Dataplex Universal Catalog gérez les métadonnées de la table. Le paramètre par défaut est "Dataplex Universal Catalog géré". Si userManaged est défini sur "true", ce paramètre est inclus dans les informations renvoyées par une requête entities.get si EntityView est défini sur SCHEMA ou FULL.
  • Mise à jour des champs de partition :
    • Pour les données partitionnées non au format Hive, la découverte Dataplex Universal Catalog génère automatiquement des clés de partitionnement. Par exemple, pour le chemin d'accès aux données gs://root/2020/12/31, les clés de partition p0, p1 et p2 sont générées. Pour rendre les requêtes plus intuitives, vous pouvez remplacer p0, p1 et p2 par year, month et day, respectivement.
    • Si vous définissez le style de partition sur HIVE style, le champ de partition est immuable.
  • Mise à jour d'autres champs de métadonnées : vous pouvez mettre à jour les champs mimeType, CompressionFormat, CsvOptions et JsonOptions générés automatiquement pour faciliter la découverte du catalogue universel Dataplex. La découverte Dataplex Universal Catalog utilisera les nouvelles valeurs lors de sa prochaine exécution.

Créer une entité

Utilisez l'API entities.create pour créer des entités de métadonnées de table ou d'ensemble de fichiers. Remplissez les champs obligatoires et les champs facultatifs pertinents, ou laissez le service de découverte Dataplex Universal Catalog remplir les champs facultatifs.

Supprimer l'entité

  • Fournissez le champ etag. Pour obtenir l'etag, vous devez d'abord envoyer une requête entities.get, qui renvoie le etag de l'entité dans la réponse.

Si les données sous-jacentes d'une table ou d'un ensemble de fichiers dans une zone brute sont supprimées, les métadonnées de la table ou de l'ensemble de fichiers sont automatiquement supprimées lors de la prochaine analyse Discovery. Si les données sous-jacentes d'une table dans une zone organisée sont supprimées, les métadonnées de la table ne sont pas supprimées en conséquence. Une action de données manquantes est signalée à la place. Pour résoudre ce problème, supprimez explicitement l'entité de métadonnées de la table à l'aide de l'API Metadata.

Partitions

Lister les partitions

Pour limiter la liste des partitions renvoyées par le service, ajoutez des paramètres de requête filter à l'URL de la requête list partitions.

Exemples :

  • ?filter="Country=US AND State=CA AND City=Sunnyvale"
  • ?filter="year < 2000 AND month > 12 AND Date > 10"

Obtenir une partition

Pour obtenir une partition, vous devez compléter l'URL de la requête en ajoutant les valeurs de la clé de partition à la fin de l'URL, au format partitions/value1/value2/…./value10.

Par exemple, si une partition comporte des valeurs {Country=US, State=CA, City=Sunnyvale}, l'URL de la requête GET doit se terminer par /partitions/US/CA/Sunnyvale.

Important : Les valeurs d'URL ajoutées doivent être doublement encodées. Par exemple, url_encode(url_encode(value)) peut être utilisé pour encoder "US:CA/CA#Sunnyvale" afin que l'URL de la requête se termine par /partitions/US%253ACA/CA%2523Sunnyvale. Le champ "name" de la réponse conserve le format encodé.

Créer une partition

Pour créer une partition personnalisée pour votre source de données, utilisez l'API partitions.create. Spécifiez le champ location (emplacement) requis avec un chemin d'accès Cloud Storage.

Supprimer une partition

Complétez l'URL de la requête en ajoutant les valeurs de clé de partition à la fin de l'URL de la requête, au format partitions/value1/value2/…./value10.

Par exemple, si une partition comporte des valeurs, {Country=US, State=CA, City=Sunnyvale}, l'URL de la requête doit se terminer par /partitions/US/CA/Sunnyvale.

Important : Les valeurs d'URL ajoutées doivent être conformes à la RFC-1034 ou être doublement encodées (par exemple, US:/CA#/Sunnyvale doit être encodé en US%3A/CA%3A/Sunnyvale).

Étapes suivantes