ausführen. SQL In Google Sheets ohne Apps Script JDBC zu schreiben
Der JDBC-Dienst von Apps Script funktioniert, und diese Seite zeigt Ihnen die Details: den Code, das Sechs-Minuten-Limit, die IP-Bereiche und das Passwort im Skript. Außerdem wird der umgekehrte Weg erläutert: Ein kleiner Agent neben Ihrer Datenbank führt die SQL-Abfragen aus, und ein Google Sheets-Add-on importiert die Daten in Ihre Tabelle. Kein JavaScript, keine Firewall-Änderungen – und das alles im kostenlosen Tarif.
Falls Sie weiterhin Apps Script JDBC benötigen, finden Sie hier die offizielle Version.
Googles JDBC-Dienst Verbindet Apps Script mit MySQL, Google Cloud SQL für MySQL, PostgreSQL, Microsoft SQL Server und Oracle. Das kleinste funktionierende Skript, das ein Tabellenblatt füllt, sieht folgendermaßen aus:
Funktion Kunden laden() { Konstante Eigenschaften = Immobilienservice.getScriptProperties(); // Das Passwort darf nicht in den Code gelangen. Konstante conn = JDBC.Verbindung abrufen('jdbc:mysql://db.example.com:3306/sales', Requisiten.getProperty('DB_USER'), Requisiten.getProperty('DB_PASS')); Konstante rs = conn.createStatement().executeQuery('SELECT customer_id, name, city FROM customers LIMIT 1000'); Konstante Zeilen = []; während (rs.nächste()) Zeilen.drücken([rs.getString(1), rs.getString(2), rs.getString(3)]); rs.schließen(); Verbindung.schließen(); Konstante Blatt = Tabellenkalkulations-App.getActiveSpreadsheet().getSheetByName('Kunden'); Blatt.Inhalt löschen(); Blatt.getRange(1, 1, rows.length, 3).setValues(Zeilen); }
Das Beispiel verwendet MySQL. Bei den anderen Datenbanken ändert sich lediglich die Verbindungszeichenfolge: jdbc:postgresql://, jdbc:sqlserver:// und jdbc:oracle:thin:@ folgen der gleichen Form, und Cloud SQL verwendet jdbc:google:mysql://Bevor dies ausgeführt werden kann, muss Ihre Datenbank Verbindungen von Googles Servern akzeptieren. Google veröffentlicht die Adressbereiche als JSON-Datei Sie müssen diese Konfiguration in Ihre Datenbank-Firewall einbinden und stets aktuell halten. Die Datenbank muss zudem auf Port 1025 oder höher lauschen. Die in der Praxis relevanten Beschränkungen ergeben sich aus Googles Richtlinien. Quotenseite:
| Limit | Persönliches Google-Konto | Google Workspace-Konto |
|---|---|---|
| Skriptlaufzeit, pro Ausführung | 6 Minuten | 6 Minuten |
| Laufzeitumgebung für benutzerdefinierte Funktionen (eine Formel, die JDBC aufruft) | 30 Sekunden | 30 Sekunden |
| JDBC-Verbindungen pro Tag | 10,000 | 50,000 |
| Gleichzeitige Ausführungen pro Benutzer | 30 | 30 |
| Zeitgesteuerte Auslöser, Gesamtlaufzeit pro Tag | 90 Minuten | 6 Stunden |
Zwei Dinge werden im obigen Beispiel verschwiegen. Googles eigene Beispiele übergeben Benutzername und Passwort als Klartextzeichenketten im Code, und die meisten frei verfügbaren Skripte kopieren diese. Der Trick mit den Skripteigenschaften hält sie zwar aus dem Quellcode fern, aber jeder, der das Skript bearbeiten kann, kann sie trotzdem lesen. Außerdem muss jede Zeile in den Speicher des Skripts passen und innerhalb von sechs Minuten verarbeitet werden. Daher bedeutet eine langsame Abfrage oder eine große Tabelle, dass die Arbeit manuell in Teilmengen aufgeteilt werden muss. Wenn Ihre Tabelle klein ist, Ihre Datenbank bereits über das Internet erreichbar ist und nur ein Entwickler das Skript besitzt, ist JDBC ausreichend. Der Rest dieser Seite richtet sich an alle anderen.
Was Sie stattdessen erhalten werden
Ein Google Sheet, das das Ergebnis einer SQL-Abfrage gegen Ihre Datenbank enthält, mit einem Abfrage ausführen Eine Schaltfläche in der Seitenleiste, die bei Bedarf die neuesten Zeilen anzeigt. Zum Beispiel so:
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | kunden_id | Vorname | Nachname | Land | insgesamt |
| 2 | 1042 | Maria | Alvarez | USA | 1,284.50 |
| 3 | 1043 | Daniel | Okafor | USA | 612.00 |
| 4 | 1047 | Priya | Nair | USA | 2,090.75 |
| 5 | 1051 | Thomas | Berg | USA | 338.20 |
| 6 | 1056 | Lucía | Ferreira | USA | 1,455.00 |
| 7 | 1060 | Kenji | Sato | USA | 874.10 |
| 8 |
Live-Daten aus Ihrer DatenbankDer Unterschied liegt im Ausführungsort der Abfrage. Bei JDBC öffnen die Server von Google eine Verbindung zu Ihrer Datenbank, weshalb Ihre Firewall den Zugriff zulassen muss und das Skript das Passwort speichern muss. Bei Query Streams hingegen läuft ein kleines Programm namens Agent auf einem Computer, der bereits Zugriff auf die Datenbank hat. Es stellt eine ausgehende Verbindung zu Query Streams her und führt dort die SQL-Abfrage aus. Das Google Sheets-Add-on fordert die Zeilen an, und nur diese werden übertragen. Ihre Firewall öffnet keine Verbindungen, und das Passwort verlässt den Agenten nie.
Was Sie benötigen
Ein Query Streams-Konto
Für diesen Leitfaden reicht der kostenlose Tarif aus. Melden Sie sich an unter mein.querystreams.de.
Der Agent befindet sich auf einem Computer, der den Server erreichen kann.
Ein kleines Programm, das im Hintergrund läuft und die Datenbank abfragt, wenn Google Sheets dies anfordert. Häufig handelt es sich dabei um den Datenbankserver selbst oder einen beliebigen, ständig eingeschalteten Computer im selben Netzwerk.
Ihre eigenen Verbindungsdaten
Der Servername, der Datenbankname sowie ein Benutzername und ein Passwort mit Leseberechtigung. Falls die Datenbank von jemand anderem verwaltet wird, sollten Sie diese Informationen erfragen.
Welcher Computer erhält den Agenten? Jede ständig eingeschaltete Maschine, die bereits auf Ihre eigene Datenbank zugreifen kann, oft der Datenbankserver selbst oder ein Computer im selben Netzwerk. Google Sheets kann überall seinEs läuft in Ihrem Browser.
Richten Sie es in vier Schritten ein
-
Erstellen Sie Ihr Konto
Gehen Sie zu mein.querystreams.de Melden Sie sich mit dem Google-Konto an, das Sie für Tabellen verwenden. Wählen Sie die Kostenlos Es handelt sich um einen echten Plan, nicht um eine Testversion, und er umfasst zwei Verbindungen und Ad-hoc-SQL-Abfragen aus Google Sheets.
Installieren Sie den Agenten auf einem Computer, der den Server erreichen kann.



Anmelden, öffnen HerunterladenInstallieren Sie den Agenten auf einem Rechner, der bereits auf Ihre Datenbank zugreifen kann: häufig auf dem Datenbankserver selbst oder einem beliebigen, ständig eingeschalteten Rechner im selben Netzwerk. Die Installation dauert etwa eine Minute und der Agent startet anschließend automatisch.
Warum ein kleines Programm anstelle eines Treibers? Der Agent ist eine einmalige Installation für Windows, Mac oder Linux (ca. 85 MB unter Windows, etwas über 100 MB unter Mac und Linux) und läuft unauffällig im Hintergrund. Er stellt eine einzige, verschlüsselte Verbindung zu Query Streams her, genau wie ein Browser. Daher müssen Sie weder einen Firewall-Port öffnen noch ein VPN einrichten. Ihre Datenbank bleibt in Ihrem Netzwerk, und die Datensätze werden – falls nötig über das Internet – an Ihren Standort übertragen. Sie benötigen lediglich das Add-on.
Die Downloadseite zeigt Ihr ZugangsschlüsselFügen Sie es in das Feld des Agenten ein, wenn Sie dazu aufgefordert werden, und warten Sie, bis das Abzeichen gelesen wurde. Verbunden mit AbfrageströmenDas ist das Einzige, was Sie auf dem Agenten selbst tun.
Vollständige Komplettlösungen, falls gewünscht: Fenster, Mac, Linux.
-
Fügen Sie Ihre Datenbankverbindung hinzu.
Im Portal geöffnet Daten → Datenagenten, klicken Anschluss hinzufügen Wählen Sie auf Ihrem Agenten den Datenbanktyp aus und geben Sie Host, Port, Datenbank und ein schreibgeschütztes Login ein. Klicken Sie Testverbindungdann Speichern SieDie Verbindung erreicht den Agenten innerhalb weniger Sekunden. Jede Datenbank hat ihren eigenen Ablauf mit den exakten Feldern: MySQL, PostgreSQL, SQL-Server, OracleCloud SQL-, Amazon RDS- und Azure-Datenbanken werden auf die gleiche Weise verbunden; der Agent muss sie lediglich erreichen können.
Keine IP-Zulassungsliste. Der Agent verbindet sich innerhalb Ihres Netzwerks mit Ihrer Datenbank und über HTTPS mit ausgehenden Abfrageströmen. Es muss keine Liste von Google-Adressen zur Firewall hinzugefügt werden, und es gibt keine weiteren Einstellungen, die synchronisiert werden müssen.
-
Führe die SQL-Anweisung aus Google Sheets aus.
Öffnen Sie Ihre Tabellenkalkulation und Installieren Sie das Add-on „Query Streams“. Falls Sie dies noch nicht getan haben, können Sie es über den Google Workspace Marketplace herunterladen. Es erkennt Ihr bereits angemeldetes Google-Konto; eine separate Anmeldung ist nicht erforderlich. Klicken Sie dazu in der Seitenleiste auf AbfragestreamerWählen Sie Ihre Verbindung aus und fügen Sie dieselbe SELECT-Anweisung ein, die Sie auch im Skript verwendet hätten:
Beispiel · SQLSELECT Kunden-ID, Name, Stadt VON Kunden BEFEHL VON Name LIMIT 1000;
Wählen Sie die Registerkarte unter Zielblatt und klicken Sie Abfrage ausführenDie Zeilen werden unter Ihren Spaltenüberschriften angezeigt. Klicken Sie Abfrage ausführen Rufen Sie die neuesten Daten jederzeit wieder auf. Damit sich das Tabellenblatt automatisch aktualisiert, speichern Sie die Abfrage im Abfrage-Generator und richten Sie eine entsprechende Einstellung ein. Automatisierung, das es nach einem Zeitplan von alle fünf Minuten bis wöchentlich laufen lässt.
Das war’s. Ihre Daten befinden sich in der Tabelle und bleiben mit einem Klick aktuell. Außer den von Ihnen angeforderten Zeilen hat nichts Ihr Netzwerk verlassen.
Seite an Seite, nur was hält
| Apps Script JDBC | Abfrageströme | |
|---|---|---|
| Was Sie schreiben | JavaScript rund um Ihre SQL-Abfrage | Die SQL-Anweisung |
| Wo die Abfrage ausgeführt wird | Auf den Servern von Google, Verbindung zu Ihrer Datenbank | Auf dem Agenten, neben Ihrer Datenbank |
| Datenbankpasswort | Im Skript oder seinen Eigenschaften, lesbar für jeden, der es bearbeiten kann | Nur auf dem Agenten; Sheets-Benutzer sehen es nie. |
| Firewall | Erlauben Sie die von Google veröffentlichten Adressbereiche, Port 1025 oder höher. | Es gehen keine Daten ein; der Agent stellt ausgehende Verbindungen über HTTPS her. |
| Zeitlimit | 6 Minuten pro Ausführung, 30 Sekunden für eine benutzerdefinierte Funktion | Kein Skript, das einen Timeout verursachen könnte; der Agent führt die Abfrage aus und streamt die Zeilen. |
| Quoten | 10.000 oder 50.000 JDBC-Verbindungen pro Tag, 90 Minuten oder 6 Stunden Triggerzeit | Ein monatliches Datenvolumen pro Tarif, ab 5 MB bei Free |
| Einem Kollegen die Daten geben | Kopieren Sie das Skript und die zugehörigen Zugangsdaten. | Teilen Sie die Ergebnisse der Abfrage; der Empfänger führt sie aus und sieht niemals die Anmeldedaten. |
| Nach einem Zeitplan aktualisieren | Zeitgesteuerter Trigger innerhalb des täglichen Laufzeitkontingents | Automatisierung, alle 5 Minuten bis wöchentlich |
| Datenbanken | MySQL, Cloud SQL, PostgreSQL, SQL Server, Oracle | Diese fünf plus MariaDB, Snowflake, BigQuery, SQLite, Access, DuckDB, Ordner mit Dateien und APIs wie Stripe, HubSpot und Shopify |
Was die Pläne erlauben
Ad-hoc-SQL-Abfragen über das Google Sheets-Add-on sind in allen Tarifen enthalten, auch im kostenlosen. Der kostenlose Tarif umfasst zwei Verbindungen und ein monatliches Datenvolumen von 5 MB für Ergebnisse – ausreichend für eine Tabelle wie die obige, die mehrmals täglich aktualisiert wird. Die Ausführung von Abfragen, die Sie im Abfrage-Generator des Add-ons gespeichert haben, ist ab dem Tarif „Personal Core“ möglich; Abfragen, die ein Kollege mit Ihnen teilt, sind in allen Tarifen enthalten. Siehe die Preisseite für die Zulagen nach Plan.
Kostenlos ist ein Plan, den man behält. Es handelt sich nicht um eine Testphase, die abläuft. Sehen Sie genau, was sie beinhaltet, auf der Preisseite.
Fragen, die Menschen stellen
Kann ich mein bestehendes Apps Script behalten und nur das Passwortproblem beheben?
Ja. Verschieben Sie Benutzername und Passwort wie im obigen Beispiel in die Skripteigenschaften und erteilen Sie der Datenbankanmeldung Leserechte. Damit ist das größte Problem behoben. Die Sechs-Minuten-Beschränkung, das tägliche Verbindungskontingent und die Firewall-Zulassungsliste bleiben davon unberührt. Aus diesem Grund verschieben die meisten Benutzer die Abfrage aus Apps Script, sobald die Tabelle für mehr als eine Person relevant ist.
Muss der Agent auf dem Datenbankserver ausgeführt werden?
Nein. Jeder ständig eingeschaltete Computer, der auf die Datenbank zugreifen kann, funktioniert: eine Workstation im Büro, eine kleine virtuelle Maschine oder der Server selbst. Es wird lediglich eine ausgehende HTTPS-Verbindung für die Abfrage von Datenströmen benötigt.
Gibt es eine Zeilenbegrenzung ähnlich der Speicherbegrenzung von JDBC?
Der Agent verarbeitet die Datenzeilen, anstatt das gesamte Ergebnis in einem Skript zu speichern. Die praktischen Grenzen sind daher das Datenvolumen Ihres Tarifs und Google Sheets selbst, das Tabellen auf 20 Millionen Zellen begrenzt (10 Millionen für Konten, die Googles Einführung im September 2026 noch nicht erreicht hat). Beschränken Sie die SELECT-Anweisung auf die benötigten Spalten und den Datumsbereich, dann funktioniert alles reibungslos.
Ich nutze Cloud SQL. Ändert das etwas?
Nur dort, wo der Agent ausgeführt wird. Installieren Sie ihn auf einem Computer oder einer virtuellen Maschine, die die Cloud-SQL-Instanz erreichen kann – entweder über deren öffentliche Adresse mit der autorisierten Agentenadresse oder innerhalb desselben Netzwerks – und verbinden Sie ihn als MySQL, PostgreSQL oder SQL Server. Es muss kein Google-Adressbereich verwaltet werden.
Muss sich meine eigene Datenbank auf dem Computer befinden, auf dem ich Google Tabellen verwende?
Nein. Nur der Agent muss sich am selben Ort wie Ihre Datenbank befinden. Google Tabellen läuft in Ihrem Browser auf jedem Gerät. Öffnen Sie das Add-on mit demselben Google-Konto, und Ihre Verbindungen sind hergestellt.
Werden meine Daten in Query Streams kopiert?
Nein. Der Agent führt die Abfrage dort aus, wo Ihre Daten gespeichert sind, und sendet nur die zurückgegebenen Zeilen. Es werden keine Daten synchronisiert oder zwischengespeichert.
Ist das im kostenlosen Tarif wirklich enthalten?
Ja. „Kostenlos“ ist ein dauerhafter Tarif, keine befristete Testphase. Die genauen Leistungen finden Sie hier: Preisseite.
Aktualisiert sich das Tabellenblatt von selbst?
Klicken Sie erneut auf „Abfrage ausführen“, um die neuesten Zeilen anzuzeigen. Für eine Tabelle, die sich automatisch nach einem Zeitplan aktualisiert, richten Sie eine Automatisierung im Query Streams-Portal ein (Streams → Automatisierung). Diese Funktion ist in jedem Tarif enthalten.
Verwandte Leitfäden
Setup trouble?
- Agent shows Offline, or Test connection and Browse are greyed out? Check that the Agent is online → Is the Agent online?

