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:
- 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 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
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 Editor Spark SQL.
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 Avvio. Per un'esecuzione pianificata, specifica la data di inizio e l'ora di esecuzione.
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.
Nella sezione Destinazione per i risultati, segui questi passaggi:
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 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 Processo di Dataplex.
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
Nella console Google Cloud, vai alla pagina Esplora di Dataplex.
Seleziona lo script SQL richiesto.
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
Vai alla scheda Query pianificate e seleziona la pianificazione dello script SQL richiesto.
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 Abilita per attivare una pianificazione di script SQL non attiva.
Eliminare una pianificazione dello script SQL esistente
Vai alla scheda Query pianificate e seleziona la pianificazione dello script SQL richiesto.
Fai clic su Elimina per eliminare definitivamente una pianificazione di script SQL esistente.
Visualizzare i log e gestire una pianificazione degli script SQL
Vai alla scheda Query pianificate e seleziona la pianificazione dello script SQL richiesto.
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 all'SQL pianificato selezionato eseguito in Cloud Logging.
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.
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 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 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 blocco note
Console
Nella console Google Cloud, vai alla pagina Esplora di Dataplex.
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.
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 il notebook solo una volta o in modo ricorrente:
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.
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.
Nella sezione Destinazione per i risultati, scegli una località in cui vuoi archiviare 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 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
Nella console Google Cloud, vai alla pagina Processo di Dataplex.
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
Nella console Google Cloud, vai alla pagina Esplora di Dataplex.
Seleziona il blocco note 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 di blocco note
Vai alla scheda Blocchi note pianificati e seleziona la pianificazione del blocco note richiesta.
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
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 Abilita per attivare una pianificazione del blocco note inattiva.
Elimina una pianificazione del blocco note 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 Blocco note pianificato e seleziona la pianificazione del blocco note richiesta.
Fai clic sulla scheda Job, quindi sull'ID job dell'esecuzione del blocco note pianificata che vuoi visualizzare.
Nella sezione Output di anteprima, esamina l'output dell'esecuzione del blocco note.
Fai clic su Visualizza log per visualizzare i log relativi all'esecuzione pianificata del notebook selezionata in Cloud Logging.
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.
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
- Pianificare attività Spark e SparkSQL personalizzate.
- Configura avvisi e notifiche per le attività Dataplex.