Objetos de datos de Snowflake

Introducción al modelado de datos en Snowflake

Nuno Rocha

Director of Engineering

Data warehouse

Representación de data warehouse

Introducción al modelado de datos en Snowflake

Data warehouse tradicional vs. virtual

Data warehouse virtual en Snowflake

Introducción al modelado de datos en Snowflake

Tradicional vs. virtual (1)

Data warehouse virtual de Snowflake vs. data warehouse tradicional

Introducción al modelado de datos en Snowflake

Tradicional vs. virtual (2)

  • CREATE WAREHOUSE: cláusula de Snowflake que crea un recurso de cómputo virtual para tareas de procesamiento de datos.
  • USE WAREHOUSE: cláusula que establece el data warehouse activo para la sesión actual.

Data warehouse virtual de Snowflake vs. data warehouse tradicional

Introducción al modelado de datos en Snowflake

Esquemas y tablas

Bases de datos, esquemas, tablas

Introducción al modelado de datos en Snowflake

Esquemas y tablas (1)

Interfaz de Snowflake

Introducción al modelado de datos en Snowflake

Esquemas y tablas (2)

  • CREATE DATABASE: cláusula de Snowflake para crear una nueva base de datos y organizar objetos de datos.
  • CREATE SCHEMA: cláusula para definir un contenedor que agrupa tablas y vistas.
  • CREATE TABLE: comando para crear la estructura de una tabla y sus columnas dentro de un esquema.

Interfaz de Snowflake, creación de elementos

Introducción al modelado de datos en Snowflake

Vistas

Visualización de vista

  • VIEWS:
    • Actúan como una entidad virtual.
    • Evitan duplicar datos.
    • Ahorran espacio y garantizan consistencia.
    • Muestran datos dinámicamente según la lógica de la consulta.
Introducción al modelado de datos en Snowflake

Vistas (1)

  • Ejemplo de VIEW que resume pedidos urgentes de clientes
CREATE OR REPLACE VIEW customer_urgent_orders AS
SELECT c.c_name AS customer_name, 
    COUNT(DISTINCT o_orderkey) AS order_count,
    SUM(o_totalprice) AS total_price
FROM customer AS c
    JOIN orders AS o 
    ON c.c_custkey = o.o_custkey
WHERE o.o_orderpriority = '1-URGENT'
GROUP BY c.c_name;
ORDER BY total_price DESC;
Introducción al modelado de datos en Snowflake

Vistas materializadas

Vista precalculada

  • MATERIALIZED VIEWS:
    • Guardan resultados precalculados.
    • Mejoran el rendimiento al almacenar operaciones ya calculadas.
    • Reducen el tiempo de procesamiento.
    • Mantienen una instantánea actualizada para consultar en cualquier momento.
    • Encapsulan operaciones complejas para un modelado más ágil.
Introducción al modelado de datos en Snowflake

Vistas materializadas (1)

CREATE OR REPLACE MATERIALIZED VIEW top_customers AS
SELECT o.o_custkey AS customer_id,
    c.c_name AS customer_name,
    CASE 
        WHEN SUM(o.o_totalprice) > 5000000 THEN 'Over Price'
        WHEN SUM(o.o_totalprice) > 3000000 THEN 'Top Price'
        WHEN SUM(o.o_totalprice) > 2000000 THEN 'Average Price'
        ELSE 'Review Price'
    END AS total_price
FROM customer AS c
    JOIN orders AS o ON c.c_custkey = o.o_custkey
GROUP BY o.o_custkey, c.c_name
HAVING total_price > 2000000;
Introducción al modelado de datos en Snowflake

Resumen de términos

  • Data warehouse (tradicional): sistema centralizado para almacenar y analizar grandes volúmenes de datos en un único servidor.
  • Data warehouse virtual (en Snowflake): conjunto flexible y escalable de recursos de cómputo en la nube para procesar y analizar datos.
  • Database: en Snowflake, contenedor principal de datos que agrupa esquemas.
  • Schema: colección de estructuras lógicas que contienen tablas, vistas, etc.
  • Table: representación de una entidad; estructura básica de almacenamiento organizada en filas y columnas dentro de esquemas.
  • View: consulta guardada que presenta datos como entidad virtual sin almacenarlos por separado.
  • Materialized View: versión almacenada de una vista que guarda físicamente el resultado para un acceso más rápido.
Introducción al modelado de datos en Snowflake

Resumen de funciones

CREATE OR REPLACE WAREHOUSE data_warehouse_name;
USE WAREHOUSE data_warehouse_name;
CREATE OR REPLACE DATABASE database_name;
CREATE OR REPLACE SCHEMA schema_name;
CREATE OR REPLACE TABLE table_name(
    column_name datatype,
    other_columns datatype);
Introducción al modelado de datos en Snowflake

Plantilla de vista (materializada) de ejemplo

CREATE OR REPLACE VIEW view_name AS
SELECT column_name, 
    SUM(column_name2) AS sum_alias,
    CASE WHEN column_name5   condition   value THEN assigned_value
        ELSE another_assigned_value
    END AS case_alias
FROM table_name AS table_alias
    JOIN other_table AS other_alias ON table_alias.FK = other_alias.PK
    LEFT JOIN another_table AS another_alias ON table_alias.FK = other_alias.PK
GROUP BY column_name;
Introducción al modelado de datos en Snowflake

¡Vamos a practicar!

Introducción al modelado de datos en Snowflake

Preparing Video For Download...