GH GambleHub

Integridad de datos

1) Qué es la integridad de los datos

La integridad de datos es un conjunto de propiedades y controles que garantiza que los datos son correctos, consistentes y consistentes en todo el ciclo de vida: desde fuentes y transformaciones hasta escaparates, APIs y exportaciones. El objetivo es que la misma afirmación dé la misma respuesta cuando se repita, y que cualquier cambio sea rastreable y verificable.


2) Tipos de integridad y dónde viven

Entity: claves primarias únicas, sin duplicados.
Referencia (Referential): enlaces FK correctos; la ausencia de referencias «colgantes».
Dominio: rangos y formatos válidos (tipo, longitud, referencias).
Reglas de negocio: invariantes de área de tema (balance ≥ 0, suma de cableado = 0, etc.).
Temporal: monotonía y consistencia de las marcas de tiempo, zonas de tiempo correctas.
Directivas de acceso: RLS/CLS no violan la coherencia lógica de los datos visibles.


3) Contratos de datos y esquemas (fuente de la verdad)

Establecemos contratos formales para conjuntos y eventos; los aplicamos en la entrada y después de cada transformación.

Ejemplo (YAML, simplificado):
yaml dataset: payments primary_key: txn_id foreign_keys:
- fk: user_id -> users.user_id schema:
- {name: txn_id, type: string, unique: true}
- {name: user_id, type: string, not_null: true}
- {name: amount, type: decimal(18,2), min: 0}
- {name: currency, type: string, in: [USD,EUR,TRY,UAH]}
- {name: event_time, type: timestamp, tz: UTC}
dq_rules:
- "duplicates(txn_id)=0"
- "ref_integrity(user_id, users.user_id)=true"
- "sum(amount) >= 0"
evolution:
semver: [MAJOR, MINOR, PATCH]
breaking_changes_require: approval:data-governance

4) Garantías de transacción y aislamiento

ACID para OLTP: atomicidad, consistencia, aislamiento, durabilidad.
Niveles de aislamiento: Read Committed/Repeatable Read/Serializable - elija bajo el riesgo de lecturas «sucias «/irrepetibles/fantasmas.
OLAP y lakehouse: commits atómicos de tabla (transaction log), idempotent sink y schema-evolution con control de compatibilidad.
Consistencia de fórmulas KPI: una capa semántica → una verdad para informes y API.


5) Sistemas distribuidos: orden, repeticiones, idempotencia

Orden de eventos: usamos 'event _ time' + 'ingested _ at', watermarks y tolerancia lateness; agregados basados en tiempo de evento.
Envíos repetidos (at-least-once): global 'event _ id', tablas idempotency keys, upsert/merge por clave sostenible.
Fuera de orden: re-cálculo de ventanas, estrategia de retraso, compensación.
Exactly-once por sentido: el transporte puede ser en-least-once, el receptor es idempotente.


6) Validación de integridad (DQ) en cada capa

Incorporamos las reglas de integridad en el CI/CD y en el rantime de los pipelines:
  • Freshness/Completeness/Uniqueness/Valid Values/Referential Integrity.
  • Anomalías: ráfagas de duplicados, brechas de tiempo, cambios bruscos en las distribuciones.
  • Control de fórmulas KPI: versionabilidad de cálculos y pruebas de coincidencia de resultados (sets de oro).
  • Control de las exportaciones: prohibición de la emisión de conjuntos infractores (quarantine).
Ejemplo (Great Exhibations-style):
yaml expect_column_values_to_be_unique: {column: txn_id}
expect_column_values_to_not_be_null: {column: user_id}
expect_column_values_to_be_in_set: {column: currency, value_set: [USD,EUR,TRY,UAH]}

7) Integridad financiera y operativa

Doble entrada (doble entrada): débito/crédito en el balance; conciliaciones resumidas en cut-off.
Invariantes totales: importe de los pagos = importe de los cargos + comisiones + ajustes.
Invariantes operativos: las métricas SLA/guardrail no rompen las reglas del negocio (por ejemplo, las reparaciones automáticas no crean duplicados).


8) Lineage, auditoría y reproducibilidad

Linage: de la fuente a las vitrinas/fich; visibilidad de transformaciones y propietarios.
Audit Trails: quién cambió qué, cuándo y por qué; versiones de esquemas/fórmulas/jobs.
Snapshots/checkpoints: capacidad para volver a calcular y confirmar informes pasados.
Repro: la misma consulta en el mismo corte → el mismo resultado (versiones y capas).


9) Seguridad y privacidad sin pérdida de integridad

RLS/CLS: los filtros de fila/columna no deben interrumpir los invariantes (por ejemplo, la suma de la muestra visible debe coincidir con la declarada).
Enmascaramiento/tokenización: estrategias deterministas para mantener el dedoup y la integridad referencial.
Cifrado: en el canal y «en el disco» después de la compresión; administración de claves y auditoría de accesos.
DSAR/Retention: la eliminación/anonimización no rompe la conectividad (política en cascada).


10) Autoservicio y reparación automática

Quarantine: aislamiento de lotes/batches sospechosos; los consumidores son una rama «limpia».
Replay/Backfill: volver a jugar una ventana de un registro raw inmutable.
Reconcile: conciliar capas y sistemas (raw↔curated↔marts; istochnik↔DWH).
Dedup/Compaction/Rebuild: procedimientos del sistema para reparar índices/agregados.
Policy-as-code: «qué anomalía → qué acción → umbrales → escalada».


11) Prácticas de modelado y almacenamiento

Claves estables: PK subrogado (UUID/ULID), claves naturales inalterables en los manuales.
Normalizatsiya↔denormalizatsiya: Enlaces FK en fuentes, vitrinas desnormalizadas con control de versión lógica.
SCD1/SCD2: una historia manejable para las mediciones.
Ordenar/agrupar: mejora el RLE/zone-maps y simplifica las conciliaciones.
Hashes y sumas de comprobación: verificación de la integridad de archivos/lotes.


12) Integridad en el tiempo y en la presentación de informes

Versiones de fórmulas: el informe de enero de 2025 debe reproducirse mediante la fórmula de la versión X.
Corte-apagado y «cierre de periodo»: congelación de escaparates y cortes de archivo.
Late arriving facts: mecánica de dosificación y recuento con marca de la versión del informe.
Documentación de redefiniciones: ajustes manuales - sólo con auditoría.


13) Integraciones y API

Contrato API: esquemas, tipos, campos obligatorios, códigos de error; versionar (v1/v2).
Validación en la entrada: reject mal payload's, no «arreglar en silencio».
Idempotent POST: clave de idempotencia, la repetición es segura.
Exportar a archivos: consistencia de lotes, hashes, firmas.


14) Antipattern

SELECT en solicitudes prod y pinzas - se rompe en la evolución MINOR.
FK «en palabras»: no hay verificación real de los enlaces.
Correcciones silenciosas de datos sin auditoría ni informes.
Mezcla de TZ y formatos de tiempo en un solo conjunto.
Redefiniciones de KPI por «lápices» sin versiones ni registros.
La única clave de desduplicación sin estrategias de repuesto.
Eliminación por DSAR sin verificación en cascada de vínculos.


15) Hoja de ruta para la implementación

1. Inventory & Criticidad: kits de mapa/eventos, propietarios, riesgos, invariantes.
2. Contratos y esquemas: formalizar tipos/restricciones/FK, pruebas de compatibilidad CI.
3. DQ en pipeline: Freshness/Completeness/Uniqueness/RI, quarantine, alertas.
4. Base transaccional: atomic-sink, upsert/merge, historia SCD, versionabilidad de fórmulas.
5. Lineage and Audit: directorio, seguimiento, change-logs, access-logs.
6. Políticas de reparación: replay/backfill/dedup/reconcile como código; runbook’и и SLO MTTR-data.
7. Seguridad: RLS/CLS, enmascaramiento, cifrado, procesos DSAR.
8. Informes: cut-off, cortes libres, control de versiones de KPI.


16) Check-list antes del lanzamiento del kit/escaparate

  • PK/FK y las restricciones de dominio se establecen y pasan las pruebas.
  • Se habilita la versificación de esquemas/fórmulas; schema-diff verde.
  • Reglas DQ (frescura/plenitud/singularidad/rangos/RI) verdes.
  • Registros idempotentes: upsert/merge, clave de idempotencia (para eventos).
  • Tiempo: 'event _ time' e 'ingested _ at', TZ = UTC; política de datos late.
  • La línea y la auditoría son visibles; quarantine y alertas incluidas.
  • El RLS/CLS/enmascaramiento no rompe invariantes y RI.
  • DSAR/Retention probados; cut-off/archivo listo.

17) Mini plantillas

SQL: verificación de integridad de referencia

sql select count() as orphans from fact_payments f left join dim_users u on f.user_id = u.user_id where u.user_id is null;
-- ожидаем orphans = 0

Política quarantine/repair (pseudo-YAML)

yaml policy: payments_integrity detect:
- rule: duplicates(txn_id) > 0
- rule: ref_integrity(user_id, users.user_id) = false auto_actions:
- quarantine_partition: {date: today}
- trigger_replay: {window: "last_2h"}
escalate_if:
- condition: violations_persist>30m page: "oncall-data"

Diagrama de SCD2 para medición

sql
-- dim_user_status (SCD2)
user_id, status, valid_from, valid_to, is_current

18) Resultado

La integridad de los datos no es una verificación aislada, sino un sistema de garantías transversales: contratos formales y restricciones, invariantes transaccionales y distribuidos, validación y automatización de reparaciones, lineage y auditoría, privacidad y derechos. Cuando estos elementos trabajan juntos, los datos se convierten en una base confiable para las soluciones, y los incidentes son raros, cortos y predecibles.

Contact

Póngase en contacto

Escríbanos ante cualquier duda o necesidad de soporte.¡Siempre estamos listos para ayudarle!

Iniciar integración

El Email es obligatorio. Telegram o WhatsApp — opcionales.

Su nombre opcional
Email opcional
Asunto opcional
Mensaje opcional
Telegram opcional
@
Si indica Telegram, también le responderemos allí además del Email.
WhatsApp opcional
Formato: +código de país y número (por ejemplo, +34XXXXXXXXX).

Al hacer clic en el botón, usted acepta el tratamiento de sus datos.