De dónde venimos

En el artículo anterior explicamos por qué DuckDB se ha asentado en el día a día de tantos analistas: SQL directo sobre CSV, Parquet o DataFrames de pandas, todo ello sin depender de un servidor y con un rendimiento que además suele superar al de muchas opciones tradicionales.
Hasta ahora todo lo visto previamente se hacía desde una terminal o un Jupyter Notebook.

Existe un momento en el que la línea de comandos empieza a quedarse limitada, como en estos supuestos:

  • Explorar visualmente un dataset.
  • Iterar varias consultas en paralelo.
  • Ver la distribución de una columna sin escribir un histograma.
  • Organizar el análisis como en un Notebook profesional.

Para todas estas operativas disponemos de DuckDB UI, una interfaz web local desarrollada en colaboración entre DuckDB Labs y MotherDuck, que se lanza de forma sencilla y convierte tu instalación local en un mini entorno analítico completo.
En esta segunda parte asociada a DuckDB veremos qué ofrece, cómo se usa y por qué probablemente vaya a sustituir a parte de tu flujo actual con Jupyter, DBeaver o el cliente SQL que utilices habitualmente.

Comenzar a usar la UI: dos comandos y listo

La instalación no existe como tal, ya que la UI viene como extensión oficial.
Si tienes DuckDB 1.2.1 o superior, puedes iniciarla de varias formas:

  • Desde la terminal, lanzar la CLI directamente con la UI: duckdb -ui
  • O desde dentro de una sesión DuckDB ya abierta: CALL start_ui()

Ambas opciones instalan la extensión ui si no la tenías, arrancan un servidor HTTP local y abren la interfaz en tu navegador por defecto, normalmente en http://localhost:4213. No hay datos saliendo de tu máquina, todo se ejecuta en local y el navegador es solo la capa visual.

Al igual que al lanzar DuckDB de forma normal puedes usar un fichero concreto:

  • duckdb -ui mi_base.duckdb
  • Y si en algún momento quieres detener la UI: CALL stop_ui()

Es importante recalcar que la UI no es un producto separado ni un SaaS, es una extensión que se ejecuta dentro del proceso de DuckDB, igual que cualquier otra extensión (httpfs, parquet, spatial…). Al ser un binario empaquetado, no necesitas Node, Python o ningún elemento externo para que funcione.

Las cuatro piezas que cambian el flujo

Una vez dentro de la UI, encuentras cuatro elementos que conviene conocer bien, son los que justifican dejar la terminal:

1. Notebooks SQL

El centro de la experiencia, cada Notebook es un documento con celdas, igual que un Jupyter, pero donde cada celda contiene SQL que se ejecuta contra tu DuckDB.
Los resultados aparecen debajo como tablas interactivas que puedes ordenar, filtrar y explorar sin escribir más código.
Hay que destacar la flexibilidad que aporta con respecto a un script SQL plano. Por ejemplo, puedes tener una celda con la query principal, otra con un GROUP BY de exploración, otra con un PIVOT puntual, y todas conviven sin pisarse. Cuando vuelves al Notebook después de un tiempo, sigues teniendo el contexto completo del análisis.

Algunos atajos útiles:

  • Cmd/ Ctrl + enter: ejecuta la celda actual
  • Cmd/ Ctrl + enter: alterna entre vista de edición y resultados
  • Shift + enter: ejecuta y pasa a la siguiente celda

2. Colum explorer

Cuando tienes el resultado de una query en pantalla, a la derecha aparece un panel que perfila automáticamente cada columna, mostrando:

  • Tipo de dato
  • Número de valores únicos
  • Porcentaje de nulos
  • Distribución (histograma para numéricas, top valores para categóricas)
  • Mínimos y máximos

Para un analista que recibe un dataset nuevo y necesita entender qué tiene entre manos, esto reemplaza directamente al clásico df.describe() o df.info() de pandas, con la ventaja de ser visual y funcionar sobre cualquier resultado de cualquier query, no solo sobre tablas completas.

3. Table summary

Si haces clic en una tabla del árbol de la izquierda, el sistema te lleva a una vista resumen donde puedes ver los siguientes elementos:

  • Esquema
  • Número de filas
  • Tamaño
  • Muestreo de los datos

Todo ello es equivalente a DESCRIBE + SELECT * LIMIT 100 pero con el añadido del perfilado automático de columnas.
Especialmente útil cuando heredas un fichero .duckdb ajeno o conectas a una BBDD nueva y necesitas entender qué hay dentro antes de empezar a realizar un análisis sobre los datos.

4. Árbol de bases de datos

A la izquierda en la parte superior, podrás observar un árbol jerárquico que muestra las bases de datos adjuntadas (ATTACH), sus esquemas, tablas, vistas, secuencias y funciones.
Funciona como el explorador de objetos de cualquier cliente SQL (DBeaver, DataGrip), pero integrado en el mismo entorno donde haces el análisis.
Recuerda que DuckDB puede tener varias BBDD adjuntadas a la vez (incluyendo PostgreSQL, SQLite, MySQL o ficheros Parquet vistos como tablas). Por ejemplo, este árbol puede mostrarte simultáneamente tu BBDD local DuckDB, una réplica PostgreSQL de producción y una carpeta de Parquets en S3, todo navegable desde el mismo sitio.

Un flujo real: de fichero a análisis publicable en 10 minutos

ara que se vea la diferencia respecto a la terminal pura, vamos a recorrer un caso típico: te llega un fichero transacciones.parquet de 500 MB, necesitas entender qué hay dentro, sacar algunas métricas y dejar el análisis documentado.
Paso 1: arrancas la UI y creas un Notebook nuevo.

duckdb -ui

Paso 2: en la primera celda puedes ver los contenidos del fichero.

SELECT * FROM ‘transacciones.parquet’ LIMIT 100;

Al ejecutar, el resultado aparece debajo con el Column Explorer a la derecha mostrando que tienes 12 columnas, que cliente_id tiene 24.000 valores únicos, que importe va de 0,50 € a 8.900 €, y que fecha cubre del 1 de enero al 31 de diciembre.
Ya sabes muchísimo del dataset sin haber lanzado ninguna consulta adicional.

Paso 3: segunda celda, una agregación rápida.

SELECT
DATE_TRUNC(‘month’, fecha) AS mes,
COUNT(*) AS num_transacciones,
SUM(importe) AS facturacion,
AVG(importe) AS ticket_medio
FROM ‘transacciones.parquet’
GROUP BY ALL
ORDER BY mes;

El resultado se renderiza como tabla interactiva. Click en la cabecera de facturacion y se ordena de mayor a menor. Filtras visualmente por mes y exploras un mes concreto.

Paso 4: tercera celda, una métrica más fina.

SELECT cliente_id, SUM(importe) AS total_cliente
FROM ‘transacciones.parquet’
GROUP BY cliente_id
QUALIFY ROW_NUMBER() OVER (ORDER BY SUM(importe) DESC) <= 20;

Top 20 clientes por facturación.

Paso 5: persistes los resultados en una tabla para reutilizarlos.

SELECT cliente_id, SUM(importe) AS total_cliente
FROM ‘transacciones.parquet’
GROUP BY cliente_id
QUALIFY ROW_NUMBER() OVER (ORDER BY SUM(importe) DESC) <= 20;

La tabla aparece automáticamente en el árbol de la izquierda. Cualquier celda posterior puede consultarla directamente.
Paso 6: guardas el Notebook, quedando almacenado en local con todas las celdas, sus queries y los resultados.

Trucos y configuraciones útiles

Abrir directamente un CSV o Parquet desde la UI: si arrancas DuckDB sin base de datos persistente y solo quieres explorar un fichero:

duckdb -ui -c «CREATE VIEW datos AS SELECT * FROM ‘mi_fichero.csv'»

Y ya tienes la vista datos disponible en el árbol de la izquierda.
Modo read-only: para cuando quieres explorar una base de datos sin riesgo de modificar nada (revisiones, ficheros heredados de un cliente, datos de producción que no debes tocar):

duckdb -ui -readonly mi_base.duckdb

Cambiar el puerto: si el 4213 está ocupado o quieres ejecutar varias instancias en paralelo:

SET ui_local_port = 5000;
CALL start_ui();

Limitaciones a tener en cuenta:

  • Actualmente no hay soporte para Windows ARM64. Si trabajas en un Surface ARM o similar no es posible.
  • La UI no es multiusuario. Está pensada para un analista en su máquina; si lo que quieres es BI compartido entre equipos deberías recurrir a otra herramienta.
  • El histograma del Column Explorer puede tardar unos segundos sobre tablas muy grandes, ya que perfila el dataset completo. Para casos masivos, trabaja sobre vistas filtradas o usa muestreo (USING SAMPLE 10%).

Integración con MotherDuck: el puente local-cloud

Una de las opciones más interesantes que ofrece la UI es conectarse a MotherDuck, la versión cloud de DuckDB. Desde la propia interfaz puedes hacer login con tu cuenta de MotherDuck y, a partir de ahí, las BBDD remotas aparecen en el árbol junto a las locales.
¿Para qué sirve esto en la práctica? Para casos donde quieres lo mejor de los dos mundos: análisis exploratorio local con la velocidad de DuckDB sobre tu portátil, y a la vez consulta de tablas compartidas en cloud que mantiene el equipo. Joins entre una BBDD local y una remota funcionan sin problema, igual que entre dos esquemas de la misma BBDD.
No es obligatorio usar MotherDuck para que la UI funcione: es 100 % opcional. Pero está bien saber que ese puente existe si en algún momento necesitas escalar más allá de local sin abandonar el ecosistema DuckDB.

¿Sustituye a Jupyter, a DBeaver, a Power BI?

A cada uno en parte, pero a ninguno del todo.

  • Jupyter: la UI es más cómoda para análisis 100 % SQL, pero pierde frente a Jupyter en cuanto necesitas Python para visualización avanzada, machine learning o lógica de programación.
    El paso lógico es combinarlos, la UI va genial para explorar datos rápido pero Jupyter sigue teniendo sentido cuando entra Python en juego.
  • DBeaver / DataGrip: la UI gana en velocidad de arranque (cero configuración) y en perfilado automático de columnas, pero pierde en gestión avanzada de múltiples motores de BBDD, diagramas ER, refactorización de SQL y otras features de cliente profesional.
  • Power BI / Tableau: no compite. La UI es para análisis exploratorio del analista, no para distribuir cuadros de mando a una organización. Cuando el análisis está maduro y hay que compartirlo con el equipo de negocio, el flujo natural sería exportar los datos (COPY … TO ‘salida.parquet’) y conectar la herramienta de BI por encima.
    Donde brilla DuckDB UI es claro: eres analista, tienes datos locales o accesibles desde tu máquina, quieres iterar rápido sobre SQL, y no quieres batallar con instalaciones o librerías que no funcionan correctamente. Si eso te describe, vas a usarla mucho.

Conclusión: el momento de probarla

Si la primera parte de esta serie iba sobre por qué DuckDB se ha vuelto imprescindible para el análisis moderno, esta segunda parte va sobre cómo la experiencia ha madurado. Con un único comando tienes un motor analítico rápido, Notebooks integrados y perfilado automático de datos. Y si en algún momento lo necesitas, también puedes conectarte a MotherDuck.
Para un analista que en 2026 sigue moviendo CSVs entre Excel, pandas y SQL Server, la diferencia se nota desde el primer día. Además, la curva de entrada es muy sencilla y asumible.
Nuestra sugerencia es que la próxima vez que abras un dataset, le des una oportunidad a DuckDB UI.

En DECIDE | Linkroad ayudamos a equipos de datos a modernizar sus flujos analíticos, desde el portátil del analista hasta los pipelines productivos. Si quieres explorar cómo integrar DuckDB (y su nueva UI) en tu stack analítico, hablemos.