Skip to content

onemoremoka/marketplace_db_postgresql

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Marketplace Database 🛒

Sistema de base de datos PostgreSQL para análisis de transacciones de marketplace.

1. Descargar el dataset

chmod +x dataset.sh
./dataset.sh

Descarga manual: Si el script falla, descarga manualmente desde Kaggle - Raw Transactional Data y coloca el archivo transactional_data.sqlite en el directorio data/.

2. Configurar variables de entorno

Revisa y modifica el archivo .env y .env.pgadmin si es necesario. Este archivo contiene las variables de entorno para PostgreSQL y pgAdmin. Por reprodibilidad, las credenciales se incluyen en el repositorio.

3. Levantar los contenedores

# Primera vez (con rebuild)
docker-compose up --build -d

# Ver logs en tiempo real
docker-compose logs -f postgres

# Verificar estado
docker-compose ps

Revisar los logs para asegurarse que la base de datos se ha inicializado correctamente y los datos se han cargado sin errores.

4. Querys

Para documentar las consultas SQL se tiene el directorio sql, donde los scripts numerados se utilizan para inicializar la base de datos y cargar los datos. La carpeta queries contiene consultas de ejemplo para análisis que se puede ejecutar desde terminal mediante la siguiente consulta de ejemplo:

docker exec -it postgres_db psql -U admin -d postgres -f /docker-entrypoint-initdb.d/queries/sample.sql

ó

docker exec -it postgres_db psql -U admin -d postgres -c "SELECT * FROM marketplace.orders LIMIT 10;"

🗄️ Arquitectura de la Base de Datos

Schema: marketplace

Diagrama de la Base de Datos

orders - Órdenes de compra

order_id (PK)         VARCHAR(64)
timestamp             TIMESTAMP
customer_contact      VARCHAR(255)

products - Catálogo de productos

product_id (PK)              VARCHAR(64)
product_category_name        VARCHAR(255)
product_weight_g             FLOAT

sellers - Vendedores

seller_id (PK)        VARCHAR(64)
seller_state          VARCHAR(32)

order_items - Items de cada orden

order_items_pk (PK)   BIGSERIAL
order_id (FK)         VARCHAR(64)
product_id (FK)       VARCHAR(64)
seller_id (FK)        VARCHAR(64)
price                 NUMERIC(12,2)

order_reviews - Reseñas de órdenes

review_id (PK)               VARCHAR(64)
order_id (FK)                VARCHAR(64)
review_score                 INTEGER
review_comment_message       VARCHAR(2000)

💻 Uso

Acceso a PostgreSQL

# abre un terminal psql dentro del contenedor postgres_db
docker exec -it postgres_db psql -U admin -d postgres

# cualquier otro comando dentro del contenedor postgres_db: abre un terminal bash
docker exec -it postgres_db bash

Acceso a pgAdmin

La DB se puede administrar mediante pgAdmin. Se habilita una interfaz web en el puerto 8080 desde donde conectarse a la base de datos PostgreSQL.

  1. Abrir navegador en: http://localhost:8080
  2. Credenciales (credenciales en .env.pgadmin):
  3. Agregar servidor (credenciales en .env):

🛠️ Comandos Útiles

Docker Compose

# Iniciar servicios
docker-compose up -d

# Detener servicios
docker-compose stop

# Detener y eliminar contenedores
docker-compose down

# Reiniciar completamente (elimina datos)
docker-compose down -v
docker-compose up --build -d

# Ver logs
docker-compose logs -f
docker-compose logs postgres

sleep 10 && docker-compose logs postgres | tail -30

#reiniciar todo el dockercompose
docker-compose down -v && docker-compose up -d

Archivos SQL

  • 01-init-tables-and-structure.sql: Crea las tablas y la estructura de la base de datos en PostgreSQL.
  • 02-create-users.sh: Crea al usuario no root y le asigna permisos.
  • 03-sqlite-to-csv.sh: Carga los datos desde el archivo SQLite a PostgreSQL.
  • 04-copy-into-postgres.sql: Copia los datos desde los archivos CSV a las tablas de PostgreSQL.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published