Ce document explique comment créer des entrées Data Catalog personnalisées. Pour intégrer vos sources de données personnalisées, appelez les API Data Catalog qui vous permettent de créer et de gérer des entrées Data Catalog avec des types de ressources de données personnalisés. Dans ce document, une entrée correspondant à un type de ressource de données personnalisé est appelée "entrée personnalisée".
Créer des groupes d'entrées et des entrées personnalisées
Les entrées personnalisées doivent être placées dans un groupe d'entrées créé par l'utilisateur. Vous créez le groupe d'entrées, puis vous créez l'entrée personnalisée dans le groupe d'entrées. Pour en savoir plus, consultez la page Entrées et groupes d'entrées.
Après avoir créé une entrée, vous pouvez définir des stratégies IAM dans le groupe d'entrées afin de déterminer les personnes autorisées à accéder au groupe et aux entrées.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de Data Catalog à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Java de Data Catalog.
Pour vous authentifier auprès de Data Catalog, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Avant d'essayer cet exemple, suivez les instructions de configuration pour Node.js du guide de démarrage rapide de Data Catalog à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Node.js de Data Catalog.
Pour vous authentifier auprès de Data Catalog, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python du guide de démarrage rapide de Data Catalog à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Python de Data Catalog.
Pour vous authentifier auprès de Data Catalog, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
API REST et ligne de commande
REST
Consultez les exemples suivants et la documentation des API REST de Data Catalog entryGroups.create et entryGroups.entries.create.
1. Créer un groupe d'entrées
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- project-id : ID de votre projet Google Cloud.
- entryGroupId : l'ID doit commencer par une lettre ou un trait de soulignement, ne doit contenir que des lettres en alphabet latin, des chiffres et des traits de soulignement, et ne doit pas contenir plus de 64 caractères.
- displayName : nom textuel du groupe d'entrées.
Méthode HTTP et URL :
POST https://datacatalog.googleapis.com/v1/projects/project-id/locations/region/entryGroups?entryGroupId=entryGroupId
Corps JSON de la requête :
{ "displayName": "Entry Group display name" }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/my_projectid/locations/us-central1/entryGroups/my_entry_group", "displayName": "Entry Group display name", "dataCatalogTimestamps": { "createTime": "2019-10-19T16:35:50.135Z", "updateTime": "2019-10-19T16:35:50.135Z" } }
2. Créer une entrée personnalisée dans le groupe d'entrées
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- project_id : ID de votre projet Google Cloud.
- entryGroupId : ID du groupe d'entrées existant. L'entrée sera créée dans ce groupe d'entrées.
- entryId : ID de la nouvelle entrée. L'ID doit commencer par une lettre ou un trait de soulignement, doit contenir uniquement des lettres en alphabet latin, des chiffres et des traits de soulignement, et ne doit pas contenir plus de 64 caractères.
- description : description de l'entrée facultative.
- displayName : nom textuel facultatif de l'entrée.
- userSpecifiedType : nom du type personnalisé. Le nom du type doit commencer par une lettre ou un trait de soulignement, doit contenir uniquement des lettres, des chiffres et des traits de soulignement, et ne doit pas contenir plus de 64 caractères.
- userSpecifiedSystem : système source de l'entrée autre que Google Cloud, qui n'est pas intégré à Data Catalog. Le nom du système source doit commencer par une lettre ou un trait de soulignement, doit contenir uniquement des lettres, des chiffres et des traits de soulignement, et ne doit pas contenir plus de 64 caractères.
- linkedResource : nom complet facultatif de la ressource à laquelle l'entrée fait référence.
- schema : schéma de données facultatif.
Exemple de schéma JSON :
{ ... "schema": { "columns": [ { "column": "first_name", "description": "First name", "mode": "REQUIRED", "type": "STRING" }, { "column": "last_name", "description": "Last name", "mode": "REQUIRED", "type": "STRING" }, { "column": "address", "description": "Address", "mode": "REPEATED", "subcolumns": [ { "column": "city", "description": "City", "mode": "NULLABLE", "type": "STRING" }, { "column": "state", "description": "State", "mode": "NULLABLE", "type": "STRING" } ], "type": "RECORD" } ] } ... }
Méthode HTTP et URL :
POST https://datacatalog.googleapis.com/v1/projects/project_id/locations/region/entryGroups/entryGroupId/entries?entryId=entryId
Corps JSON de la requête :
{ "description": "Description", "displayName": "Display name", "userSpecifiedType": "my_type", "userSpecifiedSystem": "my_system", "linkedResource": "example.com/def", "schema": { schema } }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/my_project_id/locations/us-central1/entryGroups/my_entryGroup_id/entries/my_entry_id", "userSpecifiedType": "my-type", "userSpecifiedSystem": "my_system", "displayName": "On-prem entry", "description": "My entry description.", "schema": { "columns": [ { "type": "STRING", "description": "First name", "mode": "REQUIRED", "column": "first_name" }, { "type": "STRING", "description": "Last name", "mode": "REQUIRED", "column": "last_name" }, { "type": "RECORD", "description": "Address", "mode": "REPEATED", "column": "address", "subcolumns": [ { "type": "STRING", "description": "City", "mode": "NULLABLE", "column": "city" }, { "type": "STRING", "description": "State", "mode": "NULLABLE", "column": "state" } ] } ] }, "sourceSystemTimestamps": { "createTime": "2019-10-23T23:11:26.326Z", "updateTime": "2019-10-23T23:11:26.326Z" }, "linkedResource": "example.com/def" }