GH GambleHub

Enriquecimento de dados

1) Atribuição e valor de negócio

Enriquecimento transforma eventos «crus» em fatos úteis, adicionando contexto e sinais:
  • Finanças/relatórios: fx-normalização de quantias, vinculação a mercados/taxas fiscais, cálculo GGR/NGR.
  • Complacência/AML/RG: simulações de risco, RG/RG RG, sinais comportamentais.
  • Marketing/produto: fontes de tráfego, segmentos, missões/buscas, personalização.
  • SRE/operações: geo/ASN para tráfego, tipo de cliente/dispositivo, fichflagra e lançamentos.

O resultado chave é melhorar a precisão dos modelos, a qualidade dos relatórios e a velocidade de tomada de decisões.


2) Fontes enriquecedoras (catálogo modelo)

Árbitro/catálogo: jogos, provedores, mercados/jurisdição, moedas, tabelas fiscais, calendário de feriados.
KYC/KYB/RG: Níveis de verificação, estatais, auto-exclusões, limites, grupos etários.
AML/sanções/PEP: hits de screening, listas, níveis de risco.
Redes e dispositivos: IP→geo/ASN, dispositivo/OS/navegador, device fingerprint.
Provedores de pagamento (PSP): tabelas BIN, métodos, MCC, marcas de risco.
FX/hora: taxas de câmbio na data do evento, fuso horário local/DST.
Conteúdo e marketing: fontes/campanhas/UTM, afiliados, segmentos.
Modelos e evristas: amostras pré-aprendidas, embeddings, muppings categóricos.


3) Tipos de enriquecimento

Lookup-joyn: mapeamento de ponto por chave (game _ id, BIN, ip _ range, user _ pseudo _ id).
Dimension attach: junção de medidas (dim.) para os factos.
Derived fields: colunas computáveis (amount _ base, local _ time, tax _ rate).
Agregações/velocity: contadores por janela (N apostas/min, valor de depósito/hora).
Risk/behavioral feures: «Tempo do último evento», share-of-wallet, atividade noturna.
Geo/ASN/Device: código de país, região, operadora, tipo de dispositivo/navegador.
Semantic mapings: classificação de provedores/jogos, cluster de jogadores.
Fici ML: sinais para simulação on-line/offline (Função Store).


4) Onde enriquecer: Batch vs Stream

Stream (real-time): antifrode, desencadeadores RG, alertas SRE - atrasos p95 ≤ 2-5 c; lookup em cachês (Redis/Scylla), consultas assíncrônicas a provedores com temporizadores.
Batch (micro-batches/diários): vitrines Gold (GGR/RG/AML), acréscimos, relatórios - estabilidade e cumplicidade são mais importantes do que a latência.
Híbrido: sinal online rápido + readaptação noturna (reconciação/accuracy).


5) Árbitro arquitetônico

1. Bronze - eventos crus (append-only).
2. Silver (clean/conform) - Normalização, chaves, lookup primário 'e (fx, geo, dim.) .
3. Enrichment Layer - sinais avançados, máquinas de janelas, marcas de risco.
4. Função Store - maiúscula de sinais (coerência online/offline).
5. Gold - vitrines sob BI/regulador/modelo; Artefactos imutáveis.
6. Serviços - API/GraphQL, relatórios, real-time alertas.

Componentes: Kafka/Redpanda, Flink/Spark/Beam, Redis/Scylla (lookup), ClickHouse/Pinot (leitura operacional), Lakehouse (Delta/Iceberg/Hudi).


6) Contratos e esquemas

Schema-first: 'event _ time', 'schema _ versão', chaves estáveis (user _ pseudo _ id, game _ id, mudança _ id).
Marca de enriquecimento: 'enrichment. version`, `enrichment. sources`, `fx_source`, `geo_source`, `model_version`.
Versionização: novos sinais são adicionados como nullable; alterações breaking - através de '/v2 'e dupla gravação.


7) Exemplos de enriquecimento (SQL/pseudocode)

7. 1 FX Normalização e Horário 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 (pseudocode)

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 Sinais de janela de velocidade 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 Blend com limites 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) Qualidade do enriquecimento (DQ)

Regras mínimas:
  • FX: 'fx _ rate _ used' não NULL, 'fx _ fonte' de whitelist, calculado 'amount _ base ≥ 0'.
  • Geo/ASN: Taxa de sucesso lookups ≥ 98% (mercados), 'country' no guia.
  • RG/AML marcas: 'valid _ from/valid _ to' (SCD II) não se cruzam; Não há buracos na história.
  • Máquinas/janelas: correção das janelas (sem dupla contabilidade), completeness ≥ 99. 5%.
  • Versões de modelos de 'modelo _ versão' estão presentes, controlando a deriva de sinais.
Exemplo de regras 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) Privacidade e complacência

Minimizar PII: enriqueça com pseudo-ID, e identifiquem reais em um circuito separado.
Geo-localização e residência: localização regional (EEA/UK/BR), chave de criptografia separada.
DSAR/PTBF: projeções enriquecidas devem manter «ocultação «/redação; guarde a base legal para exceções.
Legal Hold: congelamento de remoções para artefatos e malas relatadas.


10) Observabilidade e lineage

Linedge: de evento cru → lookup/equipamentos → vitrine/modelo; verifique versões de fontes ('fx _ fonte', 'geo _ fonte', 'bin _ fonte').
SLI/SLO: freshness p95 (Silver) ≤ 15 мин; geo-lookups bem-sucedidos ≥ 98%; A proporção de registros com sinais-chave preenchidos ≥ de 99%; latency enrich-strim p95 ≤ 2-5 s.
Dashboards: cartão térmico completeness por fontes, mapa de versões de guias/modelos, monitor «caro» join 'ov, à deriva de sinais.


11) Custo e desempenho

Cash/materialização: lookup 'e frequentes em Redis/Scylla; snapshot's periódicos.
Sinais compactos: armazene as máquinas (em vez de listas «cruas»); use Parquet/formatos invertebrados.
Particionamento: por data/mercado/tenante; clusterização em campos frequentemente filtrados.
Frequência adaptativa: enrich-jobs pesados - noites; realtime - apenas críticos.
Chargeback: contabilidade de custo/query e de custo/GB por comandos/fichas.


12) Pattern e anti-pattern

Pattern:
  • Dimension Lookup + SCD II para RG/KYC/provedores.
  • Async Enrichment com temporizadores e fallback (marca «unknown» + repetição).
  • Função Store com concordância online/offline e testes de reaproveitabilidade.
  • Rule-as-Código para enriquecimento (liminares/cartões categóricos).
Anti-pattern:
  • Ancoramento rígido a APIs externas em uma via quente sem cachê.
  • Versões não marcadas de fontes ('fx _ fonte', 'geo _ fonte').
  • Denormalização «tudo com tudo» em Silver (explosões de custo/complexidade).
  • Trazer PII para camadas analíticas.

13) Processos e RACI

R (Resolvível): Data Engineering (pipline enrich/stream), Domain Owners (semântica de sinais), MLops (Função Store).
A (Accountable): Head of Data / Chief Data Officer.
C (Consulted): Compliance/Legal/DPO, Finance (FX/налоги), Risk (RG/AML), SRE.
I (Informed): BI/Produto/Marketing/Operações.


14) Mapa de trânsito de implementação

MVP (2-4 semanas):

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

2. Silver-normalização + lookup básico 'e (fx/geo/dim.) .

3. Primeiras unidades de velocity (depósitos/taxas) e enriched. v1 da tabela.

4. Dashboard completeness/freshness, versões de fontes.

Fase 2 (4-8 semanas):
  • Conecta sanções/RER/COVE, tabelas BIN PSP, device fingerprint.
  • Função Store (núcleo de sinais) + dinheiro on-line, realtime-enriquecimento Flink.
  • Regras DQ para a camada enrich, lineage e simulação «dry-run».
Fase 3 (8-12 semanas):
  • Personalização (missões/buscas) e detectores RG/AML online.
  • Gerenciamento de valor (quotas, materialização, Z-order), região multi.
  • Geração automática de documentação de sinais e catálogo ("função cards').

15) Folha de cheque de qualidade antes de vender

  • Chaves e esquemas concordantes, versões de fontes assinadas.
  • Regras DQ para fx/geo/RG/sanções/janelas; alerts e SLO.
  • Cachês/temporizadores e fallback para lookup 'ov externos.
  • Linage e dashboards de custo/desempenho.
  • Procedimentos DSAR/PTBF/Legal Hold para tabelas enriquecidas.
  • Documentação de sinais (owner, fórmulas, SLO, influência).

16) Erros frequentes e como evitá-los

Versões de guias/modelos não definidas: Sempre capture '_ fonte' e 'modelo _ versão'.
Cálculo fx «retroativo»: use o curso no momento do evento; armazenem a fonte FX.
Mistura PII: Toquem e isolem os muppings.
A dupla contabilidade das unidades: verifique as janelas e os dados.
Chamadas externas sincronizadas sem cachê: digite async + dinheiro/retrai.
Sem reversibilidade, um único código de transformação online/offline, testes de conformidade.


17) Glossário (breve)

Lookup/Dimension attach - Conecta o guia ao fato por chave.
Função Store - minúsculas e sinais de servinga para ML.
SCD II - histórico de medições com intervalos de validade.
FX - taxas de câmbio e normalização de quantias.
ASN - sistema de rede autônomo; bom para antifrode e geo-analistas.


18) Total

O enriquecimento é uma disciplina para transformar eventos em conhecimento: chaves e esquemas alinhados, lookup 'e equipamentos controlados, fontes versionadas, privacidade padrão, DQ e observabilidade. Seguindo os patterns descritos, você receberá vitrines reproduzidas, econômicas e complicadas e sinais prontos para relatórios, personalização e detetores de risco real-time.

Contact

Entrar em contacto

Contacte-nos para qualquer questão ou necessidade de apoio.Estamos sempre prontos para ajudar!

Iniciar integração

O Email é obrigatório. Telegram ou WhatsApp — opcionais.

O seu nome opcional
Email opcional
Assunto opcional
Mensagem opcional
Telegram opcional
@
Se indicar Telegram — responderemos também por lá.
WhatsApp opcional
Formato: +indicativo e número (ex.: +351XXXXXXXXX).

Ao clicar, concorda com o tratamento dos seus dados.