Correre SQL In Fogli di Google senza scrivere Apps Script JDBC
Il servizio JDBC di Apps Script funziona, e questa pagina ne mostra la versione completa: il codice, il limite di sei minuti, gli intervalli IP e la password nello script. Viene poi mostrato anche il metodo alternativo: un piccolo agente installato accanto al database esegue le query SQL e un componente aggiuntivo di Google Sheets importa i dati nel foglio di calcolo. Non è necessario JavaScript, né modificare il firewall, e il piano gratuito lo include.
Se desideri ancora Apps Script JDBC, ecco la versione onesta
Di Google Servizio JDBC Consente di collegare Apps Script a MySQL, Google Cloud SQL per MySQL, PostgreSQL, Microsoft SQL Server e Oracle. Il più piccolo script funzionante che occupa un foglio di calcolo ha questo aspetto:
funzione caricaClienti() { costa oggetti di scena = Servizio Proprietà.getScriptProperties(); // non inserire la password nel codice costa conn = Jdbc.ottenere la connessione('jdbc:mysql://db.example.com:3306/sales', oggetti di scena.getProperty('DB_USER'), oggetti di scena.getProperty('DB_PASS')); costa rs = conn.createStatement().eseguireQuery('SELECT customer_id, name, city FROM customers LIMIT 1000'); costa righe = []; Mentre (rs.Prossimo()) righe.spingere([rs.ottenereStringa(1), rs.ottenereStringa(2), rs.ottenereStringa(3)]); rs.vicino(); conn.vicino(); costa foglio = Applicazione per fogli di calcolo.getActiveSpreadsheet().getSheetByName('Clienti'); foglio.clearContents(); foglio.getRange(1, 1, lunghezza righe, 3).impostare i valori(righe); }
L'esempio utilizza MySQL. Per gli altri motori cambia solo la stringa di connessione: jdbc:postgresql://, jdbc:sqlserver:// e jdbc:oracle:thin:@ seguono la stessa forma e Cloud SQL utilizza jdbc:google:mysql://. Prima che venga eseguito, il tuo database deve accettare connessioni dai server di Google. Google pubblica gli intervalli di indirizzi come un file JSON che aggiungi al firewall del tuo database e mantienilo aggiornato, e il database deve essere in ascolto su una porta 1025 o superiore. I limiti che in pratica pesano provengono da Google pagina delle quote:
| Limite | Account Google personale | Account Google Workspace |
|---|---|---|
| Tempo di esecuzione dello script, per esecuzione | 6 minuti | 6 minuti |
| Runtime di funzioni personalizzate (una formula che richiama JDBC) | 30 secondi | 30 secondi |
| Connessioni JDBC al giorno | 10,000 | 50,000 |
| Esecuzioni simultanee per utente | 30 | 30 |
| Attivatori temporizzati, tempo di esecuzione totale al giorno | 90 minuti | 6 ore |
Ci sono due cose che l'esempio qui sopra nasconde. Gli esempi di Google passano nome utente e password come semplici stringhe nel codice, e la maggior parte degli script in circolazione copiano questo comportamento; il trucco delle proprietà dello script li tiene fuori dal codice sorgente, ma chiunque possa modificare lo script può comunque leggerli. Inoltre, ogni riga deve rientrare nella memoria dello script e l'esecuzione deve terminare entro sei minuti, quindi una query lenta o una tabella di grandi dimensioni implicano la suddivisione manuale del lavoro in blocchi. Se la tabella è piccola, il database è già accessibile da Internet e lo script è di proprietà di un singolo sviluppatore, JDBC va bene. Il resto di questa pagina è per tutti gli altri.
Quello che otterrai invece
Un foglio Google che contiene il risultato di una query SQL sul tuo database, con un Eseguire la query Un pulsante nel pannello laterale che visualizza le righe più recenti ogni volta che lo desideri. Ad esempio:
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | ID cliente | nome di battesimo | cognome | Paese | totale |
| 2 | 1042 | Maria | Alvarez | U.S.A. | 1,284.50 |
| 3 | 1043 | Daniel | Okafor | U.S.A. | 612.00 |
| 4 | 1047 | Priya | Nair | U.S.A. | 2,090.75 |
| 5 | 1051 | Tommaso | Berg | U.S.A. | 338.20 |
| 6 | 1056 | Lucia | Ferreira | U.S.A. | 1,455.00 |
| 7 | 1060 | Kenji | Sato | U.S.A. | 874.10 |
| 8 |
In diretta dal tuo databaseLa differenza sta nel luogo in cui viene eseguita la query. Con JDBC, i server di Google aprono una connessione al tuo database, quindi il firewall deve consentire l'accesso e lo script deve memorizzare la password. Con Query Streams, un piccolo programma chiamato Agent viene eseguito su un computer che può già raggiungere il database, stabilisce una connessione in uscita verso Query Streams ed esegue lì la query SQL. Il componente aggiuntivo di Google Sheets richiede le righe e solo le righe vengono inviate. Non viene aperta alcuna connessione sul firewall e la password non lascia mai l'Agent.
Cosa ti servirà
Un account Query Streams
Il piano gratuito è sufficiente per questa guida. Registrati su my.querystreams.com.
L'agente su un computer che può raggiungere il server
Un piccolo programma che viene eseguito in background e interroga il database quando Google Sheets lo richiede. Spesso si tratta del server di database stesso, oppure di un qualsiasi computer sempre acceso sulla stessa rete.
I tuoi dati di connessione
Il nome del server, il nome del database e un nome utente e una password che consentano l'accesso in lettura. Se la gestione del database è affidata a qualcun altro, è a lui che bisogna chiedere queste informazioni.
Quale computer riceve l'agente? Qualsiasi macchina sempre accesa in grado di accedere al proprio database, spesso il server di database stesso o un computer sulla stessa rete. Google Sheets può essere ovunque; funziona nel tuo browser.
Configuralo in quattro passaggi
-
Crea il tuo account
Vai a my.querystreams.com e registrati con l'account Google che usi per Fogli. Scegli il Gratuito Piano. Si tratta di un piano reale, non di una prova, che prevede due connessioni e query SQL ad hoc da Fogli Google.
Installa l'agente su un computer in grado di raggiungere il server.



Accedi, apri ScaricamentoInstalla l'agente su una macchina che possa già accedere al tuo database: spesso il server del database stesso, oppure un qualsiasi computer sempre acceso sulla stessa rete. L'installazione richiede solo un minuto e da quel momento in poi l'agente funzionerà autonomamente.
Perché un piccolo programma invece di un driver? L'Agent è un componente aggiuntivo installabile su Windows, Mac o Linux (circa 85 MB su Windows, poco più di 100 MB su Mac e Linux) che funziona silenziosamente in background. Stabilisce una connessione in uscita crittografata con Query Streams, nello stesso modo di un browser, quindi non è necessario aprire porte del firewall né configurare una VPN. Il database rimane sulla rete locale e i dati vengono trasferiti ovunque ci si trovi, anche tramite Internet se necessario. L'unico elemento di cui è necessario occuparsi è l'add-on.
La pagina di download mostra La tua chiave di accesso. Incollalo nell'Agente quando richiesto e attendi che il badge venga letto Connesso ai flussi di queryQuesta è l'unica operazione che si esegue sull'agente stesso.
Se volete, potete trovare le guide complete: Finestre, Mac, Linux.
-
Aggiungi la connessione al database
Nel portale aperto Dati → Agenti dati, clicca Aggiungi connettore Sul tuo agente, scegli il tipo di database e inserisci host, porta, database e un login di sola lettura. Fai clic Verifica la connessione, quindi RisparmiareLa connessione raggiunge l'agente in pochi secondi. Ogni database ha la sua procedura dettagliata con i campi esatti: MySQL, PostgreSQL, SQL Server, OracoloI database Cloud SQL, Amazon RDS e Azure si connettono allo stesso modo; l'agente deve solo essere in grado di raggiungerli.
Nessuna lista IP consentita. L'agente si connette al database dall'interno della rete locale e invia i flussi di query in uscita tramite HTTPS. Non è necessario aggiungere alcun elenco di indirizzi Google al firewall né tenere traccia di nulla.
-
Esegui la query SQL da Fogli Google
Apri il tuo foglio di calcolo e installare il componente aggiuntivo Query Streams dal Google Workspace Marketplace, se non l'hai ancora fatto. Riconosce l'account Google con cui hai già effettuato l'accesso; non è necessario un accesso separato. Nel pannello laterale fai clic su Streamer di querySeleziona la tua connessione e incolla la stessa istruzione SELECT che avresti inserito nello script:
Esempio · SQLSELEZIONARE ID cliente, nome, città DA clienti ORDINE DI nome LIMITE 1000;
Seleziona la scheda sotto Scheda di destinazione e clicca Eseguire la queryLe righe vengono posizionate sotto le intestazioni di colonna. Fai clic Eseguire la query di nuovo ogni volta che desideri i dati più recenti. Per aggiornare automaticamente il foglio, salva la query in Query Builder e imposta un Automazioneche lo esegue con una frequenza che varia da ogni cinque minuti a settimanalmente.
Questo è tutto. I tuoi dati sono presenti nel foglio di calcolo e rimangono aggiornati con un solo clic. Nulla ha lasciato la tua rete, a parte le righe che hai richiesto.
Fianco a fianco, solo ciò che resiste
| Apps Script JDBC | Flussi di query | |
|---|---|---|
| Ciò che scrivi | JavaScript intorno al tuo SQL | Il SQL |
| Dove viene eseguita la query | Sui server di Google, la connessione al tuo database | Sull'agente, accanto al tuo database |
| Password del database | Nello script o nelle sue proprietà, leggibile da chiunque possa modificarlo | Solo sull'agente; gli utenti di Fogli non lo vedono mai |
| Firewall | Consenti l'utilizzo degli intervalli di indirizzi pubblicati da Google, porta 1025 o superiore. | Nessun segnale in entrata; l'agente si connette tramite HTTPS. |
| Limite di tempo | 6 minuti per esecuzione, 30 secondi per una funzione personalizzata | Nessuno script che vada in timeout; l'agente esegue la query e trasmette le righe in streaming. |
| quote | 10.000 o 50.000 connessioni JDBC al giorno, 90 minuti o 6 ore di tempo di attivazione | Una quota dati mensile per piano, a partire da 5 MB sul piano gratuito |
| Dare i dati a un collega | Copia lo script e le credenziali al suo interno. | Condividi i risultati della query; il destinatario la esegue, senza mai visualizzare le credenziali di accesso. |
| Aggiorna secondo una programmazione | Attivazione a tempo all'interno della quota di runtime giornaliera | Automazione, ogni 5 minuti o settimanalmente |
| Database | MySQL, Cloud SQL, PostgreSQL, SQL Server, Oracle | Questi cinque, più MariaDB, Snowflake, BigQuery, SQLite, Access, DuckDB, cartelle di file e API come Stripe, HubSpot e Shopify. |
Cosa consentono i piani
La funzionalità SQL ad hoc del componente aggiuntivo Fogli Google è disponibile in tutti i piani, incluso quello gratuito. Il piano gratuito include due connessioni e un limite mensile di 5 MB di dati, sufficiente per una tabella come quella sopra riportata, aggiornata più volte al giorno. L'esecuzione delle query salvate in Query Builder tramite il componente aggiuntivo è disponibile a partire dal piano Personal Core; le query condivise da un collega sono invece disponibili in tutti i piani. Consulta la pagina dei prezzi per le indennità previste dal piano.
Gratis è un piano che mantieni. Non è una prova che scade. Scopri esattamente cosa include su pagina dei prezzi.
Domande che le persone si pongono
Posso mantenere il mio Apps Script esistente e risolvere solo il problema della password?
Sì. Sposta il nome utente e la password nelle proprietà dello script, come nell'esempio precedente, e assegna all'accesso al database i diritti di sola lettura. Questo risolve la maggior parte dei problemi. Non modifica il limite di sei minuti, la quota di connessioni giornaliere o la lista di elementi consentiti dal firewall, motivo per cui la maggior parte degli utenti sposta la query fuori da Apps Script quando il foglio di calcolo è rilevante per più di una persona.
L'agente deve essere eseguito sul server del database?
No. Qualsiasi computer sempre acceso in grado di raggiungere il database va bene: una workstation in ufficio, una piccola macchina virtuale o il server stesso. È sufficiente che sia attivo il protocollo HTTPS in uscita verso Query Streams.
Esiste un limite di righe, simile al limite di memoria di JDBC?
L'agente elabora le righe in streaming anziché memorizzare l'intero risultato in uno script, quindi i limiti pratici sono rappresentati dalla quantità di dati inclusa nel tuo piano e da Google Sheets stesso, che limita un foglio di calcolo a 20 milioni di celle (10 milioni per gli account che non hanno ancora raggiunto il livello previsto dal lancio di Google di settembre 2026). Limita la query SELECT alle colonne e all'intervallo di date necessari e entrambi i limiti rimarranno gestibili.
Utilizzo Cloud SQL. Questo cambia qualcosa?
Solo dove è in esecuzione l'Agent. Installalo su un computer o una macchina virtuale in grado di raggiungere l'istanza di Cloud SQL, tramite il suo indirizzo pubblico con l'indirizzo dell'Agent autorizzato, oppure all'interno della stessa rete, e connettilo come MySQL, PostgreSQL o SQL Server. Non è necessario gestire alcun intervallo di indirizzi Google.
Il mio database deve necessariamente trovarsi sullo stesso computer che utilizzo con Fogli Google?
No. Solo l'agente deve trovarsi nella stessa posizione del tuo database. Google Sheets funziona nel tuo browser su qualsiasi dispositivo. Apri il componente aggiuntivo con lo stesso account Google e le tue connessioni saranno lì.
I miei dati vengono copiati in Query Streams?
No. L'agente esegue la query nel luogo in cui si trovano i tuoi dati e invia solo le righe restituite. Nulla viene sincronizzato o memorizzato nel frattempo.
Il piano gratuito copre davvero tutto questo?
Sì. La versione gratuita è un piano che mantieni, non una prova che scade. Scopri esattamente cosa include su pagina dei prezzi.
Il foglio si aggiorna automaticamente?
Fai clic su "Esegui query" ogni volta che desideri visualizzare le righe più recenti. Per un foglio di calcolo che si aggiorni automaticamente a intervalli regolari senza alcun intervento umano, configura un'automazione nel portale Query Streams (Streams → Automazione). Questa opzione è disponibile in tutti i piani.

