Ce document explique comment importer des métadonnées depuis une source tierce dans Dataplex Universal Catalog en exécutant un pipeline de connectivité gérée dans Workflows.
Pour configurer un pipeline de connectivité gérée, vous devez créer un connecteur pour votre source de données. Vous exécutez ensuite le pipeline dans Workflows. Le pipeline extrait les métadonnées de votre source de données, puis les importe dans Dataplex Universal Catalog. Si nécessaire, le pipeline crée également des groupes d'entrées Dataplex Universal Catalog dans votre projet Google Cloud .
Pour en savoir plus sur la connectivité gérée, consultez Présentation de la connectivité gérée.
Avant de commencer
Avant d'importer des métadonnées, effectuez les tâches décrites dans cette section.
Créer un connecteur
Un connecteur extrait les métadonnées de votre source de données et génère un fichier d'importation de métadonnées qui peut être importé par Dataplex Universal Catalog. Le connecteur est une image Artifact Registry pouvant s'exécuter sur Dataproc sans serveur.
Créez un connecteur personnalisé qui extrait les métadonnées de votre source tierce.
Pour obtenir un exemple de connecteur que vous pouvez utiliser comme modèle de référence pour créer votre propre connecteur, consultez Développer un connecteur personnalisé pour l'importation de métadonnées.
Configurer les ressources Google Cloud
-
Enable the Workflows, Dataproc, Cloud Storage, Dataplex, Secret Manager, Artifact Registry, and Cloud Scheduler APIs.
Si vous ne prévoyez pas d'exécuter le pipeline selon une planification, vous n'avez pas besoin d'activer l'API Cloud Scheduler.
Créez des secrets dans Secret Manager pour stocker les identifiants de votre source de données tierce.
Configurez votre réseau de cloud privé virtuel (VPC) de façon à exécuter des charges de travail Dataproc sans serveur pour Spark.
Créez un bucket Cloud Storage pour stocker les fichiers d'importation de métadonnées.
Créez les ressources Dataplex Universal Catalog suivantes :
Créez des types d'aspects personnalisés pour les entrées que vous souhaitez importer.
Créez des types d'entrées personnalisés pour les entrées que vous souhaitez importer.
Rôles requis
Un compte de service représente l'identité d'un workflow et détermine les autorisations dont il dispose ainsi que les ressources Google Cloud auxquelles il peut accéder. Vous avez besoin d'un compte de service pour Workflows (afin d'exécuter le pipeline) et pour Dataproc sans serveur (afin d'exécuter le connecteur).
Vous pouvez utiliser le compte de service Compute Engine par défaut (PROJECT_NUMBER-compute@developer.gserviceaccount.com
) ou créer votre propre compte de service (ou vos propres comptes) pour exécuter le pipeline de connectivité gérée.
Console
Dans la console Google Cloud , accédez à la page IAM.
Sélectionnez le projet dans lequel vous souhaitez importer les métadonnées.
Cliquez sur
Accorder l'accès, puis saisissez l'adresse e-mail du compte de service.Attribuez les rôles suivants au compte de service :
- Rédacteur de journaux
- Propriétaire du groupe d'entrées Dataplex
- Propriétaire de jobs de métadonnées Dataplex
- Éditeur de catalogue Dataplex
- Éditeur Dataproc
- Nœud de calcul Dataproc
- Accesseur de secrets Secret Manager : sur le secret qui stocke les identifiants de votre source de données.
- Utilisateur d'objets Storage : sur le bucket Cloud Storage.
- Lecteur Artifact Registry : sur le dépôt Artifact Registry contenant l'image de connecteur.
- Utilisateur du compte de service : si vous utilisez différents comptes de service, attribuez au compte de service qui exécute Workflows ce rôle sur le compte de service qui exécute les jobs par lot Dataproc sans serveur.
- Demandeur de workflows : si vous souhaitez planifier l'exécution du pipeline.
Enregistrez les modifications.
gcloud
Attribuez des rôles au compte de service. Exécutez les commandes suivantes :
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/logging.logWriter gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/dataplex.entryGroupOwner gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/dataplex.metadataJobOwner gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/dataplex.catalogEditor gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/dataproc.editor gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/dataproc.worker
Remplacez les éléments suivants :
-
PROJECT_ID
: nom du projet Google Cloudcible dans lequel importer les métadonnées. SERVICE_ACCOUNT_ID
: compte de service, par exemplemy-service-account@my-project.iam.gserviceaccount.com
.
-
Attribuez les rôles suivants au compte de service au niveau des ressources :
gcloud secrets add-iam-policy-binding SECRET_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/secretmanager.secretaccessor gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/storage.objectUser \ --condition=resource.name.startsWith('projects/_/buckets/BUCKET_ID') gcloud artifacts repositories add-iam-policy-binding REPOSITORY \ --location=REPOSITORY_LOCATION \ --member=SERVICE_ACCOUNT_ID} \ --role=roles/artifactregistry.reader
Remplacez les éléments suivants :
SECRET_ID
: ID du secret qui stocke les identifiants de votre source de données. Il utilise le formatprojects/PROJECT_ID/secrets/SECRET_ID
.BUCKET_ID
: nom du bucket Cloud Storage.REPOSITORY
: dépôt Artifact Registry contenant l'image de connecteur.REPOSITORY_LOCATION
: emplacement Google Cloudoù le dépôt est hébergé.
Attribuez au compte de service qui exécute Workflows le rôle
roles/iam.serviceAccountUser
sur le compte de service qui exécute les jobs par lot Dataproc sans serveur. Vous devez attribuer ce rôle même si vous utilisez le même compte de service pour Workflows et Dataproc sans serveur.gcloud iam service-accounts add-iam-policy-binding \ serviceAccount:SERVICE_ACCOUNT_ID \ --member='SERVICE_ACCOUNT_ID' \ --role='roles/iam.serviceAccountUser'
Si vous utilisez différents comptes de service, la valeur de l'option
--member
correspond au compte de service qui exécute les jobs par lot Dataproc sans serveur.Si vous souhaitez planifier l'exécution du pipeline, attribuez le rôle suivant au compte de service :
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="SERVICE_ACCOUNT_ID" \ --role=roles/workflows.invoker
Importer les métadonnées
Pour importer des métadonnées, créez et exécutez un workflow qui exécute le pipeline de connectivité gérée. Vous pouvez également créer une planification pour exécuter le pipeline.
Console
Créez le workflow. Fournissez les informations suivantes :
- Compte de service : compte de service que vous avez configuré dans la section Rôles requis de ce document.
Chiffrement : sélectionnez Google-managed encryption key.
Définissez le workflow en fournissant le fichier de définition suivant :
Pour exécuter le pipeline à la demande, exécutez le workflow.
Indiquez les arguments d'exécution suivants :
Remplacez les éléments suivants :
-
PROJECT_ID
: nom du projet Google Cloudcible dans lequel importer les métadonnées. -
LOCATION_ID
: emplacement Google Cloud cible où s'exécuteront les jobs d'importation de métadonnées et Dataproc sans serveur, et où les métadonnées seront importées. -
ENTRY_GROUP_ID
: ID du groupe d'entrées dans lequel importer les métadonnées. L'ID du groupe d'entrées peut contenir des lettres minuscules, des chiffres et des traits d'union.Le nom de ressource complet de ce groupe d'entrées est
projects/PROJECT_ID/locations/LOCATION_ID/entryGroups/ENTRY_GROUP_ID
. -
CREATE_ENTRY_GROUP_BOOLEAN
: si vous souhaitez que le pipeline crée le groupe d'entrées s'il n'existe pas déjà dans votre projet, définissez cette valeur surtrue
. -
BUCKET_ID
: nom du bucket Cloud Storage dans lequel stocker le fichier d'importation de métadonnées généré par le connecteur. Chaque exécution de workflow crée un dossier. -
SERVICE_ACCOUNT_ID
: compte de service que vous avez configuré dans la section Rôles requis de ce document. Le compte de service exécute le connecteur dans Dataproc sans serveur. -
ADDITIONAL_CONNECTOR_ARGUMENTS
: liste d'arguments supplémentaires à transmettre au connecteur. Pour obtenir des exemples, consultez Développer un connecteur personnalisé pour l'importation de métadonnées. Placez chaque argument entre guillemets doubles et séparez-les par des virgules. -
CONTAINER_IMAGE
: image du conteneur personnalisé du connecteur hébergé dans Artifact Registry. -
ENTRY_TYPES
: liste des types d'entrées concernés par l'importation, au formatprojects/PROJECT_ID/locations/LOCATION_ID/entryTypes/ENTRY_TYPE_ID
. LeLOCATION_ID
doit correspondre au même emplacementGoogle Cloud que celui dans lequel vous importez les métadonnées, ou être défini surglobal
. -
ASPECT_TYPES
: liste des types d'aspects concernés par l'importation, au formatprojects/PROJECT_ID/locations/LOCATION_ID/aspectTypes/ASPECT_TYPE_ID
. LeLOCATION_ID
doit correspondre au même emplacementGoogle Cloud que celui dans lequel vous importez les métadonnées, ou être défini surglobal
. -
(Facultatif) Pour l'argument
NETWORK_TAGS
, fournissez une liste de tags réseau. -
(Facultatif) Pour l'argument
NETWORK_URI
, indiquez l'URI du réseau VPC qui se connecte à la source de données. Si vous spécifiez un réseau, omettez l'argument "subnetwork". -
(Facultatif) Pour l'argument
SUBNETWORK_URI
, indiquez l'URI du sous-réseau qui se connecte à la source de données. Si vous spécifiez un sous-réseau, omettez l'argument "network".
Selon la quantité de métadonnées que vous importez, l'exécution du pipeline peut prendre plusieurs minutes, voire plus. Pour savoir comment afficher la progression, consultez Accéder aux résultats d'exécution d'un workflow.
Une fois l'exécution du pipeline terminée, vous pouvez rechercher les métadonnées importées dans Dataplex Universal Catalog.
-
(Facultatif) Si vous souhaitez exécuter le pipeline selon une planification, créez-la à l'aide de Cloud Scheduler. Fournissez les informations suivantes :
- Fréquence : expression unix-cron qui définit la planification de l'exécution du pipeline.
- Argument du workflow : arguments d'exécution du connecteur, comme décrit à l'étape précédente.
- Compte de service : compte de service qui gère le planificateur.
gcloud
Enregistrez la définition de charge de travail suivante au format YAML :
Définissez les variables Bash, créez le workflow et, si vous le souhaitez, créez une planification pour exécuter le pipeline :
Remplacez les éléments suivants :
-
PROJECT_ID
: nom du projet Google Cloudcible dans lequel importer les métadonnées. -
LOCATION_ID
: emplacement Google Cloud cible où s'exécuteront les jobs d'importation de métadonnées et Dataproc sans serveur, et où les métadonnées seront importées. -
SERVICE_ACCOUNT_ID
: compte de service que vous avez configuré dans la section Rôles requis de ce document. WORKFLOW_DEFINITION_FILE
: chemin d'accès au fichier YAML de définition du workflow.WORKFLOW_NAME
: nom du workflow.WORKFLOW_ARGUMENTS
: arguments d'exécution à transmettre au connecteur. Les arguments sont au format JSON :Pour Cloud Scheduler, les guillemets doubles dans la chaîne entre guillemets sont échappés avec des barres obliques inverses (\). Par exemple :
--message-body="{\"argument\": \"{\\\"key\\\": \\\"value\\\"}\"}"
.Remplacez les éléments suivants :
-
ENTRY_GROUP_ID
: ID du groupe d'entrées dans lequel importer les métadonnées. L'ID du groupe d'entrées peut contenir des lettres minuscules, des chiffres et des traits d'union.Le nom de ressource complet de ce groupe d'entrées est
projects/PROJECT_ID/locations/LOCATION_ID/entryGroups/ENTRY_GROUP_ID
. -
CREATE_ENTRY_GROUP_BOOLEAN
: si vous souhaitez que le pipeline crée le groupe d'entrées s'il n'existe pas déjà dans votre projet, définissez cette valeur surtrue
. -
BUCKET_ID
: nom du bucket Cloud Storage dans lequel stocker le fichier d'importation de métadonnées généré par le connecteur. Chaque exécution de workflow crée un dossier. -
ADDITIONAL_CONNECTOR_ARGUMENTS
: liste d'arguments supplémentaires à transmettre au connecteur. Pour obtenir des exemples, consultez Développer un connecteur personnalisé pour l'importation de métadonnées. -
CONTAINER_IMAGE
: image du conteneur personnalisé du connecteur hébergé dans Artifact Registry. -
ENTRY_TYPES
: liste des types d'entrées concernés par l'importation, au formatprojects/PROJECT_ID/locations/LOCATION_ID/entryTypes/ENTRY_TYPE_ID
. LeLOCATION_ID
doit correspondre au même emplacementGoogle Cloud que celui dans lequel vous importez les métadonnées, ou être défini surglobal
. -
ASPECT_TYPES
: liste des types d'aspects concernés par l'importation, au formatprojects/PROJECT_ID/locations/LOCATION_ID/aspectTypes/ASPECT_TYPE_ID
. LeLOCATION_ID
doit correspondre au même emplacementGoogle Cloud que celui dans lequel vous importez les métadonnées, ou être défini surglobal
. -
(Facultatif) Pour l'argument
NETWORK_TAGS
, fournissez une liste de tags réseau. -
(Facultatif) Pour l'argument
NETWORK_URI
, indiquez l'URI du réseau VPC qui se connecte à la source de données. Si vous spécifiez un réseau, omettez l'argument "subnetwork". -
(Facultatif) Pour l'argument
SUBNETWORK_URI
, indiquez l'URI du sous-réseau qui se connecte à la source de données. Si vous spécifiez un sous-réseau, omettez l'argument "network".
-
CRON_SCHEDULE_EXPRESSION
: expression cron qui définit la planification de l'exécution du pipeline. Par exemple, pour planifier l'exécution du pipeline à minuit tous les jours, utilisez l'expression0 0 * * *
.
-
Pour exécuter le pipeline à la demande, exécutez le workflow :
Les arguments du workflow sont au format JSON, mais ne sont pas échappés.
Selon la quantité de métadonnées que vous importez, l'exécution du workflow peut prendre plusieurs minutes, voire plus. Pour savoir comment afficher la progression, consultez Accéder aux résultats d'exécution d'un workflow.
Une fois l'exécution du pipeline terminée, vous pouvez rechercher les métadonnées importées dans Dataplex Universal Catalog.
Terraform
Clonez le dépôt
cloud-dataplex
.Le dépôt inclut les fichiers Terraform suivants :
main.tf
: définit les ressources Google Cloud à créer.variables.tf
: déclare les variables.byo-connector.tfvars
: définit les variables de votre pipeline de connectivité gérée.
Modifiez le fichier
.tfvars
pour remplacer les espaces réservés par les informations de votre connecteur.Remplacez les éléments suivants :
-
PROJECT_ID
: nom du projet Google Cloudcible dans lequel importer les métadonnées. -
LOCATION_ID
: emplacement Google Cloud cible où s'exécuteront les jobs d'importation de métadonnées et Dataproc sans serveur, et où les métadonnées seront importées. -
SERVICE_ACCOUNT_ID
: compte de service que vous avez configuré dans la section Rôles requis de ce document. -
CRON_SCHEDULE_EXPRESSION
: expression cron qui définit la planification de l'exécution du pipeline. Par exemple, pour planifier l'exécution du pipeline à minuit tous les jours, utilisez l'expression0 0 * * *
. -
ENTRY_GROUP_ID
: ID du groupe d'entrées dans lequel importer les métadonnées. L'ID du groupe d'entrées peut contenir des lettres minuscules, des chiffres et des traits d'union.Le nom de ressource complet de ce groupe d'entrées est
projects/PROJECT_ID/locations/LOCATION_ID/entryGroups/ENTRY_GROUP_ID
. -
CREATE_ENTRY_GROUP_BOOLEAN
: si vous souhaitez que le pipeline crée le groupe d'entrées s'il n'existe pas déjà dans votre projet, définissez cette valeur surtrue
. -
BUCKET_ID
: nom du bucket Cloud Storage dans lequel stocker le fichier d'importation de métadonnées généré par le connecteur. Chaque exécution de workflow crée un dossier. -
ADDITIONAL_CONNECTOR_ARGUMENTS
: liste d'arguments supplémentaires à transmettre au connecteur. Pour obtenir des exemples, consultez Développer un connecteur personnalisé pour l'importation de métadonnées. Placez chaque argument entre guillemets doubles et séparez-les par des virgules. -
CONTAINER_IMAGE
: image du conteneur personnalisé du connecteur hébergé dans Artifact Registry. -
ENTRY_TYPES
: liste des types d'entrées concernés par l'importation, au formatprojects/PROJECT_ID/locations/LOCATION_ID/entryTypes/ENTRY_TYPE_ID
. LeLOCATION_ID
doit correspondre au même emplacementGoogle Cloud que celui dans lequel vous importez les métadonnées, ou être défini surglobal
. -
ASPECT_TYPES
: liste des types d'aspects concernés par l'importation, au formatprojects/PROJECT_ID/locations/LOCATION_ID/aspectTypes/ASPECT_TYPE_ID
. LeLOCATION_ID
doit correspondre au même emplacementGoogle Cloud que celui dans lequel vous importez les métadonnées, ou être défini surglobal
. -
(Facultatif) Pour l'argument
NETWORK_TAGS
, fournissez une liste de tags réseau. -
(Facultatif) Pour l'argument
NETWORK_URI
, indiquez l'URI du réseau VPC qui se connecte à la source de données. Si vous spécifiez un réseau, omettez l'argument "subnetwork". -
(Facultatif) Pour l'argument
SUBNETWORK_URI
, indiquez l'URI du sous-réseau qui se connecte à la source de données. Si vous spécifiez un sous-réseau, omettez l'argument "network".
-
Initialisez Terraform :
terraform init
Validez Terraform avec votre fichier
.tfvars
:terraform plan --var-file=CONNECTOR_VARIABLES_FILE.tfvars
Remplacez
CONNECTOR_VARIABLES_FILE
par le nom de votre fichier de définitions de variables.Déployez Terraform avec votre fichier
.tfvars
:terraform apply --var-file=CONNECTOR_VARIABLES_FILE.tfvars
Terraform crée un workflow et un job Cloud Scheduler dans le projet spécifié. Workflows exécute le pipeline selon la planification que vous spécifiez.
Selon la quantité de métadonnées que vous importez, l'exécution du workflow peut prendre plusieurs minutes, voire plus. Pour savoir comment afficher la progression, consultez Accéder aux résultats d'exécution d'un workflow.
Une fois l'exécution du pipeline terminée, vous pouvez rechercher les métadonnées importées dans Dataplex Universal Catalog.
Afficher les journaux de jobs
Utilisez Cloud Logging pour afficher les journaux d'un pipeline de connectivité gérée. La charge utile de journal inclut un lien vers les journaux du job par lot Dataproc sans serveur et du job d'importation de métadonnées, le cas échéant. Pour en savoir plus, consultez Afficher les journaux de workflow.
Dépannage
Suivez ces suggestions de dépannage :
- Configurez le niveau de journalisation du job d'importation pour le job de métadonnées afin d'utiliser la journalisation au niveau du débogage au lieu de la journalisation au niveau des informations.
- Consultez les journaux du job par lot Dataproc sans serveur (pour les exécutions du connecteur) et du job d'importation de métadonnées. Pour en savoir plus, consultez Interroger les journaux Dataproc sans serveur pour Spark et Interroger les journaux de job de métadonnées.
- Si une entrée ne peut pas être importée à l'aide du pipeline et que le message d'erreur ne fournit pas suffisamment d'informations, essayez de créer une entrée personnalisée avec les mêmes détails, dans un groupe d'entrées de test. Pour en savoir plus, consultez Créer une entrée personnalisée.
Étapes suivantes
- À propos de la gestion des métadonnées dans Dataplex Universal Catalog
- Développer un connecteur personnalisé pour l'importation de métadonnées