Ce guide décrit les métadonnées Dataplex et explique comment les gérer à l'aide des API Dataplex.
Présentation
Dataplex analyse les éléments suivants:
- Éléments de données structurés et semi-structurés dans les lacs de données, pour extraire les métadonnées de table dans des entités de table
- Données non structurées, telles que des images et du texte, pour extraire les métadonnées de fichiers dans des entités de fichiers
Vous pouvez utiliser l'API Dataplex Metadata 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 de fichier
Vous pouvez analyser les métadonnées Dataplex à l'aide des éléments suivants:
- Data Catalog pour la recherche et le taggage
- Dataproc Metastore et BigQuery pour l'interrogation des métadonnées de table et le traitement des analyses
API Dataplex
Cette section récapitule les API Dataplex et les principales ressources associées.
API de plan de contrôle
L'API du plan de contrôle Dataplex permet de créer et de gérer les ressources de lac, de zone et d'élément.
Lac : instance de service Dataplex qui permet de gérer les ressources de stockage dans les projets d'une organisation.
Zone : regroupement logique d'éléments dans un lac. Utilisez plusieurs zones dans un lac pour organiser les données en fonction de leur préparation, de leur charge de travail ou de leur structure organisationnelle.
Éléments : ressources de stockage, avec des données stockées dans des buckets Cloud Storage ou des ensembles de données BigQuery, associées à une zone d'un lac.
API Metadata
Utilisez l'API Dataplex Metadata pour créer et gérer des métadonnées dans les entités et les partitions de table et d'ensemble de fichiers. Dataplex analyse les composants de données, que ce soit dans un lac ou que vous les ayez fournis, pour créer des entités et des partitions. Les entités et les partitions gèrent les références aux composants et aux emplacements de stockage physiques 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 façon unique par l'ID de l'entité et l'emplacement des données. Les métadonnées des entités de table sont interrogées dans BigQuery et Dataproc Metastore:
- Objets Cloud Storage:métadonnées des objets Cloud Storage, auxquels on accède via les API Cloud Storage.
- Tables BigQuery:métadonnées des tables BigQuery, auxquelles on accède via les API BigQuery.
- Entité de jeu de fichiers :
Métadonnées sur les données non structurées, généralement sans schéma. Les ensembles de fichiers sont identifiés de façon unique par l'ID de l'entité et l'emplacement des données. Chaque ensemble de fichiers a un format de données.
- Partitions:
Métadonnées d'un sous-ensemble de données dans une entité de table ou de fichier, 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 des API Dataplex lakes.zones.entities et lakes.zones.partitions 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.
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 l'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.
Détails de compatibilité:bien que les métadonnées Dataplex soient enregistrées de manière centralisée dans l'API de métadonnées, seules les métadonnées de table d'entité 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 des entités, y compris si vous ou Dataplex gérerez les métadonnées des entités.
- Cette API remplace entièrement tous les champs Entity modifiables. Les champs d'entité suivants sont immuables. Si vous les spécifiez dans une requête de mise à jour, ils seront ignorés :
- Spécifiez une valeur pour tous les champs d'entité modifiables, y compris tous les champs de schéma, même si les valeurs ne sont pas modifiées.
- Fournissez le champ etag. Pour obtenir l'etag, envoyez d'abord une requête entities.get, qui renvoie le
etag
de l'entité dans la réponse. - Modifier les champs de schéma:vous pouvez modifier le schéma de table découvert par Dataplex 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 le type surRECORD
. - Vous pouvez définir le champ
userManaged
du schéma pour spécifier si vous ou Dataplex gérez les métadonnées de la table. Le paramètre par défaut est "Géré par Dataplex". SiuserManaged
est défini sur "true", ce paramètre est inclus dans les informations renvoyées par une requêteentities.get
si EntityView est défini surSCHEMA
ouFULL
.
- Mettre à jour les champs de partition:
- Pour les données partitionnées non Hive, la détection Dataplex génère automatiquement des clés de partition. Par exemple, pour le chemin d'accès aux données
gs://root/2020/12/31
, les clés de partitionp0
,p1
etp2
sont générées. Pour rendre les requêtes plus intuitives, vous pouvez remplacerp0
,p1
etp2
paryear
,month
etday
, respectivement. - Si vous définissez le style de partitionnement sur le style HIVE, le champ de partitionnement est immuable.
- Pour les données partitionnées non Hive, la détection Dataplex génère automatiquement des clés de partition. Par exemple, pour le chemin d'accès aux données
- Mettre à 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 de Dataplex. La découverte Dataplex 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.
Renseignez les champs obligatoires et les champs facultatifs pertinents, ou laissez le service de découverte Dataplex les renseigner.
Supprimer l'entité
- Fournissez le champ etag. Pour obtenir l'etag, envoyez d'abord 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 de découverte. Si les données sous-jacentes d'une table dans une zone sélectionnée sont supprimées, les métadonnées de la table ne sont pas supprimées en conséquence, mais une action de données manquantes est signalée. Pour résoudre ce problème, supprimez explicitement l'entité de métadonnées de la table via l'API de métadonnées.
Partitions
Répertorier les partitions
Pour limiter la liste des partitions renvoyées par le service, ajoutez des paramètres de requête filtre à l'URL de requête list partitions
.
Exemples :
?filter="Country=US AND State=CA AND City=Sunnyvale"
?filter="year < 2000 AND month > 12 AND Date > 10"
Obtenir la partition
Pour obtenir une partition, vous devez compléter l'URL de la requête en ajoutant les valeurs de clé de partition à la fin de l'URL, au format partitions/value1/value2/…./value10
.
Exemple: si une partition contient 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 encodées deux fois. 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 de nom 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 emplacement obligatoire avec un chemin d'accès Cloud Storage.
Supprimer une partition
Complétez l'URL de requête en ajoutant les valeurs de clé de partition à la fin de l'URL de requête, au format partitions/value1/value2/…./value10
.
Exemple: si une partition contient 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 doivent être encodées deux fois, par exemple US:/CA#/Sunnyvale
en tant que US%3A/CA%3A/Sunnyvale
.
Étape suivante
- Découvrez comment accéder aux métadonnées dans Apache Spark.