Compilador online

Compilador DuckDB online

Escribe tu código en DuckDB 1.5 aquí abajo y ejecútalo gratis, con entrada, en un sandbox en nuestros servidores. Sin registro y sin anuncios.

Por el equipo de OnlineCompiler.io. Actualizado el .

Also in EnglishTambém em português

-- Lee el nombre y un número de la pestaña Entrada
CREATE TABLE entrada AS
SELECT split_part(content, chr(10), 1) AS nombre,
       CAST(split_part(content, chr(10), 2) AS INTEGER) AS n
FROM read_text('input');

SELECT '¡Hola, ' || nombre || '!' FROM entrada;

SELECT i || ' al cuadrado es ' || (i * i)
FROM (SELECT unnest(range(1, n + 1)) AS i FROM entrada)
ORDER BY i;
Compartir genera un enlace, sin necesidad de cuenta. Guardar conserva el código en tu cuenta.

¿Quieres revisar una solución contra varias entradas? El compilador DuckDB con casos de prueba las ejecuta todas a la vez y marca cada una como aprobada o reprobada.

Cómo leer la pestaña Entrada

Antes de presionar Ejecutar, escribe en la pestaña Entrada el texto que el programa va a leer. Aquí la entrada estándar ya trae el propio programa SQL, así que la pestaña Entrada no se lee como SQL: read_text('input') devuelve su texto en una tabla, en la columna content, y las funciones de texto de DuckDB separan las líneas:

CREATE TABLE entrada AS SELECT content AS texto FROM read_text('input');  -- toda la pestaña Entrada
SELECT string_split(texto, chr(10)) FROM entrada;                         -- una lista con las líneas
SELECT split_part(texto, chr(10), 1) FROM entrada;                        -- la primera línea
SELECT CAST(split_part(texto, chr(10), 2) AS INTEGER) FROM entrada;       -- la segunda, como número

La entrada completa se envía cuando presionas Ejecutar, así que el programa no puede pedir nada más mientras corre. Pon cada valor en una línea, o sepáralos con espacios, según cómo los lea el programa.

Versión y límites

VersiónDuckDB 1.5
Se compila conSin paso aparte: el comando de ejecución compila o interpreta el código
Se ejecuta conduckdb -batch -bail -list -noheader -cmd "SET autoinstall_known_extensions=false; SET autoload_known_extensions=false; SET memory_limit='256MB'" < code.sql
Límites30 segundos, 512 MB de memoria, 2 CPU, 64 KB de salida por flujo, sin red

Lo que conviene saber

  • Cada ejecución empieza con una base de datos DuckDB vacía, en memoria: crea tus tablas, llénalas y consúltalas en un mismo programa. La ejecución se detiene en el primer error.
  • Los resultados se imprimen en modo list, con las columnas separadas por | y sin fila de encabezado, igual que en la página de SQLite. Los comandos con punto funcionan, así que .mode box o .headers on cambian el formato.
  • La pestaña Entrada no se lee como SQL, pero read_text('input') la devuelve como una tabla con la columna content. Los archivos enviados en el campo files de la API se leen con read_csv('data.csv') o read_json.
  • La memoria está limitada a 256 MB, y las extensiones no se descargan.

Ejecutar DuckDB desde tu app

Para ejecutar DuckDB desde tu propia app, envía el código y la entrada al endpoint síncrono con una clave de API, y la salida vuelve en la respuesta. Es gratis hasta 100,000 ejecuciones al mes. Documentación de la API (en inglés).

El editor de arriba es un widget que puedes poner en tu sitio, blog o curso. Con el atributo data-locale="es", los botones aparecen en español. Cómo insertar el editor (en inglés).

Otras páginas

Preguntas frecuentes

¿El compilador DuckDB online es gratis?

Sí. Ejecutar DuckDB en esta página no requiere cuenta y no tiene anuncios. Para ejecutar DuckDB desde tu propia app o sitio, la API y el widget son gratis hasta 100,000 ejecuciones al mes, uso comercial incluido.

¿Mi programa en DuckDB puede leer entrada?

Sí. Escribe la entrada en la pestaña Entrada antes de ejecutar, y el programa la lee con read_text('input'), porque la entrada estándar ya trae el propio código SQL. La entrada completa se envía cuando presionas Ejecutar, así que el programa no puede pedir nada más mientras corre.

¿Puedo usar bibliotecas en DuckDB?

Las funciones integradas de DuckDB y sus lectores de archivos CSV, JSON y Parquet. Las extensiones no se pueden instalar, y los programas no tienen acceso a la red.

¿Cuánto tiempo puede correr un programa?

Hasta 30 segundos, con 512 MB de memoria y 2 CPU. Un programa que sigue corriendo a los 30 segundos se detiene con el código de salida 124, y la salida de más de 64 KB por flujo se corta.

¿Dónde se ejecuta mi código?

En nuestros servidores, en un sandbox gVisor nuevo y sin acceso a la red, que se borra cuando termina la ejecución. Cada ejecución se guarda en el historial con su salida; la página de seguridad (en inglés) explica qué se almacena.

¿Hay una API para DuckDB?

Sí. Envía el código, el id del compilador duckdb-1.5 y la entrada a https://api.onlinecompiler.io/api/run-code-sync/ con una clave de API, y la respuesta trae la salida, los errores, el código de salida, el tiempo y la memoria. Es gratis hasta 100,000 ejecuciones al mes, y la misma clave sirve para los otros 45 lenguajes. La documentación está en inglés.