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, tra cui l'ora di inizio e di fine e lo stato di servizio, i log e gli output generati.

Quando viene attivata un'esecuzione per uno script SQL o un blocco note pianificato, la versione corrente del blocco note o dello script SQL. Ciò significa che se pianifichi un blocco note script SQL e successivamente aggiornarne il contenuto; l'aggiornamento si riflette anche nello script delle esecuzioni pianificate del blocco note o dello script SQL.

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 vengono addebitati vengono visualizzate 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 blocchi note utilizza l'API BigQuery, devi concedere il parametro account di servizio con il ruolo consumer utilizzo dei 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 in fase di 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 ulteriori informazioni, consulta la sezione Pianificare blocchi note 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 gcloud CLI.

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

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

  • Quando si pianificano script e blocchi note SQL utilizzando la console Google Cloud, la subnet predefinita è in uso. Per specificare un'altra rete o una subnet, utilizza gcloud CLI.

Inoltre, esamina i limiti noti di Esplora.

Creare e gestire 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 / JARS Java
Pacchetti Python Non ereditato
Proprietà aggiuntive Proprietà / immagine container

Pianifica uno script SQL

Console

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

    Vai a Esplora Dataplex

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

  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 su base ricorrente:

    1. Se selezioni Esegui una volta, specifica se vuoi eseguire lo script SQL 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 lo script SQL ogni giorno, ogni settimana mensile o in base a una pianificazione personalizzata specificata utilizzando l'espressione cron. Inoltre, specificare la data di inizio e l'ora di esecuzione dell'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 gcloud CLI, consulta Pianifica un'attività SparkSQL.

REST

Utilizza Explorer API per creare un'attività.

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

    Si apre la scheda Query pianificate con un elenco di pianificazioni di script SQL filtrate dallo script SQL selezionato.

Visualizza i dettagli della pianificazione di uno script SQL

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

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

Attiva e disattiva una pianificazione di script SQL

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

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

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

Elimina una pianificazione di 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.

Visualizza i log e gestisci la pianificazione di uno script SQL

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

  2. Fai clic sulla scheda Job, quindi sull'ID job dell'SQL pianificato dell'esecuzione dello script 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 serverless di Dataproc 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 servizio Cloud Storage corrispondente contenente l'output di 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 Monitora 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 è archiviato nella posizione da te specificati 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 blocco note viene pianificato, viene eseguito come attività Dataplex. Quando viene creata una pianificazione utilizzando la console Google Cloud, il runtime dell'attività corrispondente i parametri per i blocchi note pianificati vengono ereditati dall'ambiente di quel blocco note in base al seguente mapping:

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 / JARS Java
Pacchetti Python Non ereditato
Proprietà aggiuntive Proprietà / immagine container

Pianifica blocchi note 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, fornire un'immagine container personalizzata con i pacchetti personalizzati necessari.

Specifica di un'immagine container personalizzata durante la pianificazione di un blocco note utilizzando la console Google Cloud non è supportato. Utilizza invece gcloud CLI. Per maggiori informazioni consulta la sezione Pianificare un blocco note.

Se pianifichi un blocco note con un ambiente in cui sono configurati pacchetti personalizzati, ricevi 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 installare i pacchetti Python personalizzati richiesti nel dockerfile immagine container, consulta Crea 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 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 gsutil
    

Pianifica 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 in dalla 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 blocco note solo una volta o su base 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 che l'output del blocco note venga archiviato:

    1. Nel campo Nome cartella di output, fai clic su Sfoglia e seleziona una cartella in un bucket Cloud Storage in cui deve essere archiviato 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 pianificato, 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 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 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 operazione non è supportata. Devi specificare solo il percorso del blocco note Contenuto per il parametro --notebook.
--notebook-archive-uris gli URI Cloud Storage degli archivi da estrarre nella directory di lavoro 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 JAR Java da aggiungere al classpath. 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 sui file di configurazione del daemon.
Le chiavi delle proprietà vengono specificate nel formato prefix:property. Ad esempio:
core:hadoop.tmp.dir.
Per ulteriori informazioni, vedi 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 criteri.
--notebook-vpc-network-name La rete VPC Cloud in cui viene eseguito il job. Per impostazione predefinita, la rete VPC Cloud denominata Viene utilizzato il valore predefinito 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à blocco note, il seguente argomento è obbligatorio e deve da passare 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 del blocco note

  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 Programma, fai clic su Visualizza pianificazioni.

    Si apre la scheda Query pianificate con un elenco di pianificazioni del blocco note filtrate dal blocco note 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 Blocco note pianificato e seleziona la pianificazione del blocco note richiesta.

  2. Fai clic su Disabilita per disattivare una pianificazione del blocco note 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 Blocco note pianificato e seleziona la pianificazione del blocco note richiesta.

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

Visualizza i log e gestisci una pianificazione del blocco note

  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 del blocco note pianificato selezionato 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 serverless di Dataproc 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 blocchi note pianificati utilizzando 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 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 blocco note pianificato è archiviato nella posizione da te specificati 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