Pianifica script e notebook SQL

La pianificazione di script e notebook SQL ti consente di rendere operativi gli asset creati nell'area di lavoro di esplorazione dei dati (Esplora).

La pianificazione di uno script SQL o di un notebook crea un'attività Dataplex che viene eseguita in un momento prestabilito, una volta sola o in modo ricorrente. A ogni esecuzione viene creato un job che acquisisce i metadati di esecuzione, ad esempio l'ora di inizio e di fine dell'esecuzione, lo stato dell'esecuzione, i log e gli output generati.

Quando viene attivata un'esecuzione per uno script SQL pianificato o un blocco note, viene eseguita la versione corrente del blocco note o dello script SQL. Ciò significa che se pianifichi un notebook o un script SQL e in un secondo momento aggiorni i relativi contenuti, l'aggiornamento viene applicato anche alle esecuzioni pianificate del notebook o dello script SQL.

Costi

Gli script SQL e i notebook pianificati attivano l'esecuzione dei job utilizzando Dataproc Serverless. Gli utilizzi vengono addebitati in base al modello di prezzo di Dataproc e gli addebiti vengono visualizzati in Dataproc anziché in Dataplex.

Prima di iniziare

Esamina e completa i prerequisiti descritti nei seguenti documenti:

Se una pianificazione di script SQL o notebook utilizza l'API BigQuery, devi concedere all'account di servizio il ruolo Consumatore di utilizzo del servizio (roles/serviceusage.serviceUsageConsumer).

Limitazioni note

  • Quando pianifichi un blocco note utilizzando la console Google Cloud, i pacchetti Python aggiuntivi configurati nell'ambiente selezionato non saranno disponibili al runtime per il blocco note pianificato. Per renderli disponibili in fase di runtime, devi creare una pianificazione del blocco note che faccia riferimento a un'immagine container con i pacchetti aggiuntivi richiesti. Per saperne di più, consulta Pianificare i notebook con pacchetti personalizzati.

  • L'utilizzo della console Google Cloud per fare riferimento alle immagini dei contenitori personalizzati quando pianifichi i notebook non è supportato. Utilizza invece l'interfaccia a riga di comando gcloud.

  • Non puoi modificare una pianificazione dopo averla creata. Per aggiornare i parametri della pianificazione, devi ricrearla con nuovi parametri.

  • Non puoi definire una versione specifica di uno script o di un blocco note SQL da utilizzare in una programmazione. Quando la pianificazione viene attivata, viene utilizzata la versione corrente dello script o del blocco note SQL.

  • Quando pianifichi script e notebook SQL utilizzando la console Google Cloud, viene utilizzata la sottorete predefinita. Per specificare un'altra rete o una sottorete, utilizza l'interfaccia a riga di comando gcloud.

Inoltre, consulta le limitazioni note di Esplora.

Crea e gestisci le pianificazioni per gli script SQL

Configurazione di runtime per gli script SQL pianificati

Quando uno script SQL viene pianificato, viene eseguito come attività Dataplex. Quando viene creata una pianificazione utilizzando la console Google Cloud, i parametri di runtime dell'attività corrispondenti per gli script SQL pianificati vengono ereditati dall'ambiente di questo script SQL in base alla seguente mappatura:

Parametro di configurazione dell'ambiente Parametro di configurazione dell'attività di script SQL pianificata
Dimensione del disco primario Immagine / proprietà container:
   spark.dataproc.driver.disk.size
   spark.dataproc.executor.disk.size
Numero di nodi Batch / Numero di esecutori
Numero massimo di nodi Conteggio batch / esecutori massimi
Versione immagine Non ereditato
File JAR Immagine container / JAR Java
Pacchetti Python Non ereditato
Proprietà aggiuntive Immagine container / Proprietà

Pianificare uno script SQL

Console

  1. Nella console Google Cloud, vai alla pagina Esplora di Dataplex.

    Vai a Esplora di Dataplex

  2. Seleziona uno script SQL da pianificare selezionando un singolo script SQL dall'elenco Script Spark SQL o aprendo uno script SQL in Spark SQL Editor.

  3. Nel menu Pianificazione, fai clic su Crea pianificazione.

  4. Nel campo Nome pianificazione, inserisci un nome per l'istanza pianificata.

  5. Nella sezione Opzioni di pianificazione, scegli se eseguire lo script SQL solo una volta o in modo ricorrente:

    1. Se selezioni Esegui una volta, specifica se vuoi eseguire lo script SQL immediatamente o a un'ora programmata utilizzando le opzioni del menu Avvia. Per un'esecuzione pianificata, specifica la data di inizio e l'ora di esecuzione.

    2. Se selezioni Ripeti, specifica se vuoi eseguire lo script SQL ogni giorno, settimana, mese o in base a una pianificazione personalizzata specificata utilizzando l'espressione CRON. Inoltre, specifica la data di inizio e l'ora di esecuzione per l'esecuzione pianificata iniziale.

  6. Nella sezione Destinazione per i risultati:

    1. Nel campo Nome cartella di output, fai clic su Sfoglia e seleziona una cartella in un bucket Cloud Storage in cui vuoi archiviare gli output dello script.

    2. Fai clic su Seleziona.

    3. Seleziona il formato di output dello script. I formati supportati sono CSV, JSON, ORC e Parquet.

  7. Nella sezione Credenziali dello script pianificato, seleziona un account di servizio dal menu Account di servizio utente.

  8. Fai clic su Pianifica.

gcloud

Per informazioni sulla pianificazione degli script SQL utilizzando l'interfaccia a riga di comando gcloud, consulta Pianificare un'attività SparkSQL.

REST

Utilizza Explorer API per creare un'attività.

Gestire le pianificazioni degli script SQL

Console

Apri l'elenco di tutte le pianificazioni degli script SQL

  1. Nella console Google Cloud, vai alla pagina Elabora di Dataplex.

  2. Fai clic sulla scheda Query pianificate per visualizzare l'elenco delle pianificazioni degli script SQL.

Aprire l'elenco di tutte le pianificazioni per uno script SQL specifico

  1. Nella console Google Cloud, vai alla pagina Esplora di Dataplex.

  2. Seleziona lo script SQL richiesto.

  3. Nel menu Pianifica, fai clic su Visualizza pianificazioni.

    La scheda Query pianificate si apre con un elenco di pianificazioni di script SQL filtrate in base allo script SQL selezionato.

Visualizzare i dettagli di una pianificazione dello script SQL

  1. Vai alla scheda Query programmate e seleziona la pianificazione dello script SQL richiesta.

  2. Fai clic sulla scheda Dettagli per visualizzare i dettagli della pianificazione dello script SQL e un'anteprima dei contenuti dello script SQL pianificato.

Attivare e disattivare una pianificazione dello script SQL

  1. Vai alla scheda Query programmate e seleziona la pianificazione dello script SQL richiesta.

  2. Fai clic su Disattiva per disattivare una pianificazione dello script SQL attiva.

  3. Fai clic su Attiva per attivare una pianificazione di script SQL non attiva.

Eliminare una pianificazione dello script SQL esistente

  1. Vai alla scheda Query programmate e seleziona la pianificazione dello script SQL richiesta.

  2. Fai clic su Elimina per eliminare definitivamente una pianificazione dello script SQL esistente.

Visualizzare i log e gestire una pianificazione dello script SQL

  1. Vai alla scheda Query programmate e seleziona la pianificazione dello script SQL richiesta.

  2. Fai clic sulla scheda Job e poi sull'ID job dell'esecuzione dello script SQL pianificato che vuoi visualizzare.

  3. Fai clic su Visualizza log per visualizzare i log relativi allo script SQL pianificato selezionato eseguito in Cloud Logging.

  4. Fai clic sull'ID batch Dataproc per aprire la pagina Dataproc nella console Google Cloud. Accedi ai dettagli della sessione Dataproc Serverless corrispondente.

  5. Fai clic su Gestisci in Cloud Storage accanto all'etichetta Output per aprire la pagina Cloud Storage nella console Google Cloud. Accedi ai dettagli del bucket Cloud Storage corrispondente contenente l'output dell'esecuzione dello script SQL.

gcloud

Per informazioni sul monitoraggio degli script SQL pianificati utilizzando l'interfaccia a riga di comando gcloud, consulta la scheda gcloud in Monitorare l'attività.

Per informazioni sulla gestione degli script SQL pianificati utilizzando gcloud CLI, consulta la scheda gcloud in Gestire la pianificazione.

REST

Per informazioni sul monitoraggio degli script SQL pianificati utilizzando REST, consulta la scheda REST in Monitorare l'attività.

Per informazioni sulla gestione degli script SQL pianificati utilizzando REST, consulta la scheda REST in Gestire la pianificazione.

Output di uno script SQL pianificato

L'output di ogni esecuzione di uno script SQL pianificato viene archiviato nella posizione specificata per la cartella Cloud Storage, nella seguente struttura:

CLOUD_STORAGE_FOLDER_LOCATION/projects/PROJECT_ID/locations/LOCATION_ID/lakes/LAKE_ID/tasks/TASK_ID/JOB_ID/QUERY_NUMBER

Creare e gestire le pianificazioni dei notebook

Configurazione di runtime per i notebook pianificati

Quando un notebook viene pianificato, viene eseguito come attività Dataplex. Quando viene creata una pianificazione utilizzando la console Google Cloud, i parametri di runtime delle attività corrispondenti per i notebook pianificati vengono ereditati dall'ambiente del notebook in base alla seguente mappatura:

Parametro di configurazione dell'ambiente Parametro di configurazione dell'attività del notebook pianificato
Dimensione del disco primario Immagine / proprietà container:
   spark.dataproc.driver.disk.size
   spark.dataproc.executor.disk.size
Numero di nodi Batch / Numero di esecutori
Numero massimo di nodi Conteggio batch / esecutori massimi
Versione immagine Non ereditato
File JAR Immagine container / JAR Java
Pacchetti Python Non ereditato
Proprietà aggiuntive Immagine container / Proprietà

Pianificare i notebook con pacchetti personalizzati

Per i notebook interattivi, quando configuri un ambiente, Dataplex ti consente di specificare i pacchetti Python personalizzati da installare nelle sessioni utente di cui è stato eseguito il provisioning per l'ambiente. Quando un blocco note di questo tipo viene pianificato, i pacchetti Python personalizzati configurati nel relativo ambiente non sono disponibili al runtime per il blocco note pianificato e l'ambiente di runtime predefinito contiene solo i componenti della versione 1.0 del runtime Spark di Dataproc Serverless. Affinché i pacchetti Python personalizzati siano disponibili in fase di runtime per i blocchi note pianificati, fornisci un'immagine container personalizzata con i pacchetti personalizzati necessari.

La specifica di un'immagine del contenitore personalizzata quando pianifichi un notebook utilizzando la console Google Cloud non è supportata. Utilizza invece l'interfaccia a riga di comando gcloud. Per ulteriori informazioni, consulta Pianificare un notebook.

Se programmi un notebook con un ambiente in cui sono configurati pacchetti personalizzati, viene visualizzato il seguente avviso:

Selected environment  has additional Python packages configured.
These packages will not be available in the default runtime for the scheduled notebook
when scheduling in the Console. To make the required additional Python packages
available in the runtime, please create Notebook Schedule using gcloud command
instead, referencing a container image with required additional packages.

Creare un'immagine del container personalizzato per i notebook pianificati

Per informazioni su come creare un'immagine del contenitore per i notebook pianificati e installare i pacchetti Python personalizzati richiesti nel file Dockerfile dell'immagine del contenitore, consulta Creare un'immagine del contenitore personalizzata per Dataproc Serverless per Spark.

Assicurati di aver installato i seguenti pacchetti conda nell'immagine del contenitore:

  • gcsfs
  • google-cloud-bigquery
  • google-cloud-storage
  • google-auth
  • ipykernel
  • papermill

Per installare i componenti gcloud in un'immagine container, apri il file Dockerfile dell'immagine container e completa i seguenti passaggi:

  1. Aggiungi il pacchetto google-cloud-sdk all'elenco dei pacchetti conda da installare.

  2. Aggiungi le seguenti righe dopo il passaggio di installazione dei pacchetti conda:

    # (Optional) Installing gcloud components
    RUN gcloud components install alpha beta bq
    

Pianificare un notebook

Console

  1. Nella console Google Cloud, vai alla pagina Esplora di Dataplex.

    Vai a Esplora di Dataplex

  2. Seleziona un notebook da pianificare selezionando un singolo notebook nella visualizzazione Notebook o aprendo un notebook nella pagina dei dettagli del notebook.

  3. Nel menu Pianificazione, fai clic su Crea pianificazione.

  4. Nel campo Nome pianificazione, inserisci un nome per l'istanza pianificata.

  5. Nella sezione Opzioni di pianificazione, seleziona se vuoi eseguire il notebook solo una volta o in modo ricorrente:

    1. Se selezioni Esegui una volta, specifica se vuoi eseguire il notebook immediatamente o a un'ora programmata utilizzando le opzioni del menu Avvia. Per un'esecuzione pianificata, specifica la data di inizio e l'ora di esecuzione.

    2. Se selezioni Ripeti, specifica se vuoi eseguire il notebook ogni giorno, settimana, mese o in base a una pianificazione personalizzata specificata utilizzando l'espressione CRON. Inoltre, specifica la data di inizio e l'ora di esecuzione per l'esecuzione pianificata iniziale.

  6. Nella sezione Destinazione per i risultati, scegli una posizione in cui memorizzare l'output del blocco note:

    1. Nel campo Nome della cartella di output, fai clic su Sfoglia e seleziona una cartella in un bucket Cloud Storage in cui vuoi archiviare l'output del notebook.

    2. Fai clic su Seleziona.

    3. Seleziona il formato di output dello script. I formati supportati sono CSV, JSON, ORC e Parquet.

  7. Nella sezione Credenziali del notebook pianificato, seleziona un account di servizio dal menu Account di servizio utente.

  8. Nella sezione Parametri, aggiungi i parametri di esecuzione per il notebook come coppie chiave-valore facendo clic su Aggiungi nuovo.

  9. Fai clic su Pianifica.

gcloud

Esegui il comando gcloud CLI descritto in Pianificare un'attività Spark (Java o Python) con i seguenti parametri aggiuntivi:

Parametro Descrizione
--notebook Percorso dei contenuti di un notebook per il notebook di input. Gli argomenti di esecuzione sono accessibili come variabili di ambiente. Ad esempio, TASK_key=value.
Nota: Nella documentazione di riferimento gcloud per la pianificazione dei notebook come attività, viene indicato che il valore del parametro --notebook può essere l'URI Cloud Storage del file del notebook. Questa opzione non è supportata. Devi specificare solo il percorso di Notebook Content per il parametro --notebook.
--notebook-archive-uris URI Cloud Storage degli archivi da estrarre nella directory di lavoro di ciascun esecutore. I tipi di file supportati sono JAR, tar, tar.gz, tgz e zip.
--notebook-file-uris URI Cloud Storage dei file da inserire nella directory di lavoro di ciascun esecutore.
Risorse di calcolo necessarie per un'attività quando utilizzi Dataproc Serverless
--notebook-batch-executors-count Numero di esecutori job.
--notebook-batch-max-executors-count Esecutori configurabili massimi.
Se notebook-batch-max-executors-count è maggiore di notebook-batch-executors-count, la scalabilità automatica è attivata.
Configurazione del runtime dell'immagine container
--notebook-container-image (Facoltativo) Immagine del container personalizzato per il job.
--notebook-container-image-java-jars Un elenco di file JAR Java da aggiungere al percorso di classe. L'input valido include gli URI Cloud Storage per i file binari JAR. Ad esempio, gs://BUCKET_NAME/my/path/to/file.jar.
--notebook-container-image-properties Le proprietà da impostare nei file di configurazione del daemon.
Le chiavi delle proprietà sono specificate nel formato prefix:property. Ad esempio:
core:hadoop.tmp.dir.
Per saperne di più, consulta Proprietà del cluster.
Rete VPC Cloud utilizzata per eseguire l'infrastruttura
--notebook-vpc-network-tags Elenco di tag di rete da applicare al job.
L'identificatore della rete VPC di Cloud. Puoi specificare al massimo uno dei seguenti elementi.
--notebook-vpc-network-name La rete VPC di Cloud in cui viene eseguito il job. Per impostazione predefinita, viene utilizzata la rete VPC Cloud denominata Default all'interno del progetto.
--notebook-vpc-sub-network-name La subnet VPC di Cloud in cui viene eseguito il job.
Posizione degli output del notebook
--execution-args Per le attività del notebook, il seguente argomento è obbligatorio e deve essere passato come TASK_ARGS.
--execution-args=^::^TASK_ARGS="--output_location,CLOUD_STORAGE_URI_OF_OUTPUT_DIRECTORY"

Di seguito è riportato un esempio del comando gcloud utilizzato per la pianificazione dei notebook:

gcloud dataplex tasks create sample-task --project=sample-project --location=us-central1 --lake=my-lake --trigger-type=ON_DEMAND --notebook="projects/my-project-id/locations/us-central1/lakes/my-lake/content/my-notebook.ipynb" --execution-service-account=associated-service-account@sample-project.iam.gserviceaccount.com  --execution-args=^::^TASK_ARGS="--output_location,gs://my-bucket/Demo" --notebook-batch-executors-count=2 --notebook-batch-max-executors-count=5 --notebook-container-image=container-image --notebook-container-image-java-jars=java-jar1,java-jar-2

REST

Utilizza Explorer API per creare un'attività.

Gestire le pianificazioni dei blocchi note

Console

Apri l'elenco di tutte le pianificazioni dei notebook

  1. Nella console Google Cloud, vai alla pagina Elabora di Dataplex.

  2. Fai clic sulla scheda Notebook pianificati per visualizzare l'elenco delle pianificazioni degli script SQL.

Aprire l'elenco di tutte le pianificazioni per un notebook specifico

  1. Nella console Google Cloud, vai alla pagina Esplora di Dataplex.

  2. Seleziona il notebook richiesto.

  3. Nel menu Pianifica, fai clic su Visualizza pianificazioni.

    La scheda Query pianificate si apre con un elenco delle pianificazioni dei notebook filtrate in base al notebook selezionato.

Visualizzare i dettagli di una pianificazione del notebook

  1. Vai alla scheda Notebook pianificati e seleziona la pianificazione del notebook richiesta.

  2. Fai clic su Dettagli per visualizzare i dettagli della pianificazione del notebook e un'anteprima dei contenuti del notebook pianificato.

Attivare e disattivare una pianificazione del notebook

  1. Vai alla scheda Notebook pianificato e seleziona la pianificazione del notebook richiesta.

  2. Fai clic su Disattiva per disattivare una pianificazione del notebook attiva.

  3. Fai clic su Attiva per attivare una pianificazione del notebook non attiva.

Eliminare una pianificazione del notebook esistente

  1. Vai alla scheda Notebook pianificato e seleziona la pianificazione del notebook richiesta.

  2. Fai clic su Elimina per eliminare definitivamente una pianificazione del blocco note esistente.

Visualizzare i log e gestire una pianificazione del notebook

  1. Vai alla scheda Notebook pianificato e seleziona la pianificazione del notebook richiesta.

  2. Fai clic sulla scheda Job e poi sull'ID job dell'esecuzione del notebook pianificata che vuoi visualizzare.

  3. Nella sezione Anteprima output, esamina l'output dell'esecuzione del notebook.

  4. Fai clic su Visualizza log per visualizzare i log relativi all'esecuzione pianificata del notebook selezionata in Cloud Logging.

  5. Fai clic sull'ID batch Dataproc per aprire la pagina Dataproc nella console Google Cloud. Accedi ai dettagli della sessione Dataproc Serverless corrispondente.

  6. Fai clic su Gestisci in Cloud Storage accanto all'etichetta Output per aprire la pagina Cloud Storage nella console Google Cloud. Accedi ai dettagli del bucket Cloud Storage corrispondente contenente l'output dell'esecuzione del notebook.

gcloud

Per informazioni sul monitoraggio dei notebook pianificati utilizzando l'interfaccia a riga di comando gcloud, consulta la scheda gcloud in Monitorare l'attività.

Per informazioni sulla gestione dei notebook pianificati utilizzando l'interfaccia a riga di comando gcloud, consulta la scheda gcloud in Gestire la pianificazione.

REST

Per informazioni sul monitoraggio dei notebook pianificati tramite REST, consulta la scheda REST in Monitora l'attività.

Per informazioni sulla gestione dei blocchi note pianificati utilizzando REST, consulta la scheda REST in Gestire la pianificazione.

Output di un notebook pianificato

L'output di ogni esecuzione di un notebook pianificato viene archiviato nella posizione specificata per la cartella Cloud Storage, nella seguente struttura:

CLOUD_STORAGE_FOLDER_LOCATION/projects/PROJECT_ID/locations/LOCATION_ID/lakes/LAKE_ID/tasks/TASK_ID/JOB_ID/QUERY_NUMBER

Passaggi successivi