Skip to main content

¿Qué es la gestión de esquemas?

La gestión de esquemas es la práctica de aplicar principios de control de versiones a los esquemas de una base de datos. A menudo abarca tareas como el seguimiento y la automatización de los cambios en tablas, columnas y sus relaciones, para que las actualizaciones del esquema sean repetibles, auditables y coherentes en todos los entornos. La gestión de esquemas resulta necesaria cuando hace falta modificar la estructura de los datos en la base de datos para un nuevo caso de uso o una optimización del rendimiento.

¿Por qué es importante?

Las herramientas de gestión de esquemas permiten automatizar los cambios de esquema junto con los despliegues de aplicaciones. Es habitual que los cambios de esquema sean un requisito previo para desplegar una nueva versión de la aplicación. Estas herramientas también se conocen como herramientas de “migración de esquemas” o “migración de bases de datos”, ya que los usuarios migran de una versión de la base de datos a otra. Sin herramientas de gestión de esquemas, los cambios en la base de datos son manuales, propensos a errores y difíciles de coordinar entre equipos y entornos. Aunque siempre es posible ejecutar DDL directamente en la base de datos, estas herramientas aportan control de versiones, despliegues automatizados, soporte para rollback y registros de auditoría. En ClickHouse en particular, donde ciertos cambios de DDL pueden ser costosos o irreversibles, un proceso de migración estructurado con pasos de revisión es especialmente crítico.

Tipos de enfoques para la gestión de esquemas

Las herramientas de gestión de esquemas generalmente se dividen en dos categorías.

Imperativo

Estas herramientas usan archivos SQL versionados que describen cómo pasar del estado A al estado B. Se escriben sentencias DDL explícitas como CREATE TABLE, ALTER TABLE o DROP COLUMN en archivos. Luego, la herramienta ejecuta los archivos en orden y lleva un registro de cuáles se han aplicado. En esta categoría, se define el SQL exacto que se debe ejecutar. Ejemplos: Golang Migrate, Goose y Flyway.

Declarativo

Estas herramientas parten de que el usuario define un esquema de estado deseado. La herramienta detecta la diferencia entre la base de datos actual y el estado deseado, y luego genera y aplica la migración necesaria. Este enfoque reduce la necesidad de redactar migraciones manualmente y evita la deriva del esquema. En esta categoría, la herramienta determina exactamente qué SQL se ejecutará. Ejemplos: Atlas y Liquibase. Hay una tercera categoría de herramientas que se centra menos en los cambios del esquema de la base de datos y más en transformar los propios datos. Ejemplo: dbt. Este artículo se centra únicamente en herramientas para cambios del esquema de la base de datos. Elija una herramienta que se ajuste a la forma en que su equipo quiere trabajar. Las herramientas imperativas ofrecen visibilidad total sobre qué DDL se ejecutará exactamente, pero requieren una atención específica para identificar y gestionar la deriva del esquema. Las herramientas declarativas automatizan gran parte del mantenimiento y ayudan a prevenir la deriva del esquema, pero siempre debe revisar el plan generado antes de aplicarlo a ClickHouse. Asegúrese de que no haya ninguna mutación inesperada ni una reescritura costosa oculta en un plan generado automáticamente.

Qué tener en cuenta al elegir una herramienta

¿Qué herramientas usa ya tu equipo?

Lo más probable es que te inclines por herramientas con las que ya estás familiarizado dentro de tu ecosistema. Si tu equipo trabaja con Go, Golang Migrate o Goose pueden resultar opciones naturales. Si estás en el ecosistema Java, puede que ya uses Flyway o Liquibase. Si tu equipo de infraestructura usa Terraform y sigue patrones de infraestructura como código, el modelo declarativo de Atlas puede encajar bien. Elegir algo que tu equipo ya conoce tiene un valor real: la mejor herramienta es la que se adopta y se usa de forma consistente.

¿Cuál es el proceso que quieres seguir?

Piensa en cómo se gestionan los cambios de esquema en tu organización. Considera si necesitas:
  • Un flujo de trabajo sencillo de “escribir SQL, ejecutarlo en CI y listo”, como Goose o Golang Migrate.
  • Flujos de aprobación gestionados, registros de auditoría y RBAC, como Bytebase o Liquibase.
  • Definir tu esquema de forma declarativa y dejar que la herramienta determine los cambios, como Atlas.
Elige la herramienta que mejor se ajuste a tus requisitos y a tu proceso. Estas son las herramientas que solemos recomendar a los usuarios de ClickHouse en función de su madurez, su compatibilidad con ClickHouse, su adopción por parte de la comunidad y su adecuación operativa.

Atlas

Atlas es una herramienta de gestión de esquemas como código que adopta un enfoque declarativo. Defines el estado deseado de tu esquema en HCL o SQL, y Atlas inspecciona la base de datos actual, calcula la diferencia, genera un plan de migración y lo aplica, opcionalmente después de que lo revises. Por qué funciona bien con ClickHouse: Atlas ofrece compatibilidad de primer nivel con ClickHouse, incluidas tablas, vistas, vistas materializadas, proyecciones, particiones y UDFs. Atlas añadió compatibilidad con clústeres en la versión 0.37, en septiembre de 2025. Admite tanto HCL como definiciones de esquema en SQL puro. Qué debes tener en cuenta: El controlador de ClickHouse de Atlas solo está disponible en el plan Pro o durante un periodo de prueba. Atlas genera planes de migración, pero no comprende el coste de esos planes. Una diferencia puede parecer sencilla, como cambiar el tipo de una columna, pero desencadenar una mutación costosa en una tabla de varios terabytes. Revisa siempre los planes generados antes de aplicarlos. Ideal para: Equipos que quieren flujos de trabajo de infraestructura como código y detección automática de deriva.
  • Tipo: Declarativo
  • Lenguaje: Go, distribuido como un único binario
  • Licencia y disponibilidad: Open Core; Atlas CLI tiene una edición comunitaria con licencia Apache 2.0, pero la compatibilidad con ClickHouse requiere el plan Pro o un periodo de prueba
  • Compatibilidad con clústeres:

Golang Migrate

Golang Migrate es una herramienta de migración sencilla y muy utilizada. Escribes archivos SQL versionados con pasos up y down, y la herramienta los aplica en orden, registrando el estado en una tabla schema_migrations de tu base de datos ClickHouse. Por qué funciona bien con ClickHouse: Es sencilla y flexible. Escribes exactamente el DDL de ClickHouse que quieres ejecutar. Es un único binario de Go sin dependencias en tiempo de ejecución, lo que facilita integrarlo en una pipeline de CI/CD o en un contenedor Docker. Qué tener en cuenta: Si un archivo de migración contiene varias Sentencias y una falla a mitad del proceso, la base de datos puede quedar en un estado parcialmente aplicado que requiera intervención manual. Esto se puede gestionar siguiendo la disciplina de una Sentencia por archivo. Ideal para: Equipos que buscan simplicidad y control total sobre el SQL exacto que se ejecuta en su instancia de ClickHouse.
  • Tipo: Imperativo
  • Idioma: Go
  • Licencia: código abierto, MIT
  • Compatibilidad con clústeres:

Goose

Goose es otra herramienta de ejecución de migraciones basada en Go, con una filosofía similar a la de Golang Migrate. Se escriben archivos SQL versionados o funciones de Go para lógica compleja, y Goose los aplica de forma secuencial mientras registra el estado en una tabla de versiones de ClickHouse. Por qué funciona bien con ClickHouse: Goose es SQL-first, requiere una configuración mínima, tiene una CLI sencilla y es fácil de integrar en CI/CD. Goose también permite escribir migraciones como funciones de Go, lo que ofrece más flexibilidad para lógica compleja que no puede expresarse solo con SQL. Qué hay que tener en cuenta: Goose no ofrece comparación de esquemas ni generación automática de migraciones. Ideal para: Equipos que ya usan Goose o que prefieren sus convenciones de archivos de migración frente a las de Golang Migrate.
  • Tipo: Imperativo
  • Idioma: Go, distribuido como un único binario
  • Licencia: Código abierto, MIT
  • Compatibilidad con clústeres: No

Otras herramientas del ecosistema

Las siguientes herramientas también funcionan con ClickHouse. Pueden ser más adecuadas según su stack y flujo de trabajo. No obstante, en general recomendamos las herramientas anteriores.
Última modificación el 14 de agosto de 2026