Sistema de base de datos PostgreSQL para análisis de transacciones de marketplace.
chmod +x dataset.sh
./dataset.shDescarga manual: Si el script falla, descarga manualmente desde Kaggle - Raw Transactional Data y coloca el archivo transactional_data.sqlite en el directorio data/.
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.
# Primera vez (con rebuild)
docker-compose up --build -d
# Ver logs en tiempo real
docker-compose logs -f postgres
# Verificar estado
docker-compose psRevisar los logs para asegurarse que la base de datos se ha inicializado correctamente y los datos se han cargado sin errores.
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;"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 FLOATsellers - 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)# 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
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.
- Abrir navegador en: http://localhost:8080
- Credenciales (credenciales en
.env.pgadmin): - Agregar servidor (credenciales en
.env):
# 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
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.
