Ver categorías

Ejecutar SQL en Google Sheets sin JDBC de Apps Script

Hojas de cálculo de Google · SQL sin Apps Script

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.

Aproximadamente 15 minutos Solo SQL, sin JavaScript La contraseña permanece en tu red. MySQL, PostgreSQL, SQL Server y más
¿Tienes algún problema? Pregúntanos. Abrir Ayuda En Consultas de flujos (menú superior derecho → Soporte) y envíanos un mensaje. Personas reales lo leen, y «No sé qué me pide esta pantalla» es una pregunta perfectamente válida.

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:

Apps Script · Code.gs
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ímiteCuenta personal de GoogleCuenta de Google Workspace
Tiempo de ejecución del script, por ejecución6 minutos6 minutos
Tiempo de ejecución de función personalizada (una fórmula que llama a JDBC)30 segundos30 segundos
Conexiones JDBC por día10,00050,000
Ejecuciones simultáneas por usuario3030
Disparadores basados en el tiempo, tiempo total de ejecución por día90 minutos6 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

Logotipo de Google SheetsUna 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í:

La 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.

DÓNDE SE ALMACENA LA BASE DE DATOSsu red de oficina o sala de servidoresTu propia base de datospermanece en tu redAgente de flujos de consultasen la misma redFlujos de consultaenlace cifradopor internet · solo resultadosDONDEQUIERA QUE ESTÉSCualquier navegador: portátil, tableta, teléfono, ChromebookHojas de cálculo de GoogleLas filas llegan en una hoja
El agente reside con tus datos. Tu hoja de cálculo se encuentra en la nube de Google. Ábrela desde cualquier lugar y las filas aparecerán automáticamente.

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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 · SQL
    SELECCIONE 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 JDBCFlujos de consulta
Lo que escribesJavaScript en torno a tu SQLEl SQL
Donde se ejecuta la consultaEn los servidores de Google, conectándose a su base de datosEn el Agente, junto a su base de datos
Contraseña de la base de datosEn 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.
CortafuegosPermitir los rangos de direcciones publicados por Google, puerto 1025 o superiorNo hay nada entrante; el agente se conecta a través de HTTPS.
Límite de tiempo6 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.
Cuotas10.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 colegaCopia 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 cronogramaDisparador basado en el tiempo dentro de la cuota de tiempo de ejecución diariaAutomatización, cada 5 minutos a semanal.
Bases de datosMySQL, Cloud SQL, PostgreSQL, SQL Server, OracleEsos 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.

¿Sigues atascado? Abrir Ayuda En Query Streams, indíquenos en qué paso se encuentra y qué observa. Le ayudaremos a conectarse.
Query Streams también conecta los mismos datos aExcelClaude, Cursor y ChatGPTuna API RESTy más

Setup trouble?

  • Agent shows Offline, or Test connection and Browse are greyed out? Check that the Agent is online → Is the Agent online?
Actualizado el 27 de septiembre de 2026

Funciona con BetterDocs