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:
- La sezione Prima di iniziare di Utilizzare il workbench di esplorazione dei dati
La sezione Prima di iniziare di Pianifica attività Spark e SparkSQL personalizzate
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
Nella console Google Cloud, vai alla pagina Esplora di Dataplex.
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.
Nel menu Pianificazione, 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 in modo ricorrente:
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.
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.
Nella sezione Destinazione per i risultati:
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 pianificato, seleziona un account di servizio dal menu Account di servizio utente.
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
Nella console Google Cloud, vai alla pagina Elabora di Dataplex.
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
Nella console Google Cloud, vai alla pagina Esplora di Dataplex.
Seleziona lo script SQL richiesto.
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
Vai alla scheda Query programmate e seleziona la pianificazione dello script SQL richiesta.
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
Vai alla scheda Query programmate e seleziona la pianificazione dello script SQL richiesta.
Fai clic su Disattiva per disattivare una pianificazione dello script SQL attiva.
Fai clic su Attiva per attivare una pianificazione di script SQL non attiva.
Eliminare una pianificazione dello script SQL esistente
Vai alla scheda Query programmate e seleziona la pianificazione dello script SQL richiesta.
Fai clic su Elimina per eliminare definitivamente una pianificazione dello script SQL esistente.
Visualizzare i log e gestire una pianificazione dello script SQL
Vai alla scheda Query programmate e seleziona la pianificazione dello script SQL richiesta.
Fai clic sulla scheda Job e poi sull'ID job dell'esecuzione dello script SQL pianificato 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 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 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.
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:
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
Pianificare un notebook
Console
Nella console Google Cloud, vai alla pagina Esplora di Dataplex.
Seleziona un notebook da pianificare selezionando un singolo notebook nella visualizzazione Notebook o aprendo un notebook nella pagina dei dettagli del notebook.
Nel menu Pianificazione, fai clic su Crea pianificazione.
Nel campo Nome pianificazione, inserisci un nome per l'istanza pianificata.
Nella sezione Opzioni di pianificazione, seleziona se vuoi eseguire il notebook solo una volta o in modo ricorrente:
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.
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.
Nella sezione Destinazione per i risultati, scegli una posizione in cui memorizzare l'output del blocco note:
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.
Fai clic su Seleziona.
Seleziona il formato di output dello script. I formati supportati sono CSV, JSON, ORC e Parquet.
Nella sezione Credenziali del notebook pianificato, seleziona un account di servizio dal menu Account di servizio utente.
Nella sezione Parametri, aggiungi i parametri di esecuzione per il notebook come coppie chiave-valore facendo clic su Aggiungi nuovo.
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
Nella console Google Cloud, vai alla pagina Elabora di Dataplex.
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
Nella console Google Cloud, vai alla pagina Esplora di Dataplex.
Seleziona il notebook richiesto.
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
Vai alla scheda Notebook pianificati e seleziona la pianificazione del notebook richiesta.
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
Vai alla scheda Notebook pianificato e seleziona la pianificazione del notebook richiesta.
Fai clic su Disattiva per disattivare una pianificazione del notebook attiva.
Fai clic su Attiva per attivare una pianificazione del notebook non attiva.
Eliminare una pianificazione del notebook esistente
Vai alla scheda Notebook pianificato e seleziona la pianificazione del notebook richiesta.
Fai clic su Elimina per eliminare definitivamente una pianificazione del blocco note esistente.
Visualizzare i log e gestire una pianificazione del notebook
Vai alla scheda Notebook pianificato e seleziona la pianificazione del notebook richiesta.
Fai clic sulla scheda Job e poi sull'ID job dell'esecuzione del notebook pianificata che vuoi visualizzare.
Nella sezione Anteprima output, esamina l'output dell'esecuzione del notebook.
Fai clic su Visualizza log per visualizzare i log relativi all'esecuzione pianificata del notebook selezionata 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 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
- Pianifica attività Spark e SparkSQL personalizzate.
- Configura avvisi e notifiche per le attività Dataplex.