josiete.com

DBeaver: la navaja suiza del data engineer

Un castor trabaja con datos Parquet y DuckDB desde DBeaver

Hay herramientas que resuelven una tarea concreta y otras que terminan convirtiéndose en el cajón de herramientas entero. DBeaver pertenece a la segunda categoría: es un cliente de bases de datos multiplataforma desde el que podemos conectarnos, consultar, explorar, editar y exportar datos sin cambiar de aplicación. Para un data engineer, se parece bastante a una navaja suiza con una interfaz gráfica.

¿Qué es DBeaver?

DBeaver es una aplicación de escritorio para trabajar con bases de datos y otras fuentes de datos. Permite abrir conexiones JDBC, navegar por esquemas y tablas, escribir SQL con autocompletado, inspeccionar planes de ejecución, editar registros y gestionar metadatos.

Su gran ventaja es reunir en un mismo espacio tareas que normalmente repartiríamos entre la consola, el IDE, una hoja de cálculo y varias herramientas del proveedor. Desde el navegador de metadatos podemos entender rápidamente qué contiene una base de datos; desde el editor SQL podemos probar una consulta; y desde los resultados podemos filtrar, ordenar, copiar o exportar la información.

DBeaver Community es software libre y existe también una edición Enterprise con funciones adicionales para equipos y fuentes de datos concretas. La empresa que desarrolla el producto es DBeaver Corp, con sede en Estados Unidos. El proyecto nació alrededor de la comunidad open source y la compañía mantiene tanto la edición Community como las variantes comerciales.

Un cliente, muchas bases de datos

DBeaver no es un motor de base de datos: es el cliente que se conecta a ellos. Esa distinción es importante. No sustituye a PostgreSQL, MySQL, SQL Server, Oracle, MariaDB, SQLite o Snowflake; ofrece una experiencia común para trabajar con todos ellos.

Según el controlador y la edición, podemos conectarnos a bases de datos relacionales, almacenes analíticos, servicios cloud y fuentes que exponen un controlador JDBC. También podemos configurar túneles SSH, gestionar credenciales, guardar conexiones y abrir varias sesiones en paralelo. La interfaz no elimina las diferencias entre motores, pero reduce el coste mental de saltar de uno a otro.

Está disponible para Linux, Windows y macOS. En Linux resulta especialmente útil para quien alterna entre servidores, contenedores y un portátil de desarrollo; en Windows encaja bien con los equipos que trabajan con SQL Server, PostgreSQL, servicios cloud y herramientas corporativas. La misma idea y buena parte del flujo de trabajo viajan con nosotros entre sistemas operativos.

Parquet: cuando una tabla no vive en una base de datos

Parquet es un formato de almacenamiento columnar, no una base de datos. Guarda los datos organizados por columnas y conserva metadatos que permiten leer solo las partes necesarias. Por eso es habitual en data lakes y pipelines analíticos: ocupa poco, comprime bien y funciona con muchos motores.

DBeaver puede explorar ficheros Parquet directamente mediante motores y conexiones compatibles, en lugar de obligarnos a cargarlos primero en una base de datos tradicional. Esto resulta útil para inspeccionar un dataset recibido de otro equipo, comprobar los tipos de las columnas, detectar valores nulos o validar una partición antes de construir un pipeline.

Hay que distinguir dos operaciones. Visualizar un Parquet permite conocer su contenido; consultarlo con SQL requiere que haya un motor que lo lea. Ahí entra DuckDB: DBeaver proporciona la interfaz y DuckDB proporciona el motor analítico.

DBeaver y DuckDB: una pareja muy práctica

DuckDB es una base de datos analítica embebida que puede consultar Parquet, CSV y JSON sin levantar un servidor. DBeaver puede conectarse a DuckDB y convertirse en su entorno visual: escribimos SQL en el editor, vemos el plan y los resultados en tablas, y exploramos los objetos con una experiencia familiar.

Una consulta típica puede ser tan sencilla como esta:

SELECT customer_id, sum(amount) AS total
FROM 'data/sales/*.parquet'
GROUP BY customer_id
ORDER BY total DESC
LIMIT 20;

El fichero sigue siendo Parquet y DuckDB lo lee directamente; no hace falta importarlo a una base de datos servidor para empezar a analizarlo. Esta combinación es especialmente cómoda para trabajo exploratorio, controles de calidad y prototipos: DBeaver permite investigar visualmente y DuckDB aporta un SQL rápido y portable.

También sirve para crear una base DuckDB local, unir varios ficheros, materializar resultados intermedios y exportarlos de nuevo. El flujo queda en un punto muy atractivo entre una hoja de cálculo y una plataforma de datos completa.

¿Por qué llamarla “la navaja suiza”?

La metáfora no significa que DBeaver haga todo mejor que una herramienta especializada. Significa que cubre muchas necesidades con una fricción sorprendentemente baja:

  • explorar esquemas, índices, vistas y permisos;
  • escribir y guardar consultas SQL;
  • comparar resultados y revisar planes de ejecución;
  • editar datos puntuales con cuidado;
  • importar y exportar CSV, JSON y otros formatos;
  • trabajar con varias conexiones y pestañas;
  • documentar consultas y compartir configuraciones con el equipo;
  • conectarse a motores clásicos, servicios cloud y bases embebidas.

Para una persona que está aprendiendo SQL, la vista de datos ofrece feedback inmediato. Para un perfil experimentado, el valor está en tener contexto, consultas y resultados en el mismo lugar. Y para el data engineer, la mezcla de conexiones heterogéneas, Parquet y DuckDB reduce mucho el tiempo entre “me han pasado estos ficheros” y “ya sé qué contienen”.

Lo que conviene tener en cuenta

La comodidad no elimina la responsabilidad. Una conexión de producción debe protegerse con credenciales adecuadas, permisos mínimos y cuidado al ejecutar UPDATE, DELETE o migraciones. También conviene recordar que una interfaz gráfica puede ocultar diferencias de dialecto, costes de consulta y políticas de acceso.

DBeaver tampoco es un orquestador ni un sistema de gobierno del dato. No reemplaza un pipeline versionado, las pruebas automáticas, el control de cambios o la observabilidad. Su papel es más concreto y, precisamente por eso, muy valioso: ser una estación de trabajo flexible para entender y operar sobre datos.

Una herramienta pequeña para problemas variados

La mejor forma de entender DBeaver es usarlo como una capa de trabajo común. Un día puede ser el cliente de PostgreSQL; al siguiente, la ventana desde la que inspeccionamos un Parquet con DuckDB; después, un explorador de una base SQLite local o una consola para un almacén analítico.

Esa versatilidad explica su popularidad. DBeaver no intenta decidir dónde deben vivir los datos: nos ayuda a verlos, preguntarles cosas y movernos entre sistemas. Y cuando el castor del logo aparece junto a un fichero Parquet y una consulta DuckDB, la broma deja de ser solo visual: representa bastante bien una forma moderna y pragmática de trabajar con datos.