Se modela una base de datos para un comercio electrónico.
Se utilizan las siguientes tecnologias: - SQLAlchemy para mediar la creación de esquemas - PostgreSQL de motor de base de datos - DBT como herrmienta para hacer ELT - Streamlit para presentación de los resultados
- Python y libss
- Docker
- PostgreSQL
- SQLAlchemy
- DBT
- Streamlit
├── dash/ # Aplicación frontend (dashboard)
├── data/
├── mi_proyecto_dbt/
├── orm/ # Interacción con la base de datos
│ ├── scripts_sql/ # Scripts SQL para creación de tablas e inserción de datos
│ │ ├── 1.Create_ddl.sql # Script de creación de estructura base
│ │ ├── 2.usuarios.sql # Tabla de usuarios
│ │ ├── 3.categorias.sql # Tabla de categorías
│ │ ├── ... # etc etc
│ ├── db_conector.py # Conexión a la bd
│ ├── main.py # Script ppal de ejecución
│ └── modelos.py # Definición de modelos vía ORM
├── pgadmin-data/sessions/
├── proyecto_dbt/ # Proyecto principal de DBT
│ ├── logs/
│ ├── models/ # Modelos para transformaciones DBT
│ ├── target/ # Archivos generados tras compilación DBT
│ └── dbt_project.yml # Config del proyecto DBT
├── .gitignore
├── Dockerfile
├── README.md
├── docker-compose.yml # Orquestación de servicios
├── requirements.txt
- Clonar el repo
- Crear entorno virtual
- Instalá las dependencias
- Crear archivo .env para variables de entorno
- Ejecutar
docker-compose up -d- BD
- Acceder a PostgreSQL -->
localhost:5432 - PgAdmin -->
http://localhost:8080
main.py crea e inserta los datos necesarios en PostgreSQL
Utiliza conjunto de archivos .sql del directorio scripts_sql.
-
Creación de tabla
Se corre el script1.Create_ddl.sqlpara generar las tablas necesarias. -
Cargar de datos
Se ejecutan en secuecnia una lista de scripts.sql.
python main.py- Ejecutar los siguientes comandos dentro de /proyecto_dbt
dbt run
dbt test
dbt docs generatedbt docs serve --port 8081 Para levantar un servidor local y ver la documentación generada --> http://localhost:8081.
Se creo un dashboard con Streamlit, el cual se alimenta con los datos obtenidos los modelos y transformaciones relaizadas con DBT. El mismo, esta dividido en cuatro tabs:
- KPIs
- 6 KPIs a modo de resumen general
- Facturación
- Facturación vs. tiempo
- Ventas
- Ventas vs. tiempo
- Productos
- Productos
Se presentan varios gráficos.
- Facturación vs. tiempo
- Facturación efectiva vs. tiempo (facturas con estado="Completado")
- Volumen de ventas por categoría
- Facturación por categoría
Varios gráficos que relación alguna medida de ventas con distintas variables.
- Cantidad de órdenes vs. tiempo
- Unidades vendidas vs. tiempo
Varios gráficos que relacinan alguna característica de prodcutos con distintas variables.
- Top 10 ventas
- Stock
- cd /dash
- Correr con streamlit el dash_streamlilt.py
streamlit run dashboard_streamlit.py





