Pianifica script e blocchi note SQL

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

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 su base ricorrente. A ogni esecuzione viene creato un job che acquisisce i metadati dell'esecuzione, come l'ora di inizio e di fine, lo stato dell'esecuzione, i log e gli output generati.

Quando viene attivata un'esecuzione per uno script SQL pianificato o per un blocco note, viene eseguita la versione corrente dello script SQL o del blocco note. Ciò significa che se pianifichi uno script blocco note o SQL e in seguito ne aggiorni il contenuto, l'aggiornamento viene applicato anche nelle esecuzioni pianificate dello script SQL o del blocco note.

Costi

Gli script SQL pianificati e i blocchi note pianificati attivano l'esecuzione del job utilizzando Dataproc Serverless. Gli utilizzi vengono addebitati in base al modello di prezzi di Dataproc e i costi vengono visualizzati in Dataproc anziché in Dataplex.

Prima di iniziare

Esamina e completa i prerequisiti descritti nei seguenti documenti:

Se uno script SQL o una pianificazione di blocco note utilizza l'API BigQuery, devi concedere all'account di servizio il ruolo Consumer utilizzo servizi (roles/serviceusage.serviceUsageConsumer).

Limitazioni note

  • Durante la pianificazione di un blocco note utilizzando la console Google Cloud, i pacchetti Python aggiuntivi configurati nell'ambiente selezionato non saranno disponibili durante il 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'immagine container con i pacchetti aggiuntivi richiesti. Per ulteriori informazioni, consulta Pianificare blocchi note con pacchetti personalizzati.

  • L'uso della console Google Cloud per fare riferimento a immagini container personalizzate durante la pianificazione di blocchi note non è supportato. Utilizza invece gcloud CLI.

  • Non puoi modificare una pianificazione dopo averla creata. Per aggiornare i parametri, 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 pianificazione. Quando la pianificazione viene attivata, viene utilizzata la versione corrente dello script SQL o del blocco note.

  • Quando pianifichi script e blocchi note SQL utilizzando la console Google Cloud, viene utilizzata la subnet predefinita. Per specificare un'altra rete o una subnet, utilizza gcloud CLI.

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 quello script SQL in base al seguente mapping:

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 Numero di esecutori / batch
Numero massimo di nodi Numero di esecutori batch / numero massimo
Versione immagine Non ereditato
File JAR Immagine container / JARS Java
Pacchetti Python Non ereditato
Proprietà aggiuntive Immagine / proprietà container

Pianifica uno script SQL

Console

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

    Vai all'esplorazione Dataplex

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

  3. Nel menu Programma, 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 su base ricorrente:

    1. Se selezioni Esegui una volta, specifica se vuoi eseguire lo script SQL immediatamente o a un orario pianificato, utilizzando le opzioni del menu Start. 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, ogni settimana, ogni mese o in base a una pianificazione personalizzata specificata utilizzando espressione cron. Inoltre, specifica la data di inizio e l'ora di esecuzione per l'esecuzione pianificata iniziale.

  6. Nella sezione Destinazione dei risultati, procedi nel seguente modo:

    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 pianificate, 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 gcloud CLI, consulta Pianificare un'attività SparkSQL.

REST

Utilizza Explorer API per creare un'attività.

Gestisci pianificazioni degli script SQL

Console

Apri l'elenco di tutte le pianificazioni degli script SQL

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

  2. Fai clic sulla scheda Query pianificate per visualizzare l'elenco di 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 Pianificazione, fai clic su Visualizza pianificazioni.

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

Visualizza i dettagli di una pianificazione di script SQL

  1. Vai alla scheda Query pianificate e seleziona la pianificazione degli script SQL richiesta.

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

Attiva e disattiva la pianificazione di uno script SQL

  1. Vai alla scheda Query pianificate e seleziona la pianificazione degli script SQL richiesta.

  2. Fai clic su Disabilita per disattivare una pianificazione di script SQL attiva.

  3. Fai clic su Abilita per attivare una pianificazione di script SQL non attivo.

Elimina una pianificazione di script SQL esistente

  1. Vai alla scheda Query pianificate e seleziona la pianificazione degli script SQL richiesta.

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

Visualizza i log e gestisci la pianificazione di uno script SQL

  1. Vai alla scheda Query pianificate e seleziona la pianificazione degli script SQL richiesta.

  2. Fai clic sulla scheda Job, quindi sull'ID job dell'esecuzione di script SQL pianificata 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 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 Gestisci 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 località specificata per la cartella Cloud Storage, con la 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 le pianificazioni per i blocchi note

Configurazione di runtime per i blocchi note pianificati

Quando un blocco note 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 blocchi note pianificati vengono ereditati dall'ambiente di quel blocco note in base alla seguente mappatura:

Parametro di configurazione dell'ambiente Parametro di configurazione delle attività di blocco note pianificate
Dimensione del disco primario Immagine container / proprietà:
   spark.dataproc.driver.disk.size
   spark.dataproc.executor.disk.size
Numero di nodi Numero di esecutori / batch
Numero massimo di nodi Numero di esecutori batch / numero massimo
Versione immagine Non ereditato
File JAR Immagine container / JARS Java
Pacchetti Python Non ereditato
Proprietà aggiuntive Immagine / proprietà container

Pianificare i blocchi note con pacchetti personalizzati

Per i blocchi note interattivi, durante la configurazione di un ambiente, Dataplex 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 suo ambiente non sono disponibili in fase di runtime per il blocco note pianificato e l'ambiente di runtime predefinito contiene solo i componenti della versione 1.0 del runtime Spark serverless di Dataproc. Affinché i pacchetti Python personalizzati siano disponibili durante il runtime per i blocchi note pianificati, fornisci un'immagine container personalizzata con i pacchetti personalizzati necessari.

Non è possibile specificare un'immagine container personalizzata durante la pianificazione di un blocco note utilizzando la console Google Cloud. Utilizza invece gcloud CLI. Per ulteriori informazioni, consulta Pianificare un blocco note.

Se pianifichi un blocco note in 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 stabilire un'immagine container per i blocchi note pianificati e sull'installazione dei pacchetti Python personalizzati richiesti nel dockerfile dell'immagine container, consulta Creare un'immagine container personalizzata per Dataproc Serverless per Spark.

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

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

Per installare i componenti gcloud in un'immagine container, apri il file Docker dell'immagine container e completa questi 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 gsutil
    

Pianifica un blocco note

Console

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

    Vai all'esplorazione Dataplex

  2. Seleziona un blocco note da pianificare, selezionandone uno nella visualizzazione Blocchi note o aprendolo nella pagina dei dettagli del blocco note.

  3. Nel menu Programma, 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 blocco note una sola volta o su base ricorrente:

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

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

  6. Nella sezione Destinazione dei risultati, scegli una posizione in cui archiviare l'output del blocco note:

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

    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 blocco note pianificate, seleziona un account di servizio dal menu Account di servizio utente.

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

  9. Fai clic su Pianifica.

gcloud

Esegui il comando gcloud CLI descritto in Pianifica 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 gcloud per la pianificazione dei blocchi note come attività, viene menzionato che il valore del parametro --notebook può essere l'URI Cloud Storage del file del blocco note. Non è supportato. Devi specificare il percorso del contenuto del blocco note solo 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 Google 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 di job.
--notebook-batch-max-executors-count Numero massimo di esecutori configurabili.
Se notebook-batch-max-executors-count è maggiore di notebook-batch-executors-count, la scalabilità automatica viene abilitata.
Configurazione del runtime delle immagini container
--notebook-container-image (Facoltativo) Immagine container personalizzata per il job.
--notebook-container-image-java-jars Un elenco di JAR Java da aggiungere a classpath. L'input valido include 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 sui file di configurazione del daemon.
Le chiavi della proprietà sono specificate nel formato prefix:property. Ad esempio:
core:hadoop.tmp.dir.
Per saperne di più, consulta Proprietà dei 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 di Cloud. Puoi specificare al massimo uno dei seguenti valori.
--notebook-vpc-network-name La rete VPC Cloud in cui viene eseguito il job. Per impostazione predefinita, viene utilizzata la rete Cloud VPC 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 blocco note, il seguente argomento è obbligatorio e deve essere trasmesso 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 pianificazioni blocco note

Console

Apri l'elenco di tutte le pianificazioni del blocco note

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

  2. Fai clic sulla scheda Blocchi note pianificati per visualizzare l'elenco di 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 Pianificazione, fai clic su Visualizza pianificazioni.

    Si apre la scheda Query pianificate con un elenco di pianificazioni del blocco note filtrate in base al blocco note selezionato.

Visualizza i dettagli della pianificazione di un blocco note

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

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

Attiva e disattiva la pianificazione di un blocco note

  1. Vai alla scheda Blocco note pianificato e seleziona la pianificazione richiesta per il blocco note.

  2. Fai clic su Disabilita per disattivare la pianificazione di un blocco note attivo.

  3. Fai clic su Abilita per attivare la pianificazione di un blocco note non attivo.

Elimina una pianificazione del blocco note esistente

  1. Vai alla scheda Blocco note pianificato e seleziona la pianificazione richiesta per il blocco note.

  2. Fai clic su Elimina per eliminare definitivamente la pianificazione di un blocco note esistente.

Visualizza i log e gestisci la pianificazione di un blocco note

  1. Vai alla scheda Blocco note pianificato e seleziona la pianificazione richiesta per il blocco note.

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

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

  4. Fai clic su Visualizza log per visualizzare i log relativi al blocco note pianificato selezionato eseguito 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 di Cloud Storage nella console Google Cloud. Accedi ai dettagli del bucket Cloud Storage corrispondente 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 blocchi note pianificati mediante gcloud CLI, consulta la scheda gcloud in Gestisci la pianificazione.

REST

Per informazioni sul monitoraggio dei blocchi note pianificati utilizzando REST, consulta la scheda REST in Monitorare l'attività.

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

Output di un blocco note pianificato

L'output di ogni esecuzione di un blocco note pianificato viene archiviato nella località specificata da te 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