Anreicherung von Daten
1) Zweck und Geschäftswert
Anreicherung verwandelt „rohe“ Ereignisse in nützliche Fakten und fügt Kontext und Merkmale hinzu:- Finanzen/Reporting: fx-Normalisierung der Beträge, Verknüpfung mit Märkten/Steuersätzen, Berechnung GGR/NGR.
- Compliance/AML/RG: Risiko-Scorings, Sanktions-/PER-Tags, RG-Limits, Verhaltensmerkmale.
- Marketing/Produkt: Traffic-Quellen, Segmente, Missionen/Quests, Personalisierung.
- SRE/Betrieb: Geo/ASN für Traffic, Client/Gerätetyp, Fichflags und Releases.
Das Hauptergebnis ist die Verbesserung der Genauigkeit der Modelle, die Qualität der Berichte und die Geschwindigkeit der Entscheidungsfindung.
2) Anreicherungsquellen (Beispielkatalog)
Referenzen/Kataloge: Spiele, Anbieter, Märkte/Jurisdiktionen, Währungen, Steuertabellen, Ferienkalender.
KYC/KYB/RG: Verifizierungsstufen, Status, Selbstausschlüsse, Grenzen, Altersgruppen.
AML/Sanktionen/PEP: Screening-Treffer, Listen, Risikostufen.
Netzwerke und Geräte: IP→geo/ASN, Gerät/OS/Browser, Gerät Fingerabdruck.
Payment Provider (PSP): BIN-Tabellen, Methoden, MCC, Risiko-Tags.
FX/Zeit: Wechselkurse am Datum des Ereignisses, lokale Zeitzonen/DST.
Content und Marketing: Quellen/Kampagnen/UTM, Affiliates, Segmente.
Modelle und Heuristiken: Pre-Educated Scoring, Embedding, Category Mupping.
3) Arten der Anreicherung
Lookup-Join: Punktvergleich nach Schlüssel (game_id, BIN, ip_range, user_pseudo_id).
Dimension attach: Dimensionen anhängen (dim.) zu den Fakten.
Abgeleitete Felder: berechnete Spalten (amount_base, local_time, tax_rate).
Aggregationen/Velocity: Zähler pro Fenster (N Einsätze/min, Summe Einzahlungen/Stunde).
Risiko/Verhaltensmerkmale: „Zeit seit dem letzten Ereignis“, Share-of-Wallet, Nachtaktivität.
Geo/ASN/Device: Ländercode, Region, Betreiber, Gerätetyp/Browser.
Semantic Mappings: Klassifizierung von Anbietern/Spielen, Cluster von Spielern.
ML-Zeichen: Zeichen für Online-/Offline-Modellierung (Feature Store).
4) Wo zu bereichern: Batch vs Stream
Stream (Echtzeit): Betrugsbekämpfung, RG-Trigger, SRE-Alerts - Verzögerungen p95 ≤ 2-5 s; lookup im Cache (Redis/Scylla), asynchrone Anfragen an Anbieter mit Timeouts.
Batch (Micro-Batches/täglich): Gold-Vitrinen (GGR/RG/AML), Abstimmungen, Berichte - Stabilität und Vollständigkeit sind wichtiger als Latenz.
Hybrid: schnelles Online-Zeichen + nächtliche Überreicherung (Reconciliation/Accuracy).
5) Architektonische Referenz
1. Bronze - rohe Ereignisse (nur Append).
2. Silber (clean/conform) - Normalisierung, Schlüssel, primäre lookup 'und (fx, geo, dim.) .
3. Enrichment Layer - erweiterte Merkmale, Fensteraggregate, Risiko-Tags.
4. Feature Store - Merkmalsregister (Online-/Offline-Konsistenz).
5. Gold - Schaukästen für BI/Regulator/Modelle; unveränderliche Artefakte.
6. Dienstleistungen - API/GraphQL, gemeldete Exporte, Echtzeit-Alerts.
Die Komponenten: Kafka/Redpanda, Flink/Spark/Beam, Redis/Scylla (lookup), ClickHouse/Pinot (Betriebsablesung), Lakehouse (Delta/Iceberg/Hudi).
6) Verträge und Regelungen
Schema-first: 'event _ time', 'schema _ version', stabile Schlüssel (user_pseudo_id, game_id, transaction_id).
Anreicherungszeichen: 'enrichment. version`, `enrichment. sources`, `fx_source`, `geo_source`, `model_version`.
Versionierung: Neue Merkmale werden als nullable hinzugefügt; breaking-Änderungen - durch '/v2 'und Doppeleintrag.
7) Anreicherungsbeispiele (SQL/Pseudocode)
7. 1 FX-Normalisierung und lokale Zeit
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 über 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 Fenstermerkmale der Einzahlungsgeschwindigkeit (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 Kopplung mit RG-Limits
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) Anreicherungsqualität (DQ)
Mindestvorschriften:- FX: 'fx _ rate _ used' ist nicht NULL, 'fx _ source' aus Whitelist, berechnet 'amount _ base ≥ 0'.
- Geo/ASN: Anteil erfolgreicher Lookups ≥ 98% (nach Märkten), 'country' im Verzeichnis.
- RG/AML-Zeichen: 'valid _ from/valid _ to' (SCD II) überschneiden sich nicht; Es gibt keine „Löcher“ in der Geschichte.
- Einheiten/Fenster: Korrektheit der Fenster (keine Doppelzählung), completeness ≥ 99. 5%.
- Modellversionen: 'model _ version' vorhanden, Kontrolle der Merkmalsdrift.
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) Datenschutz und Compliance
PII-Minimierung: Anreicherung über Pseudo-IDs, reale IDs in separater Schleife.
Geo-Lokalisierung und Wohnsitz: Routing durch die Region (EWR/UK/BR), getrennte Verschlüsselungsschlüssel.
DSAR/RTBF: Angereicherte Projektionen sollten „Hidden „/Revision unterstützen; Bewahren Sie die Rechtsgrundlage für Ausnahmen auf.
Legal Hold: Einfrieren von Löschungen für gemeldete Artefakte/Fälle.
10) Beobachtbarkeit und Lineage
Linedge: von einem rohen Ereignis → lookup/Aggregate → Schaufenster/Modell; Versionen der Quellen erfassen ('fx _ source', 'geo _ source', 'bin _ source').
SLI/SLO: freshness p95 (Silver) ≤ 15 мин; Erfolgreiche Geo-Lookups ≥ 98% Anteil der Datensätze mit ausgefüllten Schlüsselmerkmalen ≥ 99%; latency enrich-stream p95 ≤ 2-5 s.
Dashboards: Heatmap completeness nach Quellen, Versionskarte von Verzeichnissen/Modellen, Monitor von „teuren“ Joins, Drift von Merkmalen.
11) Kosten und Leistung
Caches/Materialisierung: häufige Lookup's und in Redis/Scylla; periodische Snapshot 's.
Kompakte Merkmale: Speichern Sie Aggregate (nicht „rohe“ Listen); Parkett/Säulenformate verwenden.
Partitionierung: nach Datum/Markt/Tenant; Clustering über häufig gefilterte Felder.
Adaptive Frequenz: schwere Enrich-Jobs - nachts; realtime - nur kritisch.
Chargeback: Abrechnung von Cost/Query und Cost/GB nach Team/Fich.
12) Muster und Anti-Muster
Muster:- Dimension Lookup + SCD II für RG/KYC/Provider.
- Async Enrichment mit Timeouts und Fallback (Label „unknown“ + Wiederholung).
- Feature Store mit Online-/Offline-Abstimmung und Wiederholbarkeitstests.
- Regel-as-Code für Anreicherungen (Schwellen-/Kategoriekarten).
- Starre Bindung an externe APIs im Hot-Path ohne Cache.
- Unmarkierte Quellversionen ('fx _ source', 'geo _ source').
- Entnormalisierung des „Alles mit Allem“ in Silber (Kosten-/Komplexitätsexplosionen).
- Einbringen von PII in analytische Schichten.
13) Prozesse und RACI
R (Responsible): Data Engineering (Pipelines enrich/stream), Domain Owners (Feature-Semantik), 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/Produkt/Marketing/Operations.
14) Fahrplan für die Umsetzung
MVP (2-4 Wochen):1. Verzeichnis der Anreicherungsquellen (fx, geo, markets, RG/KYC).
2. Silber-Normalisierung + Basis-Lookup 'und (fx/geo/dim.) .
3. Die ersten velocity Einheiten (Einlagen/Wetten) und enriched. v1 der Tabelle.
4. Dashboard completeness/freshness, Versionen der Quellen.
Phase 2 (4-8 Wochen):- Verbindung Sanktionen/RER/KUV, BIN-Tabellen PSP, Gerät Fingerabdruck.
- Feature Store (Merkmalskern) + Online-Cache, Realtime-Anreicherung von Flink.
- DQ-Regeln für Enrich-Layer, Lineage und „Dry-Run“ -Simulation.
- Personalisierung (Missionen/Quests) und RG/AML-Detektoren online.
- Wertmanagement (Kontingente, Materialisierung, Z-Order), Multi-Region.
- Automatische Generierung der Merkmals- und Katalogdokumentation („Feature Cards“).
15) Qualitätscheckliste vor Verkauf
- Vereinbarte Schlüssel und Schemata, Quellversionen sind signiert.
- DQ-Regeln für fx/geo/RG/Sanktionen/Fenster; Alertas und SLO.
- Caches/Timeouts und Fallback für externe Lookups.
- Linegge und Kosten/Produktivität Dashboards.
- DSAR/RTBF/Legal Hold-Verfahren für angereicherte Tabellen.
- Merkmalsdokumentation (Eigentümer, Formeln, SLO, Einfluss).
16) Häufige Fehler und wie man sie vermeidet
Unmarkierte Versionen von Handbüchern/Modellen: „_ source“ und „model _ version“ immer fixieren.
fx „rückwirkend“ berechnen: Kurs zum Zeitpunkt des Ereignisses verwenden; Speichern Sie die FX-Quelle.
PII-Mix: Tokenisieren und isolieren Sie die Muppings.
Doppelte Buchhaltung in den Einheiten: Überprüfen Sie Fenster und Dedup.
Synchrone externe Anrufe ohne Cache: Geben Sie async + Cache/Retrays ein.
Keine Wiederholbarkeit von fitch: einheitlicher Transformationscode online/offline, Konformitätstests.
17) Glossar (kurz)
Lookup/Dimension attach - Fügen Sie ein Nachschlagewerk zu einer Tatsache durch einen Schlüssel.
Feature Store - Merkmalsregister und Serving für ML.
SCD II - Historisierung von Messungen mit Gültigkeitsintervallen.
FX - Wechselkurse und Normalisierung der Beträge.
ASN ist ein eigenständiges Netzwerksystem; nützlich für Anti-Fraud und Geo-Analytics.
18) Ergebnis
Anreicherung ist die Disziplin der Umwandlung von Ereignissen in Wissen: konsistente Schlüssel und Schemata, gesteuert durch lookup's und Aggregate, versionierte Quellen, Standard-Datenschutz, DQ und Beobachtbarkeit. Wenn Sie den beschriebenen Mustern folgen, erhalten Sie reproduzierbare, kostengünstige und konforme Vitrinen und Funktionen, die für die Berichterstattung, Personalisierung und Echtzeit-Risikodetektoren bereit sind.