Dataplex supporta la pianificazione dell'esecuzione di codice personalizzato come esecuzione singola, in base a una pianificazione regolare o on demand. La funzionalità On demand è in anteprima ed è disponibile solo tramite API. Puoi pianificare le trasformazioni dei dati dei clienti utilizzando Spark (Java), PySpark (limitato alla versione 3.2 di Spark) o Spark SQL. Dataplex esegue il codice utilizzando l'elaborazione Spark serverless e un server scheduler.
Terminologia
- Attività
- Un'attività Dataplex rappresenta il lavoro che vuoi Dataplex eseguire in base a una pianificazione. Incapsula il tuo codice, parametri e la programmazione.
- Job
Un job rappresenta una singola esecuzione di un'attività Dataplex. Per Ad esempio, se un'attività è pianificata per essere eseguita ogni giorno, Dataplex creano un lavoro ogni giorno.
Per i job creati a partire dal 10 maggio 2023, il campo Trigger mostra il tipo di trigger di esecuzione del job.
Di seguito sono riportati i tipi di trigger di esecuzione del job:
RUN_REQUEST: indica che il job è stato eseguito a causa della chiamata al metodo API
RunTask
.TASK_CONFIG: indica che il job è stato eseguito a causa
TriggerSpec
configurazione dell'attività.
Modalità di pianificazione
Dataplex supporta le seguenti modalità di pianificazione:
- Esegui una volta
- Utilizza questa modalità per eseguire l'attività una sola volta. Puoi scegliere di eseguirla subito o in un momento prestabilito in futuro. Se esegui l'attività l'avvio dell'esecuzione potrebbe richiedere fino a due minuti.
- Esegui in base a una programmazione
- Usa questa modalità per eseguire l'attività con una frequenza ripetuta. Le ripetizioni supportate sono giornaliere, settimanali, mensili o personalizzate.
- Esegui on demand
Utilizza questa modalità per eseguire on demand un'attività creata in precedenza. La modalità di esecuzione on demand è supportata solo dall'API
RunTask
. Quando il job viene eseguito on demand, Dataplex utilizza i parametri esistenti. per creare un job. Puoi specificare gli argomentiExecutionSpec
e le etichette per eseguire il job.
Prima di iniziare
Abilitare l'API Dataproc.
Abilita l'accesso privato Google per la tua rete e la tua subnet. Abilita l'accesso privato Google sulla rete che utilizzi con le attività Dataplex. Se non specifichi una rete o una subnet durante la creazione dell'attività Dataplex, Dataplex utilizza la subnet predefinita e devi abilitare l'accesso privato Google per la subnet predefinita.
Crea un account di servizio. È necessario un account di servizio per pianificare qualsiasi attività Dataplex. L'account di servizio deve appartenere al progetto in cui esegui le attività. L'account di servizio deve avere le seguenti autorizzazioni:
Accesso ai dati di BigQuery e Cloud Storage in fase di elaborazione.
Ruolo worker Dataproc l'autorizzazione per il progetto in cui esegui l'attività.
Se l'attività deve leggere o aggiornare l'istanza Dataproc Metastore collegata al lake, l'account di servizio deve disporre del ruolo Visualizzatore o Editor Dataproc Metastore. Questo ruolo deve essere concesso nel progetto in cui è configurato il lago Dataplex.
Se l'attività è un job Spark SQL, devi concedere all'account di servizio il ruolo sviluppatore Dataplex. Questo ruolo deve essere concesso nel nel progetto in cui è configurato il lake Dataplex.
Se l'attività è un job Spark SQL, devi disporre delle autorizzazioni di amministratore Cloud Storage sul bucket in cui vengono scritti i risultati.
Per pianificare ed eseguire attività Spark SQL e Spark personalizzate, devi disporre il lettore metadati Dataplex (
roles/dataplex.metadataReader
), Visualizzatore Dataplex (roles/dataplex.viewer
), e utente metadati Dataproc Metastore (roles/metastore.metadataUser
) ruoli IAM nell'account di servizio.
Concedi all'utente che invia il job il ruolo Utente account di servizio (
roles/iam.serviceAccountUser
) sull'account di servizio. Per le istruzioni, vedi Gestire l'accesso agli account di servizio.Concedi all'account di servizio del lake Dataplex le autorizzazioni per utilizzare il l'account di servizio. Puoi trovare il servizio lake Dataplex nella pagina Lake Details (Dettagli lake) della console Google Cloud.
Se il progetto contenente il lake Dataplex è diverso da quello in cui deve essere eseguita l'attività, concedi all'account di servizio del lake Dataplex il ruolo Editor Dataproc nel progetto in cui esegui l'attività.
Posiziona gli elementi del codice richiesti (file JAR, Python o script SQL) o i file archiviati (
.jar
,.tar
,.tar.gz
,.tgz
,.zip
) in un percorso Cloud Storage.Assicurati che l'account di servizio disponga dell'
storage.objects.get
richiesto autorizzazione al bucket Cloud Storage in cui è archiviato il codice artefatti.
Pianifica un'attività Spark (Java o Python)
Console
Nella console Google Cloud, vai alla pagina Dataplex:
Vai alla vista Process.
Fai clic su Crea attività.
In Crea attività Spark personalizzata, fai clic su Crea attività.
Scegli un lake Dataplex.
Specifica un nome per l'attività.
Crea un ID per l'attività.
Nella sezione Configurazione attività, per Tipo, seleziona Spark o PySpark.
Inserisci gli argomenti pertinenti.
Nel campo Account di servizio, inserisci un account di servizio utente con cui l'attività Spark personalizzata può essere eseguita.
Fai clic su Continua.
(Facoltativo) Imposta pianificazione: seleziona Esegui una volta o Ripeti. Compila i campi obbligatori.
Fai clic su Continua.
(Facoltativo) Personalizza le risorse e Aggiungi altre impostazioni.
Fai clic su Crea.
gcloud
Puoi pianificare un'attività Spark (Java/Python) utilizzando il comando gcloud CLI. Nella tabella seguente sono elencati i parametri obbligatori e facoltativi per usa:
Parametro | Descrizione |
---|---|
--lake |
L'ID del lake per la risorsa lake del servizio Dataplex. |
--location |
La località del servizio Dataplex. |
--spark-main-class |
La classe principale del driver. Il file jar che
contiene il corso deve essere nel valore predefinito CLASSPATH .
|
--spark-main-jar-file-uri |
L'URI Cloud Storage del file jar contenente
la classe principale.
|
--spark-archive-uris |
(Facoltativo) URI Cloud Storage degli archivi da estrarre nella directory di lavoro di ciascun esecutore. Tipi di file supportati:
.jar , .tar , .tar.gz
.tgz e .zip .
|
--spark-file-uris |
(Facoltativo) Gli URI Cloud Storage dei file da inserire nella di lavoro di ogni esecutore. |
--batch-executors-count |
(Facoltativo) Il numero totale di esecutori del job. Il valore predefinito è 2. |
--batch-max-executors-count |
(Facoltativo) Il numero massimo di esecutori configurabili. Il valore predefinito è 1000. Se batch-max-executors-count è maggiore di
batch-executors-count , Dataplex attiva la scalabilità automatica.
|
--container-image-java-jars |
(Facoltativo) Un elenco di JARS Java da aggiungere al classpath. L'input valido include gli URI Cloud Storage per i file JAR binari. Ad esempio, gs://bucket-name/my/path/to/file.jar .
|
--container-image-properties |
(Facoltativo) Chiavi delle proprietà, specificate in un formato prefix:property .Ad esempio, core:hadoop.tmp.dir .Per ulteriori informazioni, consulta Proprietà del cluster. |
--vpc-network-tags |
(Facoltativo) Un elenco di tag di rete da applicare al job. |
--vpc-network-name |
(Facoltativo) La rete Virtual Private Cloud in cui viene eseguito il job. Di
per impostazione predefinita, Dataplex utilizza la rete VPC
denominato Default all'interno del progetto. Devi utilizzare solo uno dei seguenti elementi --vpc-network-name o --vpc-sub-network-name .
|
--vpc-sub-network-name |
(Facoltativo) La subnet VPC in cui viene eseguito il job.
Devi utilizzare solo --vpc-sub-network-name o --vpc-network-name .
|
--trigger-type |
Tipo di trigger dell'attività specificata dall'utente. I valori devono essere uno dei seguenti:ON_DEMAND : l'attività viene eseguita una volta poco dopo
per la creazione di contenuti.RECURRING : l'attività viene eseguita periodicamente in base a una pianificazione.
|
--trigger-start-time |
(Facoltativo) L'ora della prima esecuzione dell'attività. Il formato
è "{year}-{month}-{day}T{hour}:{min}:{sec}Z", dove il fuso orario è
UTC. Ad esempio, "2017-01-15T01:30:00Z" codifica 01:30 UTC il 15 gennaio 2017. Se questo valore non è specificato, l'attività verrà eseguita
dopo l'invio se il tipo di attivatore è ON_DEMAND o
secondo la pianificazione specificata se il tipo di attivatore è
RECURRING .
|
--trigger-disabled |
(Facoltativo) Impedisce l'esecuzione dell'attività. Questo parametro non
annullare le attività già in esecuzione, ma disattivare temporaneamente
RECURRING attività.
|
--trigger-max-retires |
(Facoltativo) Il numero di tentativi di ripetizione prima dell'interruzione. Imposta il valore su zero per non tentare mai di ripetere un'attività non riuscita. |
--trigger-schedule |
Pianificazione Cron per che eseguono attività periodicamente. |
--description |
(Facoltativo) Descrizione dell'attività. |
--display-name |
(Facoltativo) Nome visualizzato dell'attività. |
--labels |
(Facoltativo) Elenco di coppie di etichette KEY=VALUE da aggiungere. |
--execution-args |
(Facoltativo) Gli argomenti da passare all'attività. Gli argomenti possono essere un insieme di
coppie chiave-valore. Puoi passare un elenco di coppie chiave-valore separato da virgole come
argomenti di esecuzione. Per passare argomenti posizionali, imposta la chiave su
TASK_ARGS e imposta il valore su una stringa separata da virgole di
tutti gli argomenti posizionali. Per utilizzare un delimitatore diverso da una virgola, consulta la sezione relativa alla scrittura in codice.Se key-value e gli argomenti posizionali vengono passati insieme,TASK_ARGS verrà passato come ultimo argomento.
|
--execution-service-account |
Account di servizio da utilizzare per eseguire un'attività. |
--max-job-execution-lifetime |
(Facoltativo) La durata massima prima della scadenza dell'esecuzione del job. |
--container-image |
(Facoltativo) Immagine container personalizzata per l'ambiente di runtime del job. Se non viene specificato, verrà utilizzata un'immagine contenitore predefinita. |
--kms-key |
(Facoltativo) La chiave Cloud KMS da utilizzare per la crittografia, nel formato: projects/{project_number}/locations/{location_id}/keyRings/{key-ring-name}/cryptoKeys/{key-name}
|
Esempio di Java:
glcoud dataplex tasks create --project=<project-name> --location=<location> --lake=<lake-id> --trigger-type=ON_DEMAND –spark-main-jar-file-uri=<gcs location to java file> --execution-service-account=<service-account-email> --trigger-start-time=<timestamp after which job starts ex. 2099-01-01T00:00:00Z> --labels=key1=value1,key2=value3,key3=value3 --execution-args=arg1=value1,arg2=value3,arg3=value3 <task-id>
Esempio di PySpark:
gcloud dataplex tasks create --project=<project-name> --location=<location> --lake=<lake-id> --trigger-type=RECURRING --trigger-schedule=<Cron schedule https://en.wikipedia.org/wiki/Cron> --spark-python-script-file=<gcs location to python script> --execution-service-account=<service-account-email> --execution-args=^::^arg1=value1::arg2=value2::TASK_ARGS="pos-arg1, pos-arg2" <task-id>
REST
Per creare un'attività, utilizza Explorer API.
Pianificare un'attività Spark SQL
gcloud
Per pianificare un'attività Spark SQL, esegui lo stesso comando gcloud CLI indicato nell'articolo Pianificare un'attività Spark (Java o Python), con i seguenti parametri aggiuntivi:
Parametro | Descrizione |
---|---|
--spark-sql-script |
Il testo della query SQL. spark-sql-script o
Il campo spark-sql-script-file è obbligatorio. |
--spark-sql-script-file |
Un riferimento a un file di query. Questo valore può essere l'URI Cloud Storage
del file di query o il percorso dei contenuti dello script SQL.
spark-sql-script o
Il campo spark-sql-script-file è obbligatorio. |
--execution-args |
Per le attività Spark SQL, i seguenti argomenti sono obbligatori e devono essere passati come argomenti posizionali:--output_location, <GCS uri of the output directory> --output_format, <output file format> .I formati supportati sono file CSV, file JSON, parquet e orc. |
gcloud dataplex tasks create --project=<project-name> --location=<location> --lake=<lake-id> --execution-service-account=<service-account-email> --trigger-type=ON_DEMAND --spark-sql-script=<sql-script> --execution-args=^::^TASK_ARGS="--output_location, <gcs folder location>, --output_format, json" <sql-task-id>
REST
Per creare un'attività: usa Explorer API.
Monitora l'attività
Console
Nella console Google Cloud, vai alla pagina Dataplex:
Vai alla vista Process.
Nella scheda Attività è presente un elenco di attività, filtrato in base ai tipi di modelli di attività.
Nella colonna Nome, fai clic sull'attività che vuoi visualizzare.
Fai clic sull'ID job dell'attività da visualizzare.
La pagina di Dataproc si apre nella Console Google Cloud che ti consente di visualizzare i dettagli del monitoraggio e dell'output.
gcloud
La tabella seguente elenca i comandi gcloud CLI per il monitoraggio delle attività.
Azione | Comando gcloud CLI |
---|---|
Elenco attività | gcloud dataplex tasks list --project=<project-name> --location=<location> --lake=<lake-id> |
Visualizzazione dei dettagli dell'attività | gcloud dataplex tasks describe --project=<project-name> --location=<location> --lake=<lake-id> <task-id> |
Elenco dei job di un'attività | gcloud dataplex tasks jobs list --project=<project-name> --location=<location> --lake=<lake-id> --task=<task-id> |
Visualizzazione dei dettagli del job | gcloud dataplex tasks jobs describe --project=<project-name> --location=<location> --lake=<lake-id> --task=<task-id> <job-id> |
Dataplex esegue i job su Dataproc serverless (batch). Per visualizzare i log di esecuzione di un job Dataplex, segui questi passaggi:
Ottieni l'ID job Dataproc Serverless (batch). Esegui questo comando:
gcloud dataplex tasks jobs describe --project=<project-name> --location=<location> --lake=<lake-id> --task=<task-id> <job-id>
Visualizza i log. Esegui questo comando utilizzando l'ID job che hai ricevuto eseguendo il comando precedente:
gcloud beta dataproc batches wait --project=<project-name> --region=<location> <job-id>
REST
Gestire la programmazione
Nella console Google Cloud, all'interno di Dataplex, puoi modificare pianificare un'attività, eliminare un'attività o annullare un job in corso. Nella tabella seguente sono elencati i comandi gcloud CLI per queste azioni.
Azione | Comando gcloud CLI |
---|---|
Modificare la pianificazione delle attività | gcloud dataplex tasks update --project=<project-name> --location=<location> --lake=<lake-id> --trigger-schedule=<updated-schedule> <task-id> |
Eliminare un'attività | gcloud dataplex tasks delete --project=<project-name> --location=<location> --lake=<lake-id> <task-id> |
Annullare un job | gcloud dataplex tasks jobs cancel --project=<project-name> --location=<location> --lake=<lake-id> --task=<task-id> <job-id> |
Passaggi successivi
- Consulta Modelli Dataproc.
- Prova un modello predefinito per spostare i dati in modo incrementale dagli asset di Cloud Storage di Dataplex a BigQuery.
- Vedi Configurare avvisi e notifiche per le attività Dataplex.