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:
- La sezione Prima di iniziare di Utilizzare il workbench per l'esplorazione dei dati
La sezione Prima di iniziare di Pianificare attività Spark e SparkSQL personalizzate
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
Nella console Google Cloud, vai alla pagina Esplora di Dataplex.
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.
Nel menu Programma, fai clic su Crea pianificazione.
Nel campo Nome pianificazione, inserisci un nome per l'istanza pianificata.
Nella sezione Opzioni di pianificazione, scegli se eseguire lo script SQL
solo una volta o su base ricorrente: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.
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.
Nella sezione Destinazione dei risultati, procedi nel seguente modo:
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.
Fai clic su Seleziona.
Seleziona il Formato di output dello script. I formati supportati sono CSV, JSON, ORC e Parquet.
Nella sezione Credenziali dello script pianificate, seleziona un account di servizio dal menu Account di servizio utente.
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
Nella console Google Cloud, vai alla pagina Processo Dataplex.
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
Nella console Google Cloud, vai alla pagina Esplora di Dataplex.
Seleziona lo script SQL richiesto.
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
Vai alla scheda Query pianificate e seleziona la pianificazione degli script SQL richiesta.
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
Vai alla scheda Query pianificate e seleziona la pianificazione degli script SQL richiesta.
Fai clic su Disabilita per disattivare una pianificazione di script SQL attiva.
Fai clic su Abilita per attivare una pianificazione di script SQL non attivo.
Elimina una pianificazione di script SQL esistente
Vai alla scheda Query pianificate e seleziona la pianificazione degli script SQL richiesta.
Fai clic su Elimina per eliminare definitivamente una pianificazione di script SQL esistente.
Visualizza i log e gestisci la pianificazione di uno script SQL
Vai alla scheda Query pianificate e seleziona la pianificazione degli script SQL richiesta.
Fai clic sulla scheda Job, quindi sull'ID job dell'esecuzione di script SQL pianificata che vuoi visualizzare.
Fai clic su Visualizza log per visualizzare i log relativi allo script SQL pianificato selezionato eseguito in Cloud Logging.
Fai clic sull'ID batch Dataproc per aprire la pagina Dataproc nella console Google Cloud. Accedi ai dettagli della sessione Dataproc Serverless corrispondente.
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 environmenthas 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:
Aggiungi il pacchetto
google-cloud-sdk
all'elenco dei pacchetti conda da installare.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
Nella console Google Cloud, vai alla pagina Esplora di Dataplex.
Seleziona un blocco note da pianificare, selezionandone uno nella visualizzazione Blocchi note o aprendolo nella pagina dei dettagli del blocco note.
Nel menu Programma, fai clic su Crea pianificazione.
Nel campo Nome pianificazione, inserisci un nome per l'istanza pianificata.
Nella sezione Opzioni di pianificazione, scegli se eseguire il blocco note una sola volta o su base ricorrente:
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.
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.
Nella sezione Destinazione dei risultati, scegli una posizione in cui archiviare l'output del blocco note:
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.
Fai clic su Seleziona.
Seleziona il Formato di output dello script. I formati supportati sono CSV, JSON, ORC e Parquet.
Nella sezione Credenziali blocco note pianificate, seleziona un account di servizio dal menu Account di servizio utente.
Nella sezione Parametri, aggiungi i parametri di esecuzione per il blocco note come coppie chiave-valore facendo clic su Aggiungi nuovo.
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
Nella console Google Cloud, vai alla pagina Processo Dataplex.
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
Nella console Google Cloud, vai alla pagina Esplora di Dataplex.
Seleziona il blocco note richiesto.
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
Vai alla scheda Blocchi note pianificati e seleziona la pianificazione richiesta per il blocco note.
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
Vai alla scheda Blocco note pianificato e seleziona la pianificazione richiesta per il blocco note.
Fai clic su Disabilita per disattivare la pianificazione di un blocco note attivo.
Fai clic su Abilita per attivare la pianificazione di un blocco note non attivo.
Elimina una pianificazione del blocco note esistente
Vai alla scheda Blocco note pianificato e seleziona la pianificazione richiesta per il blocco note.
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
Vai alla scheda Blocco note pianificato e seleziona la pianificazione richiesta per il blocco note.
Fai clic sulla scheda Job, quindi sull'ID job dell'esecuzione del blocco note pianificata che vuoi visualizzare.
Nella sezione Anteprima output, esamina l'output dell'esecuzione del blocco note.
Fai clic su Visualizza log per visualizzare i log relativi al blocco note pianificato selezionato eseguito in Cloud Logging.
Fai clic sull'ID batch Dataproc per aprire la pagina Dataproc nella console Google Cloud. Accedi ai dettagli della sessione Dataproc Serverless corrispondente.
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
- Pianificare attività Spark e SparkSQL personalizzate.
- Configura avvisi e notifiche per le attività Dataplex.