Objeto de evidencia
Implementación pública sintética
Lab publicado
Un lote de datos en el que cada fila queda contabilizada
Monté un pipeline público y pequeño para que las comprobaciones de calidad se pudieran leer sin el sistema privado de nadie. En la demo fijada, la corrida 6afdf1566acc8178 acepta o pone en cuarentena cada fila de origen: clientes 4/3/1, pedidos 5/2/3, líneas de pedido 5/2/3, pagos 3/1/2, envíos 3/0/3. La cuarentena de clientes es exactamente customer_id.required y email.format. La reconciliación pasa, y los dos totales de línea son 400.00.
Entrada directa: esta página se sostiene sola. No implica un recorrido de Decision Room desde Home.
Forma, Procedencia y Estado son dimensiones separadas, no una sola insignia.
- Forma
- Lab técnico
- Procedencia
- SintéticoPúblico
- Estado
- Publicado
- Qué es
- Lab público sintético en PySpark con contratos, cuarentena, reconciliación, ejecuciones idempotentes, tests y CI.
- Pregunta / contexto
- ¿Se pueden inspeccionar controles de calidad cuando esquemas, filas rechazadas y reconciliaciones son explícitos?
- Qué se hizo
- Construí un pipeline batch local sobre fixtures B2B sintéticos con cinco contratos de origen, cuarentena, reconciliación y CI.
- Qué se aprendió
- El diseño contract-first y la contabilidad de filas hacen inspeccionables las decisiones accept/quarantine sin sistemas privados.
- Qué sostiene aquí
- Método de lab técnico para pipelines contract-first, adyacente al trabajo profesional de modernización.
- Qué no demuestra
- Equivalencia con sistemas de empleador o cliente, producción Databricks/cloud/streaming ni KPIs de negocio.
Este lab usa datos sintéticos, reglas de negocio sintéticas y una arquitectura sintética. No reproduce código, datos ni sistemas de un empleador. Es un lote local pequeño, que puedo correr en un portátil. La migración a Databricks es otro trabajo.
Qué es el laboratorio
Escribí Data Quality Pipeline Lab como un pipeline local en PySpark sobre pedidos mayoristas sintéticos. Quería que los contratos, las decisiones de cuarentena, la reconciliación y la evidencia de CI se pudieran leer sin abrir un sistema privado.
Qué quería poder ver
Las comprobaciones de calidad son difíciles de discutir cuando el esquema se adivina, una fila rechazada no dice por qué, y nadie reconcilia lo que entró con lo que salió. Quería un ejemplo público y pequeño en el que cada fila quedara aceptada o en cuarentena, y los totales se pudieran comprobar.
Qué incluye el lab
- Cinco contratos de origen explícitos con esquemas tipados y claves primarias.
- Reglas de calidad referenciales, de dominio, temporales y aritméticas con identificadores estables.
- Registros de cuarentena a nivel de fila para entradas rechazadas.
- Ejecuciones idempotentes con salidas Parquet seguras ante sobrescritura.
- Contabilidad de filas origen-destino y reconciliación monetaria.
- Artefactos de evidencia JSON, tests automatizados y CI en GitHub Actions.
Qué dejé fuera de alcance
- Los datos, las reglas de negocio y la arquitectura son totalmente sintéticos.
- El lab no reproduce código, datos ni sistemas de empleadores.
- Es un pipeline batch local y no incluye Databricks, infraestructura cloud, streaming, orquestación, API ni interfaz de usuario.
- No atribuye escala de producción ni impacto de negocio.
Cómo funciona el pipeline
- 01
Declarar contratos en lugar de inferir esquemas
Cada origen tiene un esquema Spark explícito, una clave primaria y campos monetarios tipados, de modo que el pipeline nunca depende de la inferencia.
- 02
Aplicar reglas de calidad inspectables
Las filas rechazadas se escriben una sola vez con todos los identificadores de regla aplicables, el nombre del origen y un run ID determinista.
- 03
Mantener las ejecuciones idempotentes
El run ID se deriva de la configuración y de los bytes de entrada. Las salidas se escriben de forma segura para que las repeticiones produzcan las mismas tablas y conteos lógicos.
- 04
Reconciliar las salidas aceptadas
El pipeline comprueba que cada fila de origen se acepta o se pone en cuarentena y reconcilia los totales de líneas de pedido aceptadas frente al resumen de pedidos curado.
- 05
Empaquetar evidencia y CI
El manifiesto y los informes de calidad y reconciliación se escriben en JSON, y el repositorio valida formato, tipos, tests, build y la demo de extremo a extremo en CI.
Qué contiene el repositorio
- Un pipeline batch local en PySpark con fixtures sintéticos.
- Contratos de origen explícitos y salidas de cuarentena.
- Informes de evidencia de reconciliación y manifiesto de ejecución.
- Tests automatizados y un entorno de desarrollo bloqueado.
- CI en GitHub Actions y una release pública versionada.
Tecnologías
- Python
- PySpark
- uv
- pytest
- Ruff
- mypy
- GitHub Actions
- Parquet
Qué muestra el paquete publicado
Hecho del paquete del lab sintético
Contratos de origen explícitos
customers 4/3/1, orders 5/2/3, order lines 5/2/3, payments 3/1/2, shipments 3/0/3
Demo pineada 6afdf1566acc8178. Los conteos son leídas, aceptadas y en cuarentena.
Hecho del paquete del lab sintético
Tests automatizados
customer_id.required y email.format
El test pineado fija la cuarentena de customers exactamente en estos dos ids.
Hecho del paquete del lab sintético
Comprobaciones de reconciliación
PASS, ambos totales de línea "400.00"
Laboratorio sintético público. No es un sistema de empleador. No es Databricks, nube, streaming ni orquestación.
Qué no demuestra este lab
- Se trata de un lab de referencia sintético, no de una entrega a cliente ni de un sistema de producción.
- No demuestra Databricks, operaciones cloud, streaming ni orquestación.
- Los conteos de fixtures y los totales de la demo no son KPI de negocio.
- No hay evidencia de escala, latencia o coste bajo cargas realistas.
Qué seguiría haciendo falta en un despliegue real
- Orquestación, reintentos y recuperación ante fallos.
- Control de acceso, catálogo y linaje.
- Política de evolución de esquema y procesamiento incremental.
- Métricas operativas, alertas y particionado bajo cargas reales.
Dónde puede ayudar este método
- Diseño de ETL y calidad de datos.
- Revisión de pipelines con contratos primero.
- Diseño de cuarentena y reconciliación.
- Evaluación técnica de modernización de procesos analíticos.
Evidencia del proyecto
- Ver el repositorio público
El pipeline, los datos de ejemplo sintéticos, los tests, los informes y el CI. Los datos y las reglas son sintéticos, y no copian el sistema de un empleador.
- Ver la release v0.1.0
La release v0.1.0 de ese laboratorio, con la demo local que fijan los tests.
Siguientes pasos
- Aceptadas
- En cuarentena
| Filas de origen | Leídas | Aceptadas | En cuarentena |
|---|---|---|---|
| Clientes | 4 | 3 | 1 |
| Pedidos | 5 | 2 | 3 |
| Líneas de pedido | 5 | 2 | 3 |
| Pagos | 3 | 1 | 2 |
| Envíos | 3 | 0 | 3 |
El orden publicado es leídas, aceptadas y en cuarentena. Aceptadas más cuarentena equivalen a las filas leídas. No es una tasa ni la reconciliación de 400.00.
Cada fila de origen quedó aceptada o en cuarentena. Los totales de línea, 400.00 = 400.00, son otra comprobación. Este laboratorio no pertenece a la línea de recuperación.