Pianifica script e blocchi note SQL

La pianificazione di script e blocchi note SQL consente di rendere operativi gli asset che creato nel workbench di esplorazione dei dati (Esplora).

La pianificazione di uno script SQL o di un blocco note crea un'attività Dataplex che viene eseguita in un momento predeterminato, una volta o periodicamente. 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 blocchi note 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 renderle disponibili in fase di runtime, devi creare una pianificazione del blocco note che faccia riferimento a un l'immagine container con i pacchetti aggiuntivi richiesti. Per saperne di più, consulta Pianificare i notebook con pacchetti personalizzati.

  • Utilizzo della console Google Cloud per fare riferimento a un container personalizzato quando la pianificazione di blocchi note non è supportata. Utilizza invece l'interfaccia a riga di comando gcloud.

  • Non puoi modificare una pianificazione una volta creata. Per aggiornare i parametri della pianificazione, devi ricreare la pianificazione 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 subnet, utilizza gcloud CLI.

Inoltre, esamina i limiti noti 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 delle attività corrispondenti per l'SQL pianificato vengono ereditati dall'ambiente dello script SQL in base alla mappatura possibile:

Parametro di configurazione dell'ambiente Parametro di configurazione dell'attività di script SQL pianificata
Dimensione del disco primario Immagine container / proprietà:
spark.dataproc.driver.disk.size
spark.dataproc.executor.disk.size
Numero di nodi Conteggio batch / esecutori
Numero massimo di nodi Conteggio esecutori batch / max
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 Dataplex Explore

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

  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 Avvio. 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 quotidianamente, settimanalmente, mensilmente 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, segui questi passaggi:

    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 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 Processo di Dataplex.

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

Apri 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 Programma, 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 pianificate e seleziona la pianificazione dello script SQL richiesto.

  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 Abilita per attivare una pianificazione di script SQL non attiva.

Eliminare una pianificazione dello script SQL esistente

  1. Vai alla scheda Query pianificate e seleziona la pianificazione dello script SQL richiesto.

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

Visualizzare i log e gestire una pianificazione degli script SQL

  1. Vai alla scheda Query pianificate e seleziona la pianificazione dello script SQL richiesto.

  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 all'SQL pianificato selezionato eseguito in Cloud Logging.

  4. Fai clic sull'ID batch di Dataproc per aprire la pagina di 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 di 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 gcloud CLI, consulta la scheda gcloud in Monitora 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, vedi 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

Crea e gestisci pianificazioni per i blocchi note

Configurazione di runtime per i blocchi note 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à di blocco note pianificata
Dimensione del disco primario Immagine container / proprietà:
spark.dataproc.driver.disk.size
spark.dataproc.executor.disk.size
Numero di nodi Conteggio batch / esecutori
Numero massimo di nodi Conteggio esecutori batch / max
Versione immagine Non ereditato
File JAR Immagine container/JAR Java
Pacchetti Python Non ereditato
Proprietà aggiuntive Proprietà / immagine container

Pianificare i notebook con pacchetti personalizzati

Per i blocchi note interattivi, quando configuri un ambiente, Dataplex consente di specificare i pacchetti Python personalizzati da installare di sessioni utente di cui è stato eseguito il provisioning per l'ambiente. Quando un blocco note di questo tipo è pianificato, i pacchetti Python personalizzati configurati nel relativo ambiente non sono disponibili in fase di runtime blocco note pianificato e l'ambiente di runtime predefinito include solo i componenti del runtime Spark serverless di Dataproc versione 1.0. 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 gcloud CLI. Per ulteriori informazioni, consulta Pianificare un notebook.

Se pianifichi 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.

Crea un'immagine container personalizzata per i blocchi note 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 blocco note

Console

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

    Vai a Esplora Dataplex

  2. Seleziona un blocco note da pianificare selezionando un singolo blocco note nella visualizzazione Blocchi note o aprendo un blocco note nella pagina dei dettagli del blocco note.

  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 il notebook solo una volta o in modo ricorrente:

    1. Se selezioni Esegui una volta, specifica se vuoi eseguire il blocco note immediatamente o a un orario programmato, utilizzando le opzioni nel menu Start. Per un'esecuzione pianificata, specificare la data di inizio e l'ora di esecuzione.

    2. Se selezioni Ripeti, specifica se vuoi eseguire il blocco note ogni giorno, mensile o in base a una pianificazione personalizzata specificata utilizzando l'espressione cron. Inoltre, specifica la data di inizio e l'ora di esecuzione dell'esecuzione pianificata iniziale.

  6. Nella sezione Destinazione per i risultati, scegli una località in cui vuoi archiviare 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 blocco note per il blocco note di input. Gli argomenti di esecuzione sono accessibili come variabili di ambiente. Ad esempio, TASK_key=value.
Nota: Nella documentazione di riferimento di gcloud per la pianificazione dei blocchi note come attività, è ha detto che il valore del parametro --notebook può essere l'URI Cloud Storage di del blocco note. Questa opzione non è supportata. Devi specificare solo il percorso del blocco note Contenuto 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 si utilizza Dataproc Serverless
--notebook-batch-executors-count Numero di esecutori dei job.
--notebook-batch-max-executors-count Numero massimo di esecutori configurabili.
Se notebook-batch-max-executors-count è superiore a notebook-batch-executors-count, la scalabilità automatica è abilitata.
Configurazione del runtime dell'immagine container
--notebook-container-image (Facoltativo) Immagine container personalizzata 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 da 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 di rete VPC Cloud. Puoi specificare al massimo uno dei seguenti elementi.
--notebook-vpc-network-name La rete VPC 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 Cloud in cui viene eseguito il job.
Posizione per gli output del blocco note
--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 blocchi note:

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à.

Gestisci le pianificazioni del blocco note

Console

Apri l'elenco di tutte le pianificazioni dei notebook

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

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

Apri l'elenco di tutte le pianificazioni per un blocco note specifico

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

  2. Seleziona il blocco note 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 di blocco note

  1. Vai alla scheda Blocchi note pianificati e seleziona la pianificazione del blocco note richiesta.

  2. Fai clic sui dettagli Dettagli della pianificazione del blocco note e su un'anteprima dei contenuti del blocco note pianificato.

Attiva e disattiva una pianificazione del blocco note

  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 Abilita per attivare una pianificazione del blocco note inattiva.

Elimina una pianificazione del blocco note 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 Blocco note pianificato e seleziona la pianificazione del blocco note richiesta.

  2. Fai clic sulla scheda Job, quindi sull'ID job dell'esecuzione del blocco note pianificata che vuoi visualizzare.

  3. Nella sezione Output di anteprima, esamina l'output dell'esecuzione del blocco note.

  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 di Dataproc per aprire la pagina di 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 di Cloud Storage nella console Google Cloud. Accedi ai dettagli del servizio Cloud Storage corrispondente bucket contenente l'output di esecuzione del blocco note.

gcloud

Per informazioni sul monitoraggio dei blocchi note pianificati utilizzando gcloud CLI, consulta la scheda gcloud in Monitora 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 tramite REST, vedi la scheda REST in Gestire la pianificazione.

Output di un blocco note 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