Can Höbek
26-02-2023
Snowflake’s type of tables and views
Uno de los aspectos más importantes al diseñar una plataforma de datos en Snowflake consiste en elegir correctamente cómo almacenar y exponer la información. Aunque a primera vista pueda parecer que todas las tablas funcionan de la misma manera, Snowflake ofrece diferentes tipos de tablas y vistas pensados para resolver necesidades específicas.
Comprender las diferencias entre ellas permite construir arquitecturas más eficientes, optimizar costes, mejorar el rendimiento y facilitar el gobierno del dato.
Desde tablas permanentes hasta vistas materializadas o tablas transitorias, cada opción tiene ventajas concretas que conviene conocer antes de comenzar a desarrollar soluciones analíticas.
En este artículo exploraremos los principales tipos de tablas y vistas disponibles en Snowflake y analizaremos los escenarios donde cada una aporta mayor valor.
¿Por qué existen diferentes tipos de tablas?
No todos los datos tienen el mismo ciclo de vida.
Por ejemplo:
- Algunos datos deben conservarse durante años.
- Otros son temporales y desaparecen rápidamente.
- Algunos necesitan máxima disponibilidad.
- Otros priorizan la reducción de costes.
- Algunos deben recalcularse constantemente.
- Otros pueden mantenerse precalculados.
Snowflake proporciona distintos tipos de objetos para adaptarse a estas necesidades.
La elección correcta puede tener un impacto importante tanto en el rendimiento como en los costes operativos.
Tablas permanentes (Permanent Tables)
Las tablas permanentes son el tipo más habitual dentro de Snowflake.
Cuando creamos una tabla sin especificar ninguna configuración especial, estamos creando una tabla permanente.
Por ejemplo:
CREATE TABLE clientes (
cliente_id INTEGER,
nombre STRING,
email STRING
);
Estas tablas están diseñadas para almacenar información crítica de forma duradera.
Características principales
Las tablas permanentes ofrecen:
- Persistencia completa.
- Soporte para Time Travel.
- Soporte para Fail-safe.
- Recuperación ante errores.
- Protección frente a eliminaciones accidentales.
Por este motivo suelen utilizarse para datos de negocio esenciales.
Casos de uso
Las tablas permanentes son adecuadas para:
- Datos maestros.
- Clientes.
- Productos.
- Información financiera.
- Históricos corporativos.
- Modelos analíticos finales.
En la mayoría de proyectos representan la capa principal de almacenamiento.
Tablas transitorias (Transient Tables)
Las tablas transitorias están diseñadas para reducir costes de almacenamiento.
Su creación es muy similar:
CREATE TRANSIENT TABLE staging_clientes (
cliente_id INTEGER,
nombre STRING
);
La principal diferencia es que eliminan ciertas capacidades de recuperación.
Diferencias respecto a las tablas permanentes
Las tablas transitorias:
- Mantienen Time Travel.
- No incluyen Fail-safe.
- Reducen costes de almacenamiento.
- Son adecuadas para datos menos críticos.
Al eliminar el periodo de Fail-safe, Snowflake necesita almacenar menos información.
Esto se traduce en un menor coste operativo.
Cuándo utilizar tablas transitorias
Son especialmente útiles para:
- Staging.
- Procesos ETL.
- Datos intermedios.
- Transformaciones temporales.
- Cargas de trabajo no críticas.
Muchos proyectos modernos utilizan tablas transitorias para reducir costes sin comprometer procesos importantes.
Tablas temporales (Temporary Tables)
Las tablas temporales tienen un ciclo de vida mucho más corto.
Por ejemplo:
CREATE TEMP TABLE resultados_temporales (
id INTEGER,
resultado STRING
);
Estas tablas existen únicamente durante la sesión actual.
Cuando la sesión finaliza, desaparecen automáticamente.
Características principales
Las tablas temporales:
- Son visibles únicamente para el usuario actual.
- Desaparecen al cerrar la sesión.
- No requieren limpieza manual.
- Resultan ideales para trabajo temporal.
Su uso es muy frecuente durante desarrollos y análisis exploratorios.
Casos de uso
Las tablas temporales suelen utilizarse para:
- Pruebas.
- Desarrollo.
- Transformaciones intermedias.
- Procesamiento puntual.
- Análisis exploratorio.
No suelen utilizarse para almacenar información de negocio permanente.
Qué es una vista (View)
Las vistas permiten mostrar datos sin almacenarlos físicamente.
Por ejemplo:
CREATE VIEW clientes_activos AS
SELECT *
FROM clientes
WHERE activo = TRUE;
La vista almacena únicamente la definición de la consulta.
Cada vez que un usuario la consulta, Snowflake ejecuta el SQL asociado.
Ventajas de las vistas
Las vistas aportan numerosos beneficios.
Simplificación
Ocultan complejidad técnica a los usuarios finales.
Reutilización
Permiten compartir lógica entre diferentes equipos.
Seguridad
Facilitan el control de acceso a la información.
Mantenimiento
Centralizan reglas de negocio.
Casos de uso habituales
Las vistas suelen utilizarse para:
- Dashboards.
- Reporting.
- Modelos semánticos.
- Consumo por usuarios de negocio.
- Abstracción de complejidad técnica.
Vistas materializadas (Materialized Views)
Las Materialized Views representan una evolución de las vistas tradicionales.
Por ejemplo:
CREATE MATERIALIZED VIEW ventas_resumen AS
SELECT
region,
SUM(importe) AS total_ventas
FROM ventas
GROUP BY region;
A diferencia de una vista normal, los resultados se almacenan físicamente.
Ventajas de las Materialized Views
El principal beneficio es el rendimiento.
Snowflake no necesita recalcular toda la consulta cada vez que se ejecuta.
Esto resulta especialmente útil para:
- Agregaciones complejas.
- Grandes volúmenes de datos.
- Consultas frecuentes.
- Dashboards con alta demanda.
Consideraciones sobre Materialized Views
Aunque ofrecen mejoras de rendimiento, también implican ciertos costes.
Snowflake debe mantener los datos actualizados automáticamente.
Por ello es importante evaluar si realmente existe un beneficio suficiente para justificar su uso.
Comparativa rápida
|
Tipo |
Persistencia |
Coste |
Rendimiento |
Recuperación |
|
Permanent Table |
Alta |
Medio |
Alto |
Completa |
|
Transient Table |
Media |
Bajo |
Alto |
Limitada |
|
Temporary Table |
Muy baja |
Muy bajo |
Alto |
No aplica |
|
View |
No almacena datos |
Muy bajo |
Variable |
No aplica |
|
Materialized View |
Alta |
Medio/alto |
Muy alto |
Gestionada |
Cómo elegir la opción adecuada
La elección dependerá principalmente de las características del caso de uso.
Datos críticos
Utilizar tablas permanentes.
Datos intermedios
Utilizar tablas transitorias.
Procesos temporales
Utilizar tablas temporales.
Simplificación para usuarios
Utilizar vistas.
Optimización de consultas complejas
Evaluar Materialized Views.
Integración con arquitecturas modernas
Las plataformas actuales suelen combinar varios de estos objetos simultáneamente.
Por ejemplo:
Raw Data
↓
Transient Tables
↓
Transformaciones
↓
Permanent Tables
↓
Views
↓
Power BI / Tableau
Este patrón aparece frecuentemente en proyectos construidos con:
- Snowflake.
- dbt.
- Power BI.
- Tableau.
- Looker.
- Streamlit.
Cada capa cumple una función específica dentro de la arquitectura.
Buenas prácticas
Existen algunas recomendaciones ampliamente aceptadas.
Utilizar Permanent Tables para información crítica
Los datos corporativos importantes deben contar con mecanismos completos de recuperación.
Aprovechar Transient Tables para staging
Permiten reducir costes considerablemente.
No abusar de Temporary Tables
Aunque son útiles, su naturaleza efímera puede dificultar la trazabilidad.
Diseñar vistas claras y documentadas
Facilita el consumo por parte de los usuarios.
Evaluar cuidadosamente las Materialized Views
No siempre aportan beneficios suficientes para justificar el coste adicional.
Beneficios para las organizaciones
Seleccionar correctamente los tipos de tablas y vistas aporta ventajas significativas.
Mejor rendimiento
Cada objeto puede optimizarse para un propósito concreto.
Menor coste
El almacenamiento se adapta al valor real de los datos.
Mayor gobernanza
Las capas de acceso resultan más fáciles de controlar.
Escalabilidad
La arquitectura puede crecer de forma ordenada.
Simplificación operativa
Los usuarios trabajan con estructuras más intuitivas.
El papel de estos objetos en Snowflake
La flexibilidad de Snowflake no reside únicamente en su capacidad de procesamiento, sino también en la variedad de mecanismos que ofrece para gestionar la información.
Las distintas opciones de almacenamiento y exposición permiten construir arquitecturas adaptadas a prácticamente cualquier escenario empresarial, desde pequeños proyectos analíticos hasta plataformas corporativas de gran escala.
Comprender estas diferencias es una habilidad fundamental para cualquier profesional que trabaje con Snowflake.
Conclusión
Snowflake ofrece una amplia variedad de tablas y vistas diseñadas para cubrir necesidades específicas de almacenamiento, rendimiento, costes y gobernanza. Desde las tablas permanentes orientadas a datos críticos hasta las vistas materializadas enfocadas en la optimización de consultas, cada objeto cumple una función concreta dentro de una arquitectura moderna de datos.
Elegir correctamente entre Permanent Tables, Transient Tables, Temporary Tables, Views y Materialized Views permite construir soluciones más eficientes, escalables y alineadas con las necesidades reales del negocio.
Para cualquier Data Engineer, Analytics Engineer o administrador de Snowflake, comprender estas diferencias resulta esencial para aprovechar al máximo las capacidades de la plataforma.




