Standard Operating Procedure (SOP) – Data Intake & Profiling
✅ 1. SOP BDS – Data Intake & Profiling (texto listo para Word)
Propietario: Oficina de Entrega BDS
Aplicación: Todos los proyectos CRISP-DM
I. Objetivo
Estandarizar la recepción, validación, perfilamiento y diagnóstico de calidad de datos provenientes de clientes, sin importar el formato (Excel, CSV, TXT, JSON, JSONL, Parquet, Feather o ZIP), garantizando:
II. Alcance
Este procedimiento se utiliza desde la entrega del primer archivo hasta su validación formal para continuar a la fase de Data Understanding de CRISP-DM.
Cubre:
III. Roles involucrados
IV. Proceso estándar
1. Handshake previo
2. Recepción del archivo (detector de formato automático)
El pipeline debe:
3. Exploración estructural para cualquier formato
4. Perfilamiento automático
5. Reportes entregables
El sistema genera automáticamente:
6. Comunicación con cliente (< 2 horas)
Enviar:
7. Cierre de Intake
V. Criterios de aceptación
Un archivo queda aprobado SI:
VI. Anexos
Incluye:
✅ 2. Repositorio GitHub – Estructura recomendada
bds-data-intake/
│
├── README.md
├── requirements.txt
├── setup.py
│
├── bds_profile/
│ ├── __init__.py
│ ├── cli.py
│ ├── loaders.py # lectura agnóstica
│ ├── profiler.py # descriptivas + ydata profiling
│ ├── quality.py # reglas de calidad
│ ├── utils.py
│
├── data/
│ ├── raw/
│ ├── processed/
│ └── reports/
│
└── examples/
├── archivo.csv
├── archivo.xlsx
└── archivo.json
✅ 3. Script CLI profesional bds_profile
Instalación
En el repositorio:
pip install -e .
Esto crea el comando global:
bds_profile archivo.ext
Código del CLI (listo para pegar)
# cli.py
import click
from .loaders import load_file
from .profiler import generate_profile
from .quality import run_quality_checks
@click.command()
@click.argument("path")
def main(path):
click.echo(f"📁 Cargando archivo: {path}")
df = load_file(path)
click.echo(f"✔ Archivo cargado: {df.shape[0]} filas, {df.shape[1]} columnas")
issues = run_quality_checks(df)
click.echo("🔍 Problemas detectados:")
for k, v in issues.items():
click.echo(f" - {k}: {v}")
report_path = generate_profile(df, path)
click.echo(f"📊 Reporte generado en: {report_path}")
click.echo("🚀 Intake completado.")
if __name__ == "__main__":
main()
✅ 4. Metodología institucional BDS – Data Intake Framework
Principio rector
Cero retrabajos. Cero ambigüedad. Cero conjeturas.
Solo datos bien entendidos permiten modelos robustos.
Pilares
Ciclo operativo tipo fábrica
Métricas clave (KPIs BDS Intake)
descriptivas_de_Excel.py
8.2 KB