Fogli Google è una soluzione di fogli di lavoro basata su cloud che supporta la collaborazione in tempo reale e fornisce strumenti per visualizzare, elaborare e comunicare i dati.
Il seguente esempio mostra come scrivere su Fogli da un flusso di lavoro. Il flusso di lavoro esegue query su un set di dati BigQuery e scrive i risultati in un foglio di lavoro. Utilizza i connettori di Workflows per semplificare la chiamata delle Google Cloud API.
Prima di iniziare
Prima di provare l'esempio riportato in questo documento, assicurati di aver completato quanto segue.
Abilita le API Compute Engine, Google Drive, Google Fogli e Workflows.
Console
gcloud
gcloud services enable \ compute.googleapis.com \ drive.googleapis.com \ sheets.googleapis.com \ workflows.googleapis.com
Prendi nota del service account Account di servizio predefinito di Compute Engine in quanto lo assocerai al flusso di lavoro di esempio a scopo di test. I nuovi progetti che hanno abilitato l'API Compute Engine hanno questo account di servizio creato con il ruolo di editor di base IAM e con il seguente formato email:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
Puoi trovare il numero di progetto nella pagina Benvenuto della console Google Cloud oppure puoi recuperarlo:
gcloud projects describe PROJECT_ID
Per gli ambienti di produzione, ti consigliamo vivamente di creare un nuovo service account e di concedergli uno o più ruoli IAM che contengano le autorizzazioni minime richieste e di seguire il principio del privilegio minimo.
Crea una nuova cartella su Google Drive. Questa cartella viene utilizzata per archiviare il foglio di lavoro. Se configuri un'autorizzazione per la cartella condivisa, il flusso di lavoro può scrivere nel foglio di lavoro.
- Accedi a drive.google.com.
- Fai clic su Nuovo > Nuova cartella.
- Inserisci un nome per la cartella.
- Fai clic su Crea.
- Fai clic con il tasto destro del mouse sulla nuova cartella e seleziona Condividi.
Aggiungi l'indirizzo email per il service account predefinito di Compute Engine.
In questo modo, il account di servizio ha accesso alla cartella. Quando associ ilaccount di serviziot al tuo flusso di lavoro, quest'ultimo avrà l'accesso in modifica a qualsiasi file nella cartella. Scopri di più sulla condivisione di file, cartelle e drive.
Seleziona il ruolo Editor.
Deseleziona la casella di controllo Invia notifiche.
Fai clic su Condividi.
Creazione di un foglio di lavoro
Puoi creare un foglio di lavoro in uno dei seguenti modi:
- Creare un foglio di lavoro utilizzando Fogli Google
- Creare un foglio di lavoro utilizzando il connettore API Fogli Google
Non esiste alcuna opzione per creare un foglio di lavoro direttamente all'interno di una cartella specificata utilizzando l'API Google Sheets. Tuttavia, esistono alternative, tra cui lo spostamento del foglio di lavoro in una cartella specifica dopo la creazione, come mostrato negli esempi seguenti. Per ulteriori informazioni, vedi Utilizzare le cartelle di Google Drive.
Creare un foglio di lavoro utilizzando Fogli Google
Quando crei un foglio di lavoro tramite Fogli Google, questo viene salvato su Google Drive. Per impostazione predefinita, il foglio di lavoro viene salvato nella cartella principale di Drive.
Vai alla pagina sheets.google.com.
Fai clic su Nuovo
.
Viene creato e aperto un nuovo foglio di lavoro. Ogni foglio di lavoro ha un valore
spreadsheetId
univoco, contenente lettere, numeri, trattini o trattini bassi. Puoi trovare l'ID del foglio di lavoro in un URL di Fogli Google:https://docs.google.com/spreadsheets/d/spreadsheetId/edit#gid=0
Prendi nota di questo ID perché ti servirà quando crei il flusso di lavoro.
Sposta il foglio di lavoro nella cartella di Google Drive che hai creato in precedenza:
- Nel foglio di lavoro, seleziona File > Sposta.
- Vai alla cartella che hai creato.
- Fai clic su Sposta.
Creare un foglio di lavoro utilizzando il connettore API Fogli Google
Puoi utilizzare il connettore API Google Sheets per creare un foglio di lavoro. Poiché Workflows utilizza l'account di servizio come identità del trigger, il foglio di lavoro viene creato nella cartella principale di Google Drive dell'account di servizio. Puoi quindi spostare il foglio di lavoro in un'altra cartella.
Nel seguente flusso di lavoro, spreadsheetId
viene
recuperato dal risultato resp
:
YAML
JSON
Sostituisci FOLDER_ID
con l'ID della cartella in cui vuoi spostare il foglio di lavoro. Ogni cartella di Drive ha un ID univoco contenente lettere, numeri, trattini o trattini bassi. Puoi trovare l'ID della cartella nell'URL della cartella:
https://drive.google.com/drive/folders/FOLDER_ID/edit#gid=0
Per saperne di più, vedi Creare e compilare cartelle.
L'output del flusso di lavoro dovrebbe essere simile al seguente, in cui il valore id
è spreadsheetId
:
"body": { "id": "spreadsheetId", "kind": "drive#file", "mimeType": "application/vnd.google-apps.spreadsheet", "name": "Untitled spreadsheet" }
Esplora il set di dati pubblico BigQuery
BigQuery ospita una serie di set di dati pubblici disponibili per l'esecuzione di query da parte del pubblico.
In BigQuery, puoi eseguire un job di query interattiva (on demand). Ad esempio, la seguente query restituisce i 100 nomi più popolari in un set di dati specifico e scrive l'output in una tabella temporanea. Questa è la query che verrà eseguita dal flusso di lavoro.
Console
Nella console Google Cloud , vai alla pagina BigQuery.
Inserisci la seguente query SQL di BigQuery nell'area di testo Editor query:
SELECT name, gender, SUM(number) AS total FROM `bigquery-public-data.usa_names.usa_1910_2013` GROUP BY name, gender ORDER BY total DESC LIMIT 100
Fai clic su Esegui.
bq
Nel terminale, inserisci il seguente comando bq query
per eseguire una
query interattiva utilizzando la sintassi SQL standard:
bq query \ --use_legacy_sql=false \ 'SELECT name, gender, SUM(number) AS total FROM `bigquery-public-data.usa_names.usa_1910_2013` GROUP BY name, gender ORDER BY total DESC LIMIT 100'
Esegui il deployment di un flusso di lavoro che scrive in Fogli
Esegui il deployment di un flusso di lavoro che esegue query su un set di dati BigQuery utilizzando il connettore API BigQuery e che scrive i risultati in un foglio di lavoro utilizzando il connettore API Google Sheets.
Console
Nella console Google Cloud , vai alla pagina Workflows:
Fai clic su
Crea.Inserisci un nome per il nuovo flusso di lavoro:
read-bigquery-write-sheets
.Nell'elenco Regione, seleziona us-central1 (Iowa).
Per Service account, seleziona il account di servizio predefinito di Compute Engine (
PROJECT_NUMBER-compute@developer.gserviceaccount.com
).Fai clic su Avanti.
Nell'editor del workflow, inserisci la seguente definizione per il workflow:
Sostituisci il valore del segnaposto
sheetId
con il tuospreadsheetId
.Fai clic su Esegui il deployment.
gcloud
Crea un file di codice sorgente per il workflow:
touch read-bigquery-write-sheets.yaml
In un editor di testo, copia il seguente flusso di lavoro nel file del codice sorgente:
Sostituisci il valore del segnaposto
sheetId
con il tuospreadsheetId
.Esegui il deployment del flusso di lavoro inserendo questo comando:
gcloud workflows deploy read-bigquery-write-sheets \ --source=read-bigquery-write-sheets.yaml \ --location=us-central1 \ --service-account=PROJECT_NUMBER-compute@developer.gserviceaccount.com
Sostituisci
PROJECT_NUMBER
con il numero del tuo progetto Google Cloud. Puoi trovare il numero di progetto nella pagina Benvenuto della console Google Cloud .
Esegui il flusso di lavoro e verifica i risultati
L'esecuzione di un workflow esegue la definizione attuale del workflow associata al workflow.
Esegui il workflow:
Console
Nella console Google Cloud , vai alla pagina Workflows:
Nella pagina Workflows, seleziona il workflow read-bigquery-write-sheets per andare alla relativa pagina dei dettagli.
Nella pagina Dettagli workflow, fai clic su play_arrow Esegui.
Fai di nuovo clic su Esegui.
Visualizza i risultati del flusso di lavoro nel riquadro Output.
L'output dovrebbe essere simile al seguente:
{ "spreadsheetId": "1pgkNY7mWICA6o6INUNLHGnmk0Tdioh0nUghZPOYPpZA", "updatedCells": 303, "updatedColumns": 3, "updatedRange": "Sheet1!A1:C101", "updatedRows": 101 }
gcloud
Apri un terminale.
Esegui il workflow:
gcloud workflows run read-bigquery-write-sheets
I risultati dell'esecuzione dovrebbero essere simili ai seguenti:
Waiting for execution [4dcf737b-69d9-4081-b8d9-86d39ae86bd1] to complete...done. argument: 'null' duration: 3.131912897s endTime: '2023-01-25T14:59:46.818828242Z' name: projects/918619793306/locations/us-central1/workflows/read-bigquery-write-sheets/executions/4dcf737b-69d9-4081-b8d9-86d39ae86bd1 result: '{"spreadsheetId":"1pgkNY7mWICA6o6INUNLHGnmk0Tdioh0nUghZPOYPpZA","updatedCells":303,"updatedColumns":3,"updatedRange":"Sheet1!A1:C101","updatedRows":101}' startTime: '2023-01-25T14:59:43.686915345Z' state: SUCCEEDED
Verifica che il flusso di lavoro abbia scritto i risultati della query nel tuo foglio di lavoro. Ad esempio, il numero di colonne e righe nel foglio di lavoro deve corrispondere ai valori
updatedColumns
eupdatedRows
.
Passaggi successivi
- Attivare un flusso di lavoro da Fogli Google.
- Mettere in pausa e riprendere un flusso di lavoro utilizzando i callback e Fogli Google.
- Esplora il Centro didattico Google Workspace.