GH GambleHub

Enriquecimiento de datos

1) Propósito y valor empresarial

El enriquecimiento convierte los eventos «crudos» en hechos útiles, añadiendo contexto y signos:
  • Finanzas/informes: fx-normalización de los importes, vinculación a los mercados/tipos impositivos, cálculo de GGR/NGR.
  • Cumplimiento/AML/RG: calificaciones de riesgo, etiquetas de sanciones/RR, límites de RG, signos de comportamiento.
  • Marketing/producto: fuentes de tráfico, segmentos, misiones/misiones, personalización.
  • SRE/operaciones: geo/ASN para tráfico, tipo de cliente/dispositivo, fichas y lanzamientos.

El resultado clave es mejorar la precisión de los modelos, la calidad de los informes y la velocidad de toma de decisiones.


2) Fuentes enriquecedoras (catálogo aproximado)

Referencias/catálogos: juegos, proveedores, mercados/jurisdicciones, monedas, tablas de impuestos, calendario de vacaciones.
KYC/KYB/RG: niveles de verificación, estados, autoexclusiones, límites, grupos de edad.
AML/sanciones/PEP: hits de cribado, listas, niveles de riesgo.
Redes y dispositivos: IP→geo/ASN, dispositivo/OS/navegador, dispositivo fingerprint.
Proveedores de pago (PSP): tablas BIN, métodos, MCC, etiquetas de riesgo.
FX/hora: tipos de cambio en la fecha del evento, zonas horarias locales/DST.
Contenido y marketing: fuentes/campañas/UTM, afiliados, segmentos.
Modelos y heurísticas: scorings pre-entrenados, embeddings, mappings categóricos.


3) Tipos de enriquecimiento

Lookup-joyne: asignación puntual por clave (game_id, BIN, ip_range, user_pseudo_id).
Dimension attach: adjuntar medidas (dim.) a los hechos.
Campos derivados: columnas computables (amount_base, local_time, tax_rate).
Aggregations/velocity: contadores por ventana (N apuestas/min, cantidad de depósitos/hora).
Risk/behavioral features: «hora del último evento», share-of-wallet, actividad nocturna.
Geo/ASN/Device: código de país, región, operador, tipo de dispositivo/navegador.
Mappings semánticos: clasificación de proveedores/juegos, grupos de jugadores.
ML-fichi: señales para el modelado en línea/fuera de línea (Feature Store).


4) Dónde enriquecer: Batch vs Stream

Stream (tiempo real): antifraude, disparadores RG, alertas SRE - retrasos p95 ≤ 2-5 s; lookup en caché (Redis/Scylla), consultas asíncronas a proveedores con temporizadores.
Batch (micro-batch/diario): vitrinas Gold (GGR/RG/AML), conciliaciones, informes - la estabilidad y la integridad son más importantes que la latencia.
Híbrido: característica rápida en línea + reciclaje nocturno (reconciliation/accuracy).


5) Referencia arquitectónica

1. Bronze - eventos crudos (append-only).
2. Silver (clean/amb): normalización, claves, lookup primario 'y (fx, geo, dim.) .
3. Enrichment Layer - características extendidas, agregados de ventanas, etiquetas de riesgo.
4. Feature Store es un registro de características (consistencia online/offline).
5. Gold - escaparates bajo BI/regulador/modelos; artefactos inmutables.
6. Servicios - API/GraphQL, exportaciones de informes, alertas de tiempo real.

Componentes: Kafka/Redpanda, Flink/Spark/Beam, Redis/Scylla (lookup), ClickHouse/Pinot (lectura en línea), Lakehouse (Delta/Iceberg/Hudi).


6) Contratos y esquemas

Schema-first: 'event _ time', 'schema _ version', claves estables (user_pseudo_id, game_id, transaction_id).
Marcas de enriquecimiento: 'enrichment. version`, `enrichment. sources`, `fx_source`, `geo_source`, `model_version`.
Versificación: se añaden nuevas características como nullable; cambios de breaking - a través de '/v2 'y doble registro.


7) Ejemplos de enriquecimiento (SQL/pseudocódigo)

7. 1 normalización FX y hora local

sql
SELECT p.transaction_id,
p.amount_orig,
p.currency,
r.rate   AS fx_rate_used,
p.amount_orig r.rate AS amount_base,
p.event_time,
convert_timezone(m.tz, 'UTC', p.event_time) AS local_time,
r.fx_source
FROM bronze.payment_events p
JOIN dim.fx_rates r
ON r.date = DATE(p.event_time) AND r.ccy_from = p.currency AND r.ccy_to = 'EUR'
JOIN dim.markets m ON m.code = p.market;

7. 2 Geo/ASN por IP (pseudocódigo)

python geo = geo_db.lookup(ip)
asn = asn_db.lookup(ip)
record["geo_country"] = geo.country record["asn"] = asn.number record["enrichment"]["geo_source"] = "mmdb:2025-10-01"

7. 3 Señales de ventanilla de velocidad de depósito (stream)

sql
SELECT user_pseudo_id,
TUMBLE_START(event_time, INTERVAL '10' MINUTE) AS win_start,
COUNT() AS deposits_10m,
SUM(amount_base) AS deposits_sum_10m
FROM silver.payments
GROUP BY user_pseudo_id, TUMBLE(event_time, INTERVAL '10' MINUTE);

7. 4 Emparejamiento con límites RG

sql
SELECT b., r.daily_deposit_limit, r.self_exclusion
FROM silver.bets b
LEFT JOIN dim.rg_limits r USING (user_pseudo_id);

8) Calidad de enriquecimiento (DQ)

Reglas mínimas:
  • FX: 'fx _ rate _ used' no NULL, 'fx _ source' de whitelist, calculado 'amount _ base ≥ 0'.
  • Geo/ASN: porcentaje de lookups exitosos ≥ 98% (por mercados), 'country' en el directorio.
  • Las etiquetas RG/AML: 'valid _ from/valid _ to' (SCD II) no se superponen; la ausencia de «agujeros» en la historia.
  • Agregados/ventanas: corrección de ventanas (sin doble contabilidad), completeness ≥ 99. 5%.
  • Versiones de los modelos: 'model _ version' está presente, el control de la deriva de las características.
Ejemplo de reglas YAML:
yaml table: enriched.payments rules:
- name: fx_present type: not_null column: fx_rate_used severity: critical
- name: country_known type: in_set column: geo_country set_ref: ref.countries severity: major
- name: rg_scd_valid type: scd_validity columns: [valid_from, valid_to]
severity: major

9) Privacidad y cumplimiento

Minimización de PII: enriquezca con pseudo-ID, identificadores reales - en un circuito separado.
Geo-localización y residencia: enrutamiento por región (EEA/UK/BR), claves de cifrado separadas.
DSAR/RTBF: las proyecciones enriquecidas deben apoyar la «ocultación «/edición; conserve la base legal de las excepciones.
Legal Hold: congelar las eliminaciones de artefactos/casos reportados.


10) Observabilidad y lineaje

Linage: del evento crudo → lookup/agregados → vitrinas/modelos; capturar versiones de fuentes ('fx _ source', 'geo _ source', 'bin _ source').
SLI/SLO: freshness p95 (Silver) ≤ 15 мин; geo-lookups exitosos ≥ 98%; porcentaje de registros con caracteres clave completados ≥ 99%; latency enrich-stream p95 ≤ 2-5 s.
Dashboards: mapa térmico completo por fuente, mapa de versiones de guías/modelos, monitor «costoso» join's, deriva de rasgos.


11) Costo y rendimiento

Caché/materialización: frecuente lookup 'y en Redis/Scylla; snapshot's periódicos.
Características compactas: almacenar unidades (no listas «crudas»); utilice Parquet/formatos de columna.
Lotes: por fecha/mercado/tenante; agrupamiento de campos a menudo filtrados.
Frecuencia adaptativa: enrich-jobs pesados - noches; realtime - sólo crítico.
Chargeback: contabilidad de costo/query y costo/GB por equipos/fichas.


12) Patrones y anti-patrones

Patrones:
  • Dimension Lookup + SCD II para RG/KYC/proveedores.
  • Async Enrichment con temporizadores y fallback (etiqueta «unknown» + repetición).
  • Feature Store con concordancia online/offline y pruebas de retransmisión.
  • Rule-as-Code para enriquecimiento (mapas umbral/categóricos).
Anti-patrones:
  • Ajuste rígido a las API externas en la ruta de acceso sin memoria caché.
  • Versiones de origen no marcadas ('fx _ source', 'geo _ source').
  • Denormalización de «todo con todo» en Silver (explosiones de costo/complejidad).
  • Introducción del PII en las capas analíticas.

13) Procesos y RACI

R (Responsable): Ingeniería de datos (pipelines enrich/stream), Owners de dominio (semántica de rasgos), MLOps (Feature Store).
A (Accountable): Head of Data / Chief Data Officer.
C (Consulted): Compliance/Legal/DPO, Finance (FX/налоги), Risk (RG/AML), SRE.
I (Informed): BI/Producto/Marketing/Operaciones.


14) Hoja de ruta para la aplicación

MVP (2-4 semanas):

1. Catálogo de fuentes enriquecedoras (fx, geo, markets, RG/KYC).

2. Normalización de plata + lookup básico 'y (fx/geo/dim.) .

3. Primeras unidades velocity (depósitos/apuestas) y enriched. v1 tablas.

4. Dashboard completeness/freshness, versiones de fuentes.

Fase 2 (4-8 semanas):
  • Conexión de sanciones/RR/QUV, tablas BIN PSP, dispositivo fingerprint.
  • Feature Store (núcleo de características) + caché en línea, realtime-enriquecimiento Flink.
  • Reglas DQ en la capa enrich, lineage y simulación "dry-run'.
Fase 3 (8-12 semanas):
  • Personalización (misiones/misiones) y detectores RG/AML en línea.
  • Gestión de costes (cuotas, materialización, Z-order), multi-región.
  • Autogeneración de documentación de caracteres y directorios ("feature cards').

15) Check-list de calidad antes de la venta

  • Claves y esquemas acordados, versiones de origen firmadas.
  • Reglas DQ en fx/geo/RG/sanciones/ventanas; alertas y SLO.
  • Cache/timeout y fallback para lookup's externos.
  • Linage y dashboards costo/rendimiento.
  • Procedimientos DSAR/RTBF/Legal Hold para tablas enriquecidas.
  • Documentación de características (owner, fórmulas, SLO, influencia).

16) Errores frecuentes y cómo evitarlos

Versiones no etiquetadas de las guías/modelos: fije siempre '_ source' y 'model _ version'.
Cálculo «retroactivo» de fx: utilice el curso en el momento del evento; almacene la fuente FX.
Mezcla de PII: tokenizar y aislar los mappings.
Doble contabilidad en unidades: compruebe las ventanas y el dedoup.
Llamadas externas sincrónicas sin memoria caché: escriba async + caché/retrés.
No hay retransmisión de fichas: código único de transformación en línea/fuera de línea, pruebas de conformidad.


17) Glosario (breve)

Lookup/Dimension attach - Adjuntar la referencia al hecho por clave.
Feature Store es un registro y un serving de características para ML.
SCD II es la historización de las mediciones a intervalos de validez.
FX - tipos de cambio y normalización de sumas.
ASN - Sistema de red autónomo; útil para antifraude y geo-analítica.


18) Resultado

El enriquecimiento es la disciplina de convertir eventos en conocimiento: claves y esquemas consistentes, lookup controlado 'y agregados, fuentes versionadas, privacidad predeterminada, DQ y observabilidad. Siguiendo los patrones descritos, obtendrá vitrinas y características reproducibles, económicas y completas, listas para reportar, personalizar y detectar riesgos en tiempo real.

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.