Ejecutar SQL en Hojas de cálculo de Google sin escribir código JDBC de Apps Script
El servicio JDBC de Apps Script funciona, y esta página te muestra su funcionamiento real: el código, el límite de seis minutos, los rangos de IP y la contraseña en el script. Luego, muestra la otra opción: un pequeño agente junto a tu base de datos ejecuta la consulta SQL, y un complemento de Google Sheets extrae las filas a tu hoja de cálculo. Sin JavaScript, sin cambios en el firewall, y todo incluido en el plan gratuito.
Si aún quieres Apps Script JDBC, aquí tienes la versión honesta.
Google Servicio JDBC Conecta Apps Script con MySQL, Google Cloud SQL para MySQL, PostgreSQL, Microsoft SQL Server y Oracle. El script funcional más pequeño que ocupa una hoja de cálculo tiene este aspecto:
función cargarClientes() { constante propiedades = Servicio de propiedades.obtenerPropiedadesDeScript(); // Mantén la contraseña fuera del código constante conexión = Jdbc.obtenerConexión('jdbc:mysql://db.example.com:3306/sales', accesorios.obtenerPropiedad('USUARIO_DB'), accesorios.obtenerPropiedad('DB_PASS')); constante rs = conn.crearDeclaración().ejecutarConsulta('SELECT customer_id, name, city FROM customers LIMIT 1000'); constante filas = []; mientras (rs.próximo()) filas.empujar([rs.obtenerCadena(1), rs.obtenerCadena(2), rs.obtenerCadena(3)]); rs.cerca(); conexión.cerca(); constante hoja = Aplicación de hoja de cálculo.obtenerHojaDeCálculoActiva().obtenerHojaPorNombre('Clientes'); hoja.borrarContenido(); hoja.obtenerRango(1, 1, rows.length, 3).establecer valores(filas); }
El ejemplo utiliza MySQL. Para los demás motores, solo cambia la cadena de conexión: jdbc:postgresql://, jdbc:sqlserver:// y jdbc:oracle:thin:@ siguen la misma forma y Cloud SQL utiliza jdbc:google:mysql://. Antes de que eso se ejecute, su base de datos debe aceptar conexiones de los servidores de Google. Google publica los rangos de direcciones como un archivo JSON que agregue a su firewall de base de datos y manténgalo actualizado, y la base de datos debe escuchar en el puerto 1025 o superior. Los límites que se aplican en la práctica provienen de Google. página de cuotas:
| Límite | Cuenta personal de Google | Cuenta de Google Workspace |
|---|---|---|
| Tiempo de ejecución del script, por ejecución | 6 minutos | 6 minutos |
| Tiempo de ejecución de función personalizada (una fórmula que llama a JDBC) | 30 segundos | 30 segundos |
| Conexiones JDBC por día | 10,000 | 50,000 |
| Ejecuciones simultáneas por usuario | 30 | 30 |
| Disparadores basados en el tiempo, tiempo total de ejecución por día | 90 minutos | 6 horas |
Hay dos cosas que el ejemplo anterior oculta. Los ejemplos de Google pasan el nombre de usuario y la contraseña como cadenas de texto simples en el código, y la mayoría de los scripts copian eso; el truco de las propiedades del script los mantiene fuera del código fuente, pero cualquiera que pueda editar el script aún puede leerlos. Además, cada fila debe caber en la memoria del script y completarse en menos de seis minutos, por lo que una consulta lenta o una tabla grande implica dividir el trabajo manualmente. Si su tabla es pequeña, su base de datos ya es accesible desde internet y un solo desarrollador es el propietario del script, JDBC es suficiente. El resto de esta página es para todos los demás.
En lo que te quedarás en cambio
Una hoja de cálculo de Google que contiene el resultado de una consulta SQL en su base de datos, con una Ejecutar consulta Botón en el panel lateral que muestra las últimas filas cuando lo desees. Así:
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | customer_id | nombre de pila | apellido | país | total |
| 2 | 1042 | María | Álvarez | EE.UU | 1,284.50 |
| 3 | 1043 | Daniel | Okafor | EE.UU | 612.00 |
| 4 | 1047 | Priya | Nair | EE.UU | 2,090.75 |
| 5 | 1051 | Thomas | Iceberg | EE.UU | 338.20 |
| 6 | 1056 | Lucía | Ferreira | EE.UU | 1,455.00 |
| 7 | 1060 | Kenji | Sato | EE.UU | 874.10 |
| 8 |
Directamente desde su base de datosLa diferencia radica en dónde se ejecuta la consulta. Con JDBC, los servidores de Google abren una conexión a tu base de datos, por lo que tu firewall debe permitir el acceso y el script debe almacenar la contraseña. Con Query Streams, un pequeño programa llamado Agente se ejecuta en un equipo que ya tiene acceso a la base de datos, establece una conexión saliente a Query Streams y ejecuta la consulta SQL allí. El complemento de Google Sheets solicita las filas y solo se transmiten las filas. No se abre ninguna conexión en tu firewall y la contraseña nunca sale del Agente.
Lo que necesitarás
Una cuenta de Query Streams
El plan gratuito es suficiente para esta guía. Regístrate en mi.querystreams.com.
El agente en un ordenador que pueda acceder al servidor.
Un pequeño programa que se ejecuta en segundo plano y consulta la base de datos cuando Google Sheets lo solicita. Generalmente, se trata del propio servidor de la base de datos o de cualquier ordenador que esté siempre encendido en la misma red.
Tus propios datos de conexión
El nombre del servidor, el nombre de la base de datos y un nombre de usuario y contraseña para acceder a ella. Si otra persona administra la base de datos, esta es la información que debe solicitarle.
¿Qué ordenador recibe el Agente? Cualquier máquina que esté siempre encendida y que pueda acceder a su propia base de datos, a menudo el propio servidor de la base de datos o un ordenador de la misma red. Google Sheets puede estar en cualquier lugar; se ejecuta en tu navegador.
Configúralo en cuatro pasos.
-
Crea tu cuenta
Ir a mi.querystreams.com y regístrese con la cuenta de Google que usa para Hojas de cálculo. Elija la Gratis Es un plan real, no una prueba, y abarca dos conexiones y SQL ad-hoc desde Google Sheets.
Instale el agente en un ordenador que pueda acceder al servidor.



Iniciar sesión, abrir DescargarInstale el agente en una máquina que ya pueda acceder a su base de datos: normalmente, el propio servidor de la base de datos o cualquier ordenador que esté siempre encendido en la misma red. El proceso tarda un minuto y, a partir de ese momento, se inicia automáticamente.
¿Por qué un programa pequeño en lugar de un controlador? El Agente es una única instalación para Windows, Mac o Linux (aproximadamente 85 MB en Windows, algo más de 100 MB en Mac y Linux) que se ejecuta discretamente en segundo plano. Establece una única conexión saliente cifrada a Query Streams, del mismo modo que lo hace un navegador, por lo que no es necesario abrir ningún puerto del firewall ni configurar una VPN. Su base de datos permanece en su red y las filas se transmiten a dondequiera que se encuentre, incluso a través de internet si es necesario. Lo único que debe instalar es el complemento.
La página de descarga muestra Su clave de accesoPégalo en el Agente cuando te lo pida y espera a que aparezca la insignia. Conectado a flujos de consulta. Eso es lo único que debes hacer en el propio Agente.
Si lo deseas, aquí tienes las guías completas: Ventanas, Impermeable, Linux.
-
Agregue su conexión a la base de datos
En el portal abierto Datos → Agentes de datos, haga clic Agregar conector En su Agente, elija el tipo de base de datos y complete el host, el puerto, la base de datos y un inicio de sesión de solo lectura. Haga clic en Probar la conexión, entonces GuardarLa conexión llega al agente en pocos segundos. Cada base de datos tiene su propio tutorial con los campos exactos: MySQL, PostgreSQL, Servidor SQL, OracleLas bases de datos Cloud SQL, Amazon RDS y Azure se conectan de la misma manera; el agente solo necesita poder acceder a ellas.
No hay lista de direcciones IP permitidas. El agente se conecta a su base de datos desde dentro de su red y a los flujos de consultas salientes a través de HTTPS. No es necesario añadir ninguna lista de direcciones de Google al cortafuegos ni realizar ninguna configuración adicional.
-
Ejecuta la consulta SQL desde Google Sheets.
Abre tu hoja de cálculo y Instale el complemento Query Streams. desde Google Workspace Marketplace si aún no lo has hecho. Reconoce la cuenta de Google con la que ya has iniciado sesión; no hay un inicio de sesión por separado. En el panel lateral haz clic Transmisión de consultas, elige tu conexión y pega la misma sentencia SELECT que habrías puesto en el script:
Ejemplo · SQLSELECCIONE ID del cliente, nombre, ciudad DESDE clientes ORDEN POR nombre LÍMITE 1000;
Seleccione la pestaña debajo Hoja de destino y haga clic Ejecutar consultaLas filas se colocan debajo de los encabezados de columna. Haga clic. Ejecutar consulta de nuevo cuando quieras los datos más recientes. Para que la hoja se actualice automáticamente, guarda la consulta en el Generador de consultas y configura una Automatización, que lo emite con una periodicidad que varía desde cada cinco minutos hasta semanalmente.
Eso es todo. Tus datos están en la hoja de cálculo y se actualizan con un solo clic. Solo las filas que solicitaste salieron de tu red.
Lado a lado, solo lo que resiste
| Apps Script JDBC | Flujos de consulta | |
|---|---|---|
| Lo que escribes | JavaScript en torno a tu SQL | El SQL |
| Donde se ejecuta la consulta | En los servidores de Google, conectándose a su base de datos | En el Agente, junto a su base de datos |
| Contraseña de la base de datos | En el script o sus propiedades, legible por cualquiera que pueda editarlo. | Solo en el Agente; los usuarios de Hojas de cálculo nunca lo ven. |
| Cortafuegos | Permitir los rangos de direcciones publicados por Google, puerto 1025 o superior | No hay nada entrante; el agente se conecta a través de HTTPS. |
| Límite de tiempo | 6 minutos por ejecución, 30 segundos para una función personalizada. | No hay ningún script que caduque; el agente ejecuta la consulta y transmite las filas. |
| Cuotas | 10.000 o 50.000 conexiones JDBC al día, 90 minutos o 6 horas de tiempo de activación. | Una asignación de datos mensual por plan, desde 5 MB en Free |
| Darle los datos a un colega | Copia el script y las credenciales junto con él. | Comparte los resultados de la consulta; el destinatario la ejecuta y nunca ve el inicio de sesión. |
| Actualizar según un cronograma | Disparador basado en el tiempo dentro de la cuota de tiempo de ejecución diaria | Automatización, cada 5 minutos a semanal. |
| Bases de datos | MySQL, Cloud SQL, PostgreSQL, SQL Server, Oracle | Esos cinco, más MariaDB, Snowflake, BigQuery, SQLite, Access, DuckDB, carpetas de archivos y API como Stripe, HubSpot y Shopify. |
Lo que permiten los planes
La función SQL ad-hoc del complemento Google Sheets está disponible en todos los planes, incluido el gratuito. El plan gratuito incluye dos conexiones y un límite mensual de datos de 5 MB, suficiente para una tabla como la anterior que se actualiza varias veces al día. Las consultas que hayas guardado en el Generador de consultas del complemento solo se pueden ejecutar a partir del plan Personal Core; las consultas que compartas con un compañero se ejecutan en todos los planes. Consulte la página de precios. para las asignaciones por plan.
Lo gratuito es un plan que debes mantener. No es una prueba que caduca. Vea exactamente lo que incluye en el página de precios.
Preguntas que hace la gente
¿Puedo conservar mi script de Apps Script actual y simplemente solucionar el problema de la contraseña?
Sí. Mueva el nombre de usuario y la contraseña a las propiedades del script, como en el ejemplo anterior, y otorgue al inicio de sesión de la base de datos permisos de solo lectura. Esto soluciona la mayor parte del problema. No modifica el límite de seis minutos, la cuota de conexión diaria ni la lista de permitidos del firewall, razón por la cual la mayoría de las personas trasladan la consulta fuera de Apps Script cuando la hoja de cálculo es relevante para más de una persona.
¿Es necesario que el agente se ejecute en el servidor de la base de datos?
No. Cualquier ordenador que esté siempre encendido y pueda acceder a la base de datos funciona: una estación de trabajo en la oficina, una pequeña máquina virtual o el propio servidor. Solo necesita HTTPS saliente para consultar los flujos de datos.
¿Existe un límite de filas similar al límite de memoria de JDBC?
El agente procesa las filas en lugar de almacenar el resultado completo en un script, por lo que los límites prácticos son el límite de datos de tu plan y el de Google Sheets, que restringe una hoja de cálculo a 20 millones de celdas (10 millones en las cuentas que aún no han alcanzado la actualización de Google de septiembre de 2026). Limita la consulta SELECT a las columnas y el rango de fechas que necesites para que ambos funcionen correctamente.
Utilizo Cloud SQL. ¿Eso cambia algo?
Solo donde se ejecuta el Agente. Instálelo en un ordenador o máquina virtual que pueda acceder a la instancia de Cloud SQL, ya sea a través de su dirección pública con la dirección del Agente autorizada, o dentro de la misma red, y conéctelo como MySQL, PostgreSQL o SQL Server. No es necesario mantener ningún rango de direcciones de Google.
¿Es necesario que tu base de datos esté instalada en el ordenador donde utilizo Hojas de cálculo de Google?
No. Solo el Agente debe estar donde se encuentra tu base de datos. Google Sheets funciona en tu navegador en cualquier dispositivo. Abre el complemento con la misma cuenta de Google y tus conexiones estarán disponibles.
¿Se copian mis datos a los flujos de consulta?
No. El agente ejecuta la consulta donde se encuentran sus datos y solo envía las filas que devuelve. No se sincroniza ni se almacena nada entretanto.
¿El plan gratuito realmente cubre esto?
Sí. Gratis es un plan que usted conserva, no una prueba que caduca. Vea exactamente lo que incluye en el página de precios.
¿La hoja se actualiza automáticamente?
Haz clic en Ejecutar consulta de nuevo cuando quieras ver las filas más recientes. Para que la hoja se actualice automáticamente según un horario, configura una automatización en el portal de Flujos de consulta (Flujos → Automatización). Esta función está disponible en todos los planes.
Guías relacionadas
Setup trouble?
- Agent shows Offline, or Test connection and Browse are greyed out? Check that the Agent is online → Is the Agent online?

