Skip to main content

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.