Ce document explique comment importer des métadonnées à partir d'une source tierce dans Dataplex en exécutant un pipeline de connectivité géré dans Workflows.
Pour configurer un pipeline de connectivité géré, 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. Si nécessaire, le pipeline crée également des groupes d'entrées du catalogue Dataplex dans votre projet Google Cloud .
Pour en savoir plus sur la connectivité gérée, consultez la présentation de la connectivité gérée.
Avant de commencer
Avant d'importer des métadonnées, effectuez les tâches de 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 pouvant être importé par Dataplex. Le connecteur est une image Artifact Registry pouvant être exécutée 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 la section 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 un calendrier, 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 cloud privé virtuel (VPC) pour exécuter Dataproc sans serveur pour les charges de travail Spark.
Créez un bucket Cloud Storage pour stocker les fichiers d'importation des métadonnées.
Créez les ressources de catalogue Dataplex 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 et les ressources Google Cloud auxquelles il peut accéder. Vous avez besoin d'un compte de service pour Workflows (pour exécuter le pipeline) et pour Dataproc sans serveur (pour 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 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 : dans le dépôt Artifact Registry contenant l'image du connecteur
- Utilisateur du compte de service : si vous utilisez différents comptes de service, attribuez ce rôle au compte de service qui exécute les workflows sur le compte de service qui exécute les tâches par lot sans serveur Dataproc.
- Demandeur de workflows : si vous souhaitez planifier le 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 au compte de service les rôles suivants au niveau de la ressource:
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 du connecteur.REPOSITORY_LOCATION
: emplacement Google Cloudoù le dépôt est hébergé.
Accordez au compte de service exécutant des workflows le rôle
roles/iam.serviceAccountUser
sur le compte de service exécutant les tâches par lot Dataproc sans serveur. Vous devez attribuer ce rôle, même si vous utilisez le même compte de service pour les 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'indicateur
--member
est le compte de service exécutant les tâches par lot Dataproc sans serveur.Si vous souhaitez planifier le pipeline, attribuez au compte de service le rôle suivant:
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é. Si vous le souhaitez, vous pouvez également créer un calendrier d'exécution du 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 gérée par Google fournie par Google Cloud.
Définir le workflow: fournissez 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 cible Google Cloud où les tâches Dataproc sans serveur et d'importation de métadonnées s'exécuteront, et où les métadonnées seront importées. -
ENTRY_GROUP_ID
: ID du groupe d'entrée dans lequel importer les métadonnées. L'ID du groupe d'entrée peut contenir des lettres minuscules, des chiffres et des traits d'union.Le nom complet de la ressource 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ée 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 de conteneur personnalisée du connecteur hébergée 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
.LOCATION_ID
doit correspondre à l'emplacementGoogle Cloud dans lequel vous importez les métadonnées ou àglobal
. -
ASPECT_TYPES
: liste des types d'aspects concernés par l'importation, au formatprojects/PROJECT_ID/locations/LOCATION_ID/aspectTypes/ASPECT_TYPE_ID
.LOCATION_ID
doit correspondre à l'emplacementGoogle Cloud dans lequel vous importez les métadonnées ou àglobal
. -
Facultatif: pour l'argument
NETWORK_TAGS
, fournissez une liste de tags réseau. -
Facultatif: Pour l'argument
NETWORK_URI
, fournissez l'URI du réseau VPC qui se connecte à la source de données. Si vous fournissez un réseau, omettez l'argument de sous-réseau. -
Facultatif: Pour l'argument
SUBNETWORK_URI
, fournissez l'URI du sous-réseau qui se connecte à la source de données. Si vous fournissez un sous-réseau, omettez l'argument de réseau.
Selon la quantité de métadonnées que vous importez, l'exécution du pipeline peut prendre plusieurs minutes ou plus. Pour savoir comment afficher la progression, consultez Accéder aux résultats d'exécution du workflow.
Une fois l'exécution du pipeline terminée, vous pouvez rechercher les métadonnées importées dans le catalogue Dataplex.
-
Facultatif: Si vous souhaitez exécuter le pipeline selon un calendrier, créez un calendrier à l'aide de Cloud Scheduler. Fournissez les informations suivantes :
- Fréquence: expression unix-cron qui définit la planification d'exécution du pipeline.
- Argument de workflow: arguments d'exécution du connecteur, comme décrit à l'étape précédente.
- Compte de service: compte de service. Le compte de service gère le planificateur.
gcloud
Enregistrez la définition de charge de travail suivante en tant que fichier YAML:
Définissez des variables Bash, créez le workflow et, si vous le souhaitez, créez une planification pour l'exécution du pipeline:
Remplacez les éléments suivants :
-
PROJECT_ID
: nom du projet Google Cloudcible dans lequel importer les métadonnées. -
LOCATION_ID
: emplacement cible Google Cloud où les tâches Dataproc sans serveur et d'importation de métadonnées s'exécuteront, 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ée dans lequel importer les métadonnées. L'ID du groupe d'entrée peut contenir des lettres minuscules, des chiffres et des traits d'union.Le nom complet de la ressource 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ée 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 de conteneur personnalisée du connecteur hébergée 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
.LOCATION_ID
doit correspondre à l'emplacementGoogle Cloud dans lequel vous importez les métadonnées ou àglobal
. -
ASPECT_TYPES
: liste des types d'aspects concernés par l'importation, au formatprojects/PROJECT_ID/locations/LOCATION_ID/aspectTypes/ASPECT_TYPE_ID
.LOCATION_ID
doit correspondre à l'emplacementGoogle Cloud dans lequel vous importez les métadonnées ou àglobal
. -
Facultatif: pour l'argument
NETWORK_TAGS
, fournissez une liste de tags réseau. -
Facultatif: Pour l'argument
NETWORK_URI
, fournissez l'URI du réseau VPC qui se connecte à la source de données. Si vous fournissez un réseau, omettez l'argument de sous-réseau. -
Facultatif: Pour l'argument
SUBNETWORK_URI
, fournissez l'URI du sous-réseau qui se connecte à la source de données. Si vous fournissez un sous-réseau, omettez l'argument de réseau.
-
CRON_SCHEDULE_EXPRESSION
: expression cron qui définit la planification d'exécution du pipeline. Par exemple, pour exécuter la planification à 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 pas échappés.
Selon la quantité de métadonnées que vous importez, l'exécution du workflow peut prendre plusieurs minutes. Pour savoir comment afficher la progression, consultez la section Accéder aux résultats de l'exécution du workflow.
Une fois l'exécution du pipeline terminée, vous pouvez rechercher les métadonnées importées dans le catalogue Dataplex.
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é.
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 cible Google Cloud où les tâches Dataproc sans serveur et d'importation de métadonnées s'exécuteront, 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 d'exécution du pipeline. Par exemple, pour exécuter la planification à minuit tous les jours, utilisez l'expression0 0 * * *
. -
ENTRY_GROUP_ID
: ID du groupe d'entrée dans lequel importer les métadonnées. L'ID du groupe d'entrée peut contenir des lettres minuscules, des chiffres et des traits d'union.Le nom complet de la ressource 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ée 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 de conteneur personnalisée du connecteur hébergée 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
.LOCATION_ID
doit correspondre à l'emplacementGoogle Cloud dans lequel vous importez les métadonnées ou àglobal
. -
ASPECT_TYPES
: liste des types d'aspects concernés par l'importation, au formatprojects/PROJECT_ID/locations/LOCATION_ID/aspectTypes/ASPECT_TYPE_ID
.LOCATION_ID
doit correspondre à l'emplacementGoogle Cloud dans lequel vous importez les métadonnées ou àglobal
. -
Facultatif: pour l'argument
NETWORK_TAGS
, fournissez une liste de tags réseau. -
Facultatif: Pour l'argument
NETWORK_URI
, fournissez l'URI du réseau VPC qui se connecte à la source de données. Si vous fournissez un réseau, omettez l'argument de sous-réseau. -
Facultatif: Pour l'argument
SUBNETWORK_URI
, fournissez l'URI du sous-réseau qui se connecte à la source de données. Si vous fournissez un sous-réseau, omettez l'argument de réseau.
-
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 une tâche Cloud Scheduler dans le projet spécifié. Workflows exécute le pipeline à la fréquence que vous spécifiez.
Selon la quantité de métadonnées que vous importez, l'exécution du workflow peut prendre plusieurs minutes. Pour savoir comment afficher la progression, consultez la section Accéder aux résultats de l'exécution du workflow.
Une fois l'exécution du pipeline terminée, vous pouvez rechercher les métadonnées importées dans le catalogue Dataplex.
Afficher les journaux de jobs
Utilisez Cloud Logging pour afficher les journaux d'un pipeline de connectivité géré. La charge utile de journalisation inclut un lien vers les journaux de la job par lot Dataproc sans serveur et de la tâche d'importation de métadonnées, le cas échéant. Pour en savoir plus, consultez la section Afficher les journaux de workflow.
Dépannage
Suivez les suggestions de dépannage ci-dessous:
- Configurez le niveau de journalisation de la tâche d'importation pour la tâche de métadonnées afin qu'elle utilise la journalisation au niveau du débogage au lieu de la journalisation au niveau des informations.
- Examinez les journaux de la job par lot Dataproc sans serveur (pour les exécutions de connecteurs) et de la tâche d'importation de métadonnées. Pour en savoir plus, consultez les pages Interroger les journaux Dataproc sans serveur pour Spark et Interroger les journaux de tâches 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 informations, dans un groupe d'entrées de test. Pour en savoir plus, consultez la section Créer une entrée personnalisée.
Étape suivante
- Présentation du catalogue Dataplex.
- Développer un connecteur personnalisé pour l'importation de métadonnées