Modelado de�Data Warehouses con
Jorge Aguilar Orozco�Julio 2023
Acerca de mi
Ing. Electrónico - Universidad del Norte
+3 años Exp. sector IT
Ing. Datos - Pragma SA
DEMO
INTRODUCCIÓN A DBT
CONTEXTO
LO QUE VEREMOS …
01
02
03
CONTEXTO
Fuente: SQL Of The North
DEFINICIÓN DE DATA WAREHOUSE
Para mas Informacion: TechTarget
Redshift
BigQuery
Synapse
A nivel funcional, es un repositorio centralizado de grandes volúmenes de datos estructurados, que provienen de diversas fuentes, y que han sido previamente procesados y están listos para ser consumidos.
A nivel de infraestructura, se crean sobre una base de datos relacional.�
BENEFICIOS Y APLICACIONES DEL �DATA WAREHOUSE
Para mas Informacion: TechTarget
BENEFICIOS
APLICACIONES
¿Cómo se modelan los �Data Warehouses?
NORMALIZACIÓN Y DESNORMALIZACIÓN
Una base de datos normalizada es una base de datos con baja redundancia en los datos. El objetivo es facilitar las operaciones tipo CRUD y reducir el tamaño de almacenamiento.
Una base de datos desnormalizada es una base de datos con alta redundancia en los datos. El objetivo es facilitar las operaciones de lectura con propósitos analíticos.
NORMALIZADA
DESNORMALIZADA
Fuente: Patricio Araneda
ENFOQUES
BILL INMON VS KIMBALL
ENFOQUE BILL INMON�(DW NORMALIZADO)
Fuente: Kurt Zahra
ENFOQUE KIMBALL�(DW DESNORMALIZADO)
Fuente: Medium
F
F
MODELO DIMENSIONAL �DE KIMBALL
Fuente: Medium
F
D
D
D
D
D
“Data involved in calculations should be in fact tables, and data involved in constraints, groups, and labels should be in dimensional tables.”
— The Data Warehouse Toolkit
EJEMPLO MODELO DIMENSIONAL
Fuente: ScienceDirect
¿PASOS PARA CREAR UN MODELO DIMENSIONAL?
CASO DE EJEMPLO: �CHINOOK DATABASE
Para mas Informacion: SQLite Tutorial
PASOS PARA CONSTRUIR EL MODELO DIMENSIONAL
Fuente: guru99
Fuente: guru99
El gerente desea saber:
Cantidad de productos vendidos
Ingresos
2. IDENTIFICAR GRANULARIDAD
Fuente: guru99
Nivel de detalle o desagregación que se tiene en los datos.
Normalmente se busca en relación al tiempo.
Ej: Dia, semana, mes.
3. IDENTIFICAR LAS DIMENSIONES
Fuente: guru99
Es posible saber las ventas por?
4. IDENTIFICAR LOS HECHOS O FACTS
Fuente: guru99
Cuales son las variables que cuantifican lo que quiero responder?
5. DISEÑAR MODELO DIMENSIONAL
Antes de crear nuestro modelo de datos, sabemos que vamos a tener que hacer las siguientes operaciones en la base de datos.
INTRODUCCIÓN A DBT
0
DEFINICIÓN
Fuente: DBT
DBT (acronimo de Data Build Tool) es un Framework de Python para el modelado de base de datos.
�Permite realizar CREATE, INSERT, y UPDATE, solamente aplicando consultas SELECT.
Permite crear código reutilizable gracias a Jinja
Como Iniciar?
Fuente: DBT
DBT está disponible a través de PIP.
�pip install dbt-postgres
Una vez instalado, para iniciar un proyecto de DBT se ejecutará el siguiente comando.��dbt-init
Enter a name for your project (letters, digits, underscore): dbt_pybaq_example
Which database would you like to use?
[1] postgres
(Don't see the one you want? https://docs.getdbt.com/docs/available-adapters)
Enter a number: 1
Una vez finalizado, va a cargar los siguientes elementos:
dbt_pybaq_example:
outputs:
dev:
type: postgres
threads: 4
host: localhost
port: 5432
user: postgres
pass: postgres
dbname: postgres
schema: dbt_example
prod:
type: postgres
threads: 4
host: localhost
port: 5432
user: postgres
pass: postgres
dbname: postgres
schema: dbt_example
target: dev
Estructura Proyecto DBT
Fuente: DBT
Archivo
�Los directorios más importantes son:
dbt_pybaq_example
├───analyses/
├───dbt_packages/
├───logs/
├───macros/
├───models/
├───seeds/
├───snapshots/
├───target/
├───tests/
└───dbt_project.yml