Questo documento descrive come importare i metadati da un'origine di terze parti in Dataplex Universal Catalog eseguendo una pipeline di connettività gestita in Workflows.
Per configurare una pipeline di connettività gestita, devi creare un connettore per l'origine dati. Poi esegui la pipeline in Workflows. La pipeline estrae i metadati dall'origine dati e li importa in Dataplex Universal Catalog. Se necessario, la pipeline crea anche gruppi di voci di Dataplex Universal Catalog nel tuo progetto Google Cloud .
Per saperne di più sulla connettività gestita, consulta Panoramica della connettività gestita.
Prima di iniziare
Prima di importare i metadati, completa le attività descritte in questa sezione.
Crea un connettore
Un connettore estrae i metadati dall'origine dati e genera un file di importazione dei metadati che può essere importato da Dataplex Universal Catalog. Il connettore è un'immagine Artifact Registry che può essere eseguita su Dataproc Serverless.
Crea un connettore personalizzato che estrae i metadati dall'origine di terze parti.
Per un connettore di esempio che puoi utilizzare come modello di riferimento per creare il tuo connettore, consulta Sviluppare un connettore personalizzato per l'importazione dei metadati.
Configura Google Cloud risorse
-
Enable the Workflows, Dataproc, Cloud Storage, Dataplex Universal Catalog, Secret Manager, Artifact Registry, and Cloud Scheduler APIs.
Se non prevedi di eseguire la pipeline in base a una pianificazione, non devi abilitare l'API Cloud Scheduler.
Crea secret in Secret Manager per archiviare le credenziali dell'origine dati di terze parti.
Configura la rete Virtual Private Cloud (VPC) per eseguire i carichi di lavoro Dataproc Serverless per Spark.
Crea un bucket Cloud Storage per archiviare i file di importazione dei metadati.
Crea le seguenti risorse Dataplex Universal Catalog:
Crea tipi di aspetto personalizzati per le voci che vuoi importare.
Crea tipi di voci personalizzati per le voci che vuoi importare.
Ruoli obbligatori
Un account di servizio rappresenta l'identità di un flusso di lavoro e determina le autorizzazioni del flusso di lavoro e le risorse a cui può accedere. Google Cloud Hai bisogno di un account di servizio per Workflows (per eseguire la pipeline) e per Dataproc Serverless (per eseguire il connettore).
Puoi utilizzare il account di servizio Compute Engine predefinito
(PROJECT_NUMBER-compute@developer.gserviceaccount.com
) o creare il tuo service account
(o i tuoi service account) per eseguire la pipeline di connettività gestita.
Console
Nella console Google Cloud , vai alla pagina IAM.
Seleziona il progetto in cui vuoi importare i metadati.
Fai clic su
Concedi accesso, quindi inserisci l'indirizzo email del account di servizio.Assegna i seguenti ruoli al account di servizio:
- Writer log
- Dataplex Entry Group Owner
- Dataplex Metadata Job Owner
- Dataplex Catalog Editor
- Editor Dataproc
- Dataproc Worker
- Funzione di accesso ai secret di Secret Manager: sul secret che archivia le credenziali per l'origine dati
- Storage Object User: sul bucket Cloud Storage
- Lettore Artifact Registry: nel repository Artifact Registry che contiene l'immagine del connettore
- Utente service account: se utilizzi service account diversi, concedi questo ruolo al account di servizio che esegue Workflows sul account di servizio che esegue i job batch Dataproc Serverless
- Workflows Invoker: se vuoi pianificare la pipeline
Salva le modifiche.
gcloud
Concedi ruoli al account di servizio. Esegui questi comandi:
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
Sostituisci quanto segue:
-
PROJECT_ID
: il nome del progetto di destinazione Google Cloud in cui importare i metadati. SERVICE_ACCOUNT_ID
: il account di servizio, ad esempiomy-service-account@my-project.iam.gserviceaccount.com
.
-
Concedi all'account di servizio i seguenti ruoli a livello di risorsa:
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
Sostituisci quanto segue:
SECRET_ID
: l'ID del secret che archivia le credenziali per l'origine dati. Utilizza il formatoprojects/PROJECT_ID/secrets/SECRET_ID
.BUCKET_ID
: il nome del bucket Cloud Storage.REPOSITORY
: il repository Artifact Registry che contiene l'immagine del connettore.REPOSITORY_LOCATION
: la Google Cloud posizione in cui è ospitato il repository.
Concedi all'account di servizio che esegue Workflows il ruolo
roles/iam.serviceAccountUser
nell'account di servizio che esegue i job batch Dataproc Serverless. Devi concedere questo ruolo anche se utilizzi lo stesso account di servizio sia per Workflows che per Dataproc Serverless.gcloud iam service-accounts add-iam-policy-binding \ serviceAccount:SERVICE_ACCOUNT_ID \ --member='SERVICE_ACCOUNT_ID' \ --role='roles/iam.serviceAccountUser'
Se utilizzi service account diversi, il valore del flag
--member
è il account di servizio che esegue i job batch Dataproc Serverless.Se vuoi pianificare la pipeline, concedi al account di servizio il seguente ruolo:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="SERVICE_ACCOUNT_ID" \ --role=roles/workflows.invoker
Importa metadati
Per importare i metadati, crea ed esegui un flusso di lavoro che esegue la pipeline di connettività gestita. Se vuoi, puoi anche creare una pianificazione per l'esecuzione della pipeline.
Console
Crea il flusso di lavoro. Fornisci le seguenti informazioni:
- Service account: il account di servizio che hai configurato nella sezione Ruoli richiesti di questo documento.
Crittografia: seleziona Google-managed encryption key.
Definisci flusso di lavoro: fornisci il seguente file di definizione:
Per eseguire la pipeline on demand, esegui il flusso di lavoro.
Fornisci i seguenti argomenti di runtime:
Sostituisci quanto segue:
-
PROJECT_ID
: il nome del progetto di destinazione Google Cloud in cui importare i metadati. -
LOCATION_ID
: la posizione Google Cloud di destinazione in cui verranno eseguiti i job di importazione di Dataproc Serverless e dei metadati e in cui verranno importati i metadati. -
ENTRY_GROUP_ID
: l'ID del gruppo di voci in cui importare i metadati. L'ID gruppo di voci può contenere lettere minuscole, numeri e trattini.Il nome completo della risorsa di questo gruppo di voci è
projects/PROJECT_ID/locations/LOCATION_ID/entryGroups/ENTRY_GROUP_ID
. -
CREATE_ENTRY_GROUP_BOOLEAN
: se vuoi che la pipeline crei il gruppo di voci se non esiste già nel tuo progetto, imposta questo valore sutrue
. -
BUCKET_ID
: il nome del bucket Cloud Storage in cui archiviare il file di importazione dei metadati generato dal connettore. Ogni esecuzione del flusso di lavoro crea una nuova cartella. -
SERVICE_ACCOUNT_ID
: il account di servizio che hai configurato nella sezione Ruoli richiesti di questo documento. Il account di servizio esegue il connettore in Dataproc Serverless. -
ADDITIONAL_CONNECTOR_ARGUMENTS
: un elenco di argomenti aggiuntivi da passare al connettore. Per esempi, vedi Sviluppare un connettore personalizzato per l'importazione dei metadati. Racchiudi ogni argomento tra virgolette doppie e separa gli argomenti con virgole. -
CONTAINER_IMAGE
: l'immagine container personalizzata del connettore ospitato in Artifact Registry. -
ENTRY_TYPES
: un elenco di tipi di voci inclusi nell'ambito dell'importazione, nel formatoprojects/PROJECT_ID/locations/LOCATION_ID/entryTypes/ENTRY_TYPE_ID
.LOCATION_ID
deve essere la stessa posizioneGoogle Cloud in cui importi i metadati oglobal
. -
ASPECT_TYPES
: un elenco di tipi di aspetto inclusi nell'ambito dell'importazione, nel formatoprojects/PROJECT_ID/locations/LOCATION_ID/aspectTypes/ASPECT_TYPE_ID
.LOCATION_ID
deve essere la stessa posizioneGoogle Cloud in cui importi i metadati oglobal
. -
(Facoltativo) Per l'argomento
NETWORK_TAGS
, fornisci un elenco di tag di rete. -
(Facoltativo) Per l'argomento
NETWORK_URI
, fornisci l'URI della rete VPC che si connette all'origine dati. Se fornisci una rete, ometti l'argomento della subnet. -
(Facoltativo) Per l'argomento
SUBNETWORK_URI
, fornisci l'URI della subnet che si connette all'origine dati. Se fornisci una subnet, ometti l'argomento di rete.
A seconda della quantità di metadati che importi, la pipeline potrebbe richiedere diversi minuti o più per essere eseguita. Per saperne di più su come visualizzare l'avanzamento, consulta Accedere ai risultati dell'esecuzione del flusso di lavoro.
Al termine dell'esecuzione della pipeline, puoi cercare i metadati importati in Dataplex Universal Catalog.
-
(Facoltativo) Se vuoi eseguire la pipeline in base a una pianificazione, crea una pianificazione utilizzando Cloud Scheduler. Fornisci le seguenti informazioni:
- Frequenza: un'espressione unix-cron che definisce la pianificazione per l'esecuzione della pipeline.
- Argomento del flusso di lavoro: gli argomenti di runtime per il connettore, come descritto nel passaggio precedente.
- Service account: il account di servizio. L'account di servizio gestisce lo scheduler.
gcloud
Salva la seguente definizione del workload come file YAML:
Definisci le variabili Bash, crea il flusso di lavoro e, facoltativamente, crea una pianificazione per l'esecuzione della pipeline:
Sostituisci quanto segue:
-
PROJECT_ID
: il nome del progetto di destinazione Google Cloud in cui importare i metadati. -
LOCATION_ID
: la posizione Google Cloud di destinazione in cui verranno eseguiti i job di importazione di Dataproc Serverless e dei metadati e in cui verranno importati i metadati. -
SERVICE_ACCOUNT_ID
: il account di servizio che hai configurato nella sezione Ruoli richiesti di questo documento. WORKFLOW_DEFINITION_FILE
: il percorso del file YAML di definizione del workflow.WORKFLOW_NAME
: il nome del flusso di lavoro.WORKFLOW_ARGUMENTS
: gli argomenti di runtime da passare al connettore. Gli argomenti sono in formato JSON:Per Cloud Scheduler, le virgolette doppie all'interno della stringa tra virgolette vengono sottoposte a escape utilizzando le barre rovesciate (\). Ad esempio:
--message-body="{\"argument\": \"{\\\"key\\\": \\\"value\\\"}\"}"
.Sostituisci quanto segue:
-
ENTRY_GROUP_ID
: l'ID del gruppo di voci in cui importare i metadati. L'ID gruppo di voci può contenere lettere minuscole, numeri e trattini.Il nome completo della risorsa di questo gruppo di voci è
projects/PROJECT_ID/locations/LOCATION_ID/entryGroups/ENTRY_GROUP_ID
. -
CREATE_ENTRY_GROUP_BOOLEAN
: se vuoi che la pipeline crei il gruppo di voci se non esiste già nel tuo progetto, imposta questo valore sutrue
. -
BUCKET_ID
: il nome del bucket Cloud Storage in cui archiviare il file di importazione dei metadati generato dal connettore. Ogni esecuzione del flusso di lavoro crea una nuova cartella. -
ADDITIONAL_CONNECTOR_ARGUMENTS
: un elenco di argomenti aggiuntivi da passare al connettore. Per esempi, vedi Sviluppare un connettore personalizzato per l'importazione dei metadati. -
CONTAINER_IMAGE
: l'immagine container personalizzata del connettore ospitato in Artifact Registry. -
ENTRY_TYPES
: un elenco di tipi di voci inclusi nell'ambito dell'importazione, nel formatoprojects/PROJECT_ID/locations/LOCATION_ID/entryTypes/ENTRY_TYPE_ID
.LOCATION_ID
deve essere la stessa posizioneGoogle Cloud in cui importi i metadati oglobal
. -
ASPECT_TYPES
: un elenco di tipi di aspetto inclusi nell'ambito dell'importazione, nel formatoprojects/PROJECT_ID/locations/LOCATION_ID/aspectTypes/ASPECT_TYPE_ID
.LOCATION_ID
deve essere la stessa posizioneGoogle Cloud in cui importi i metadati oglobal
. -
(Facoltativo) Per l'argomento
NETWORK_TAGS
, fornisci un elenco di tag di rete. -
(Facoltativo) Per l'argomento
NETWORK_URI
, fornisci l'URI della rete VPC che si connette all'origine dati. Se fornisci una rete, ometti l'argomento della subnet. -
(Facoltativo) Per l'argomento
SUBNETWORK_URI
, fornisci l'URI della subnet che si connette all'origine dati. Se fornisci una subnet, ometti l'argomento di rete.
-
CRON_SCHEDULE_EXPRESSION
: un'espressione cron che definisce la pianificazione di esecuzione della pipeline. Ad esempio, per eseguire la pianificazione a mezzanotte ogni giorno, utilizza l'espressione0 0 * * *
.
-
Per eseguire la pipeline on demand, esegui il flusso di lavoro:
Gli argomenti del flusso di lavoro sono in formato JSON, ma non sono preceduti da caratteri di escape.
A seconda della quantità di metadati che importi, il flusso di lavoro potrebbe richiedere diversi minuti o più tempo per essere eseguito. Per saperne di più su come visualizzare l'avanzamento, consulta Accedere ai risultati dell'esecuzione del flusso di lavoro.
Al termine dell'esecuzione della pipeline, puoi cercare i metadati importati in Dataplex Universal Catalog.
Terraform
Clona il repository
cloud-dataplex
.Il repository include i seguenti file Terraform:
main.tf
: definisce le risorse Google Cloud da creare.variables.tf
: dichiara le variabili.byo-connector.tfvars
: definisce le variabili per la pipeline di connettività gestita.
Modifica il file
.tfvars
per sostituire i segnaposto con le informazioni per il tuo connettore.Sostituisci quanto segue:
-
PROJECT_ID
: il nome del progetto di destinazione Google Cloud in cui importare i metadati. -
LOCATION_ID
: la posizione Google Cloud di destinazione in cui verranno eseguiti i job di importazione di Dataproc Serverless e dei metadati e in cui verranno importati i metadati. -
SERVICE_ACCOUNT_ID
: il account di servizio che hai configurato nella sezione Ruoli richiesti di questo documento. -
CRON_SCHEDULE_EXPRESSION
: un'espressione cron che definisce la pianificazione di esecuzione della pipeline. Ad esempio, per eseguire la pianificazione a mezzanotte ogni giorno, utilizza l'espressione0 0 * * *
. -
ENTRY_GROUP_ID
: l'ID del gruppo di voci in cui importare i metadati. L'ID gruppo di voci può contenere lettere minuscole, numeri e trattini.Il nome completo della risorsa di questo gruppo di voci è
projects/PROJECT_ID/locations/LOCATION_ID/entryGroups/ENTRY_GROUP_ID
. -
CREATE_ENTRY_GROUP_BOOLEAN
: se vuoi che la pipeline crei il gruppo di voci se non esiste già nel tuo progetto, imposta questo valore sutrue
. -
BUCKET_ID
: il nome del bucket Cloud Storage in cui archiviare il file di importazione dei metadati generato dal connettore. Ogni esecuzione del flusso di lavoro crea una nuova cartella. -
ADDITIONAL_CONNECTOR_ARGUMENTS
: un elenco di argomenti aggiuntivi da passare al connettore. Per esempi, vedi Sviluppare un connettore personalizzato per l'importazione dei metadati. Racchiudi ogni argomento tra virgolette doppie e separa gli argomenti con virgole. -
CONTAINER_IMAGE
: l'immagine container personalizzata del connettore ospitato in Artifact Registry. -
ENTRY_TYPES
: un elenco di tipi di voci inclusi nell'ambito dell'importazione, nel formatoprojects/PROJECT_ID/locations/LOCATION_ID/entryTypes/ENTRY_TYPE_ID
.LOCATION_ID
deve essere la stessa posizioneGoogle Cloud in cui importi i metadati oglobal
. -
ASPECT_TYPES
: un elenco di tipi di aspetto inclusi nell'ambito dell'importazione, nel formatoprojects/PROJECT_ID/locations/LOCATION_ID/aspectTypes/ASPECT_TYPE_ID
.LOCATION_ID
deve essere la stessa posizioneGoogle Cloud in cui importi i metadati oglobal
. -
(Facoltativo) Per l'argomento
NETWORK_TAGS
, fornisci un elenco di tag di rete. -
(Facoltativo) Per l'argomento
NETWORK_URI
, fornisci l'URI della rete VPC che si connette all'origine dati. Se fornisci una rete, ometti l'argomento della subnet. -
(Facoltativo) Per l'argomento
SUBNETWORK_URI
, fornisci l'URI della subnet che si connette all'origine dati. Se fornisci una subnet, ometti l'argomento di rete.
-
Inizializza Terraform:
terraform init
Convalida Terraform con il file
.tfvars
:terraform plan --var-file=CONNECTOR_VARIABLES_FILE.tfvars
Sostituisci
CONNECTOR_VARIABLES_FILE
con il nome del file di definizioni delle variabili.Esegui il deployment di Terraform con il file
.tfvars
:terraform apply --var-file=CONNECTOR_VARIABLES_FILE.tfvars
Terraform crea un flusso di lavoro e un job Cloud Scheduler nel progetto specificato. Workflows esegue la pipeline in base alla pianificazione specificata.
A seconda della quantità di metadati che importi, il flusso di lavoro potrebbe richiedere diversi minuti o più tempo per essere eseguito. Per saperne di più su come visualizzare l'avanzamento, consulta Accedere ai risultati dell'esecuzione del flusso di lavoro.
Al termine dell'esecuzione della pipeline, puoi cercare i metadati importati in Dataplex Universal Catalog.
Visualizza i log dei job
Utilizza Cloud Logging per visualizzare i log di una pipeline di connettività gestita. Il payload del log include un link ai log per il job batch Dataproc Serverless e il job di importazione dei metadati, a seconda dei casi. Per saperne di più, vedi Visualizzare i log del flusso di lavoro.
Risoluzione dei problemi
Prova a seguire questi suggerimenti per la risoluzione dei problemi:
- Configura il livello di log del job di importazione per il job dei metadati in modo da utilizzare la registrazione a livello di debug anziché la registrazione a livello di informazioni.
- Esamina i log del job batch Dataproc Serverless (per le esecuzioni del connettore) e del job di importazione dei metadati. Per saperne di più, vedi Eseguire query sui log di Dataproc Serverless per Spark e Eseguire query sui log dei job dei metadati.
- Se una voce non può essere importata utilizzando la pipeline e il messaggio di errore non fornisce informazioni sufficienti, prova a creare una voce personalizzata con gli stessi dettagli, in un gruppo di voci di test. Per ulteriori informazioni, vedi Creare una voce personalizzata.
Passaggi successivi
- Informazioni sulla gestione del catalogo dei dati in Dataplex Universal Catalog
- Sviluppare un connettore personalizzato per l'importazione dei metadati