Proyecto RAW → STAGING → MARTS

Objetivo

Construir capas con responsabilidades claras.

Explicación

RAW conserva entrada; STAGING limpia y estandariza; MARTS aplica lógica analítica y grain de negocio. Puedes reconciliar conteos/totales entre capas para detectar pérdidas. En Snowflake, una decisión aparentemente pequeña puede afectar coste, seguridad o trazabilidad. El objetivo profesional es saber qué objeto estás usando, qué privilegios necesita y cómo demostrar que una carga o transformación no ha perdido datos. Para trabajar Proyecto RAW → STAGING → MARTS de forma profesional, no te quedes con el ejemplo: identifica la entrada, ejecuta el caso base, provoca al menos un caso incorrecto y compara el resultado con un control independiente. En este laboratorio el criterio de salida es concreto: El mart contiene una fila por cliente y revenue reconciliado con pedidos completados. La verificación principal será: SUM del mart = SUM RAW filtrado por la misma regla de negocio. Si no puedes explicar por qué pasa esa comprobación, vuelve al paso anterior antes de continuar.

Contexto profesional

En Snowflake, una decisión aparentemente pequeña puede afectar coste, seguridad o trazabilidad. El objetivo profesional es saber qué objeto estás usando, qué privilegios necesita y cómo demostrar que una carga o transformación no ha perdido datos.

Ejemplo real

CREATE VIEW STAGING.STG_ORDERS AS
SELECT order_id,customer_id,order_date,UPPER(TRIM(status)) status,amount
FROM RAW.ORDERS;

Archivos o datos de entrada

  • sql/ecommerce_setup.sql
  • data/ecommerce_orders.csv

Práctica guiada

Crea STG_ORDERS y un mart de revenue por cliente.

Laboratorio paso a paso

  • Prepara el entorno y localiza los datos/archivos de entrada: sql/ecommerce_setup.sql, data/ecommerce_orders.csv. Antes de modificar nada, anota el número de filas, columnas u objetos que esperas usar.
  • Reproduce el ejemplo real de la lección y guarda la salida. No avances hasta poder explicar qué hace cada bloque relacionado con «Proyecto RAW → STAGING → MARTS».
  • Ejecuta la práctica guiada: Crea STG_ORDERS y un mart de revenue por cliente. Documenta el comando, consulta o acción exacta y el resultado obtenido.
  • Resuelve el reto sin mirar la solución: Añade controles de nulos, duplicados y total de revenue. Si falla, registra el mensaje de error y formula una hipótesis antes de cambiar código.
  • Compara tu resultado con el criterio esperado: El mart contiene una fila por cliente y revenue reconciliado con pedidos completados. Después ejecuta la comprobación: SUM del mart = SUM RAW filtrado por la misma regla de negocio.
  • Provoca deliberadamente un caso problemático relacionado con este error frecuente: Filtrar estados distintos entre staging y mart rompe reconciliación.. Comprueba que sabes detectarlo y corregirlo.

Reto sin ayuda

Añade controles de nulos, duplicados y total de revenue.

Resultado esperado

El mart contiene una fila por cliente y revenue reconciliado con pedidos completados.

Cómo verificarlo

SUM del mart = SUM RAW filtrado por la misma regla de negocio.

Checklist de validación

  • El resultado cumple: El mart contiene una fila por cliente y revenue reconciliado con pedidos completados.
  • Has ejecutado esta verificación y puedes explicar el resultado: SUM del mart = SUM RAW filtrado por la misma regla de negocio.
  • Has probado al menos un caso límite o dato inválido y el comportamiento es explícito, no silencioso.
  • Puedes repetir la práctica desde cero sin copiar la solución y dejar evidencia (consulta, commit, captura o salida de consola).
Pista específica

Escribe la definición del grain antes del SELECT.

Solución paso a paso

1) Empieza reproduciendo el caso base con los datos indicados. 2) Aplica esta estrategia específica: Agrupa STG_ORDERS por customer_id tras filtrar status COMPLETED. 3) Usa como referencia técnica el ejemplo de la lección (CREATE VIEW STAGING.STG_ORDERS AS SELECT order_id,customer_id,order_date,UPPER(TRIM(status)) status,amount FROM RAW.ORDERS;). 4) Ejecuta la verificación: SUM del mart = SUM RAW filtrado por la misma regla de negocio. 5) Compara con el resultado esperado: El mart contiene una fila por cliente y revenue reconciliado con pedidos completados. 6) Repite el reto cambiando un dato o condición para demostrar que entiendes el comportamiento y no has obtenido el resultado por casualidad. Si aparece el error «Filtrar estados distintos entre staging y mart rompe reconciliación.», corrige la causa antes de continuar; no ocultes el fallo ni cambies el resultado esperado para que la prueba pase.

Errores frecuentes

  • Filtrar estados distintos entre staging y mart rompe reconciliación.

Qué debes recordar

Relaciona cada objeto de Snowflake con su responsabilidad y coste.

Preguntas de entrevista

  • ¿Cómo separarías compute, almacenamiento y permisos para este caso? Aplícalo concretamente a «Proyecto RAW → STAGING → MARTS».
  • ¿Qué consultarías para diagnosticar coste o una carga incompleta? Explica qué evidencia enseñarías al revisor.

Siguiente paso

A continuación automatizarás transformaciones con dbt.

Recursos de esta lección

Quiz de la lección

¿Dónde debería estar la lógica “sólo pedidos completados cuentan como revenue”?

Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.