Aggregation und konsolidierte Berichte
Aggregation und konsolidierte Berichte
Aggregation ist die Umwandlung von detaillierten Datensätzen in zusammengefasste Kennzahlen nach gewünschten Schnitten und Zeiträumen. Konsolidierung - Zusammenführung von Aggregaten aus verschiedenen Quellen/juristischen Personen/Produkten in einem einzigen Bericht mit Anpassungen (Währung, Bilanzierungspolitik, Eliminierungen). Im Folgenden folgt ein systematischer Ansatz: von der Gestaltung der Schaufenster bis zum Betrieb der Berichterstattung.
1) Aufgaben und Arten der Konsolidierung
Operativ/Produkt: DAU/WAU/MAU, Umbauten, Umsatz nach Ländern/Kanälen/Plattformen.
Finanziell (a.a.O. und regulatorisch): P&L, Cash Flow, Balance Sheet, GGR/Net Gaming Revenue, Steuern, Berichte über juristische Personen.
Risiko/Compliance: Fraud, RG-Indikatoren, SLA/Verfügbarkeit, Daten-/Modelldrift.
Strategisch: zusammengefasste KPIs nach Holding, Markenportfolio, Regionen.
2) Architektur der Aggregationsschicht
Datenschichten: 'raw' → 'staging' → 'core' (Fakten/Messungen) → 'marts' (Aggregate unter Berichten).
Semantische Ebene: Definitionen von Metriken, Kalender, Währungen, Rollup-Regeln.
Grain und Time-Grain: 'event', 'user _ day', 'txn', 'brand _ country _ day' → weitere Rollaps bis Woche/Monat/Quartal.
Identitäten: stabile Schlüssel (user/brand/legal_entity), Entsprechungstabellen (Mapping).
3) Rollaps und Hierarchien
Die Hierarchien der Dimensionen sind: „Spiel → Kategorie → Anbieter“, „Kanal → Kampagne → Kreativ“, „Stadt → Region → Land → Cluster“.
Summationsregeln: additiv (Summe), semiadditiv (Snapshot - Durchschnitt/Letzter für die Periode), nicht additiv (Koeffizienten/Prozentsätze).
Deduplizierung: eindeutige Benutzer und Ereignisse nach Körnern; Vermeiden Sie doppelte Buchführung beim Zusammenführen von Quellen.
4) Multiwährung, Zeitzonen, Kalender
Zeit: Speichern Sie' event _ time _ utc 'und lokale Slices; Kalender der Feiertage/Sklaventage.
Währung: Halten Sie den „rohen“ Betrag + 'base _ ccy' zum Kurs am Datum der Transaktion (oder dem durchschnittlichen Kurs der Periode mit Vorbehalt).
Normalisierung: Zeigen Sie explizite Einheiten/Währung/Datum des Kurses an.
sql
WITH fx AS (
SELECT date, from_ccy, to_ccy, rate
FROM dim_fx_rates
WHERE to_ccy = 'EUR'
),
tx AS (
SELECT t. txn_id, t. amount, t. ccy, t. brand, t. country, t. event_date
FROM fact_tx
)
SELECT brand, country, DATE_TRUNC('month', event_date) AS month,
SUM(amount COALESCE(fx. rate, 1)) AS revenue_eur
FROM tx
LEFT JOIN fx
ON fx. date = tx. event_date AND fx. from_ccy = tx. ccy
GROUP BY 1,2,3;
5) Konsolidierung nach Quellen/Juristen
Mapping von Kontenplänen: einheitliche CoA (Chart of Accounts) + Mapping aus lokalen Plänen.
Bilanzierungsrichtlinien: IFRS/GAAP/Steuervorschriften → Transformationsschicht (z. B. Brutto-/Nettoeinnahmen, Anerkennung von Boni/Provisionen).
Eliminierung von konzerninternen Umsätzen: Ausschluss von Transaktionen zwischen juristischen Personen des Betriebs.
Konsolidierungsmethoden: voll, Eigenkapital (proportionate), Bilanzierung nach Eigenkapital (equity method).
Minderheitsaktionäre: Zuteilung eines Anteils von nicht beherrschenden Aktionären (NCI).
sql
WITH interco AS (
SELECT a. txn_id
FROM fact_tx a
JOIN dim_counterparty b ON a. counterparty_id = b. id
WHERE a. legal_entity IN (SELECT id FROM dim_legal WHERE group_id = 1)
AND b. legal_entity IN (SELECT id FROM dim_legal WHERE group_id = 1)
)
SELECT
FROM agg_pl_month
WHERE txn_id NOT IN (SELECT txn_id FROM interco);
6) Qualität und Abstimmung (reconciliation)
Abgleich nach Quelle: Summe nach Quelle = Summe im Schaukasten (mit Kurs/Zeit-Toleranz).
Invarianten: 'DAU ≤ MAU', Summe nach Tagen = Monatssumme (für additive Metriken).
Vollständigkeitskontrolle: NULL-Anteil, Duplikat-Anteil, Frische-Rückstand.
Varianzbericht: Liste der Inkonsistenzen und Schritte zur Behebung.
7) Leistung und SLO
SLO Frische: operative Einheiten - Lag ≤ 15 Minuten; Tag - bis 06:00 Uhr Ortszeit; monatlich - bis zu T + 1/T + 3.
Optimierung: Voraggregationen, inkrementelle Neuberechnungen, Partitionierung (nach Datum/Marke/Land), Cache für beliebte Slices.
UI-Einschränkungen: ≤ von 12 Kategorien pro Diagramm; Paginierung von Tabellen; lazy-load.
8) Definitions- und Versionsmanagement
Metrik Wörterbuch: Code, Definition, Formel, Quelle, Einheiten, Besitzer, guardrails.
Versionierung: „METRIC _ vN“; alle Bearbeitungen → neue Version + backfill und changelog.
Semantische Schicht: Eine Quelle der Wahrheit für BI/Experimente/Sendungen.
9) Sicherheit und Zugang
RLS/CLS: Zugriff nach Rolle (Land/Marke/juristische Person), PII-Maskierung.
Audit: Wer welchen Bericht hochgeladen hat; Exportkontrolle (Termine, Token).
Minimierung: Ausgabe von Aggregaten, nicht von rohen PII-Daten.
10) Typische Aggregate und Visualisierungen
Produkt: Trichter (Step-Bars), Kohorten (Heatmap), D7/D30, ARPU/ARPPU, GGR/Net.
Finanzen: P&L nach Hierarchie, Wasserfall (Brücke) Faktoren, Umsatzstruktur nach Regionen, G & A-Dynamik
Operationen/ML: SLA, Latenz p95/p99, PR- AUC/Recall@FPR≤x%, PSI-heatmap drift.
11) Datenblatt des konsolidierten Berichts (Vorlage)
Code/Version: „CONSOL _ PNL _ v3“
Zweck: Management-P & L für Markengruppe, Multiwährung → Basiswährung EUR
Abdeckung: alle juristischen Personen der Gruppe; Methode - vollständige Konsolidierung; NCI - herausragend
Quelle/Schicht: 'mart _ fin _ pnl _ v3' (basierend auf 'fact _ tx _ v2', 'dim _ legal', 'dim _ fx _ rates')
Granularität: Monat (Rollap vom Tag)
Eliminierungen: „intercompany = true“ - konzerninterne Umsätze ausgeschlossen
SLO: T + 1 06:00 lok.; Verfügbarkeit ≥ 99. 9%
Überleitungen: Buchhaltungsbericht 'BK _ PNL _ T + 1', Abweichung ≤ 0. 3%
Eigentümer: Finance Analytics, Data Platform
Guardrails: FX-Tabelle nicht älter als 24 h; Coverage von Transaktionen ≥ 99. 5%
12) Häufige Fehler und wie man sie vermeidet
Stille Formelwechsel: immer über Versionen und Changelog.
Doppelte Buchhaltung: Quellen/Join-Takes - Kontrollieren Sie Schlüssel und Getreide.
Zeitzonenmischung: zentraler Kalender und UTC-Speicher.
Falsche Prozentsätze: Aggregieren Sie den Zähler/Nenner und nicht den „Durchschnitt der Mittelwerte“.
„Rohe“ Kurse: explizites Datum/Quelle FX, konsistente Rundungspolitik.
Keine Eliminierungen: Unternehmensübergreifende Umsätze verzerren die Berichte.
Undurchsichtige Frische: Zeigen Sie immer „vor N Minuten aktualisiert“.
13) Pseudo-SQL: inkrementelle monatliche Aggregation
sql
-- Recalculate only affected days/months
WITH changed_days AS (
SELECT DISTINCT DATE(event_time_utc) AS d
FROM fact_tx_delta -- new/modified per day
),
daily AS (
SELECT
DATE(event_time_utc) AS d,
brand, country,
SUM(net_revenue_eur) AS net_eur
FROM fact_tx
WHERE DATE(event_time_utc) IN (SELECT d FROM changed_days)
GROUP BY 1,2,3
)
MERGE INTO agg_month_brand_country m
USING (
SELECT DATE_TRUNC('month', d) AS month, brand, country, SUM(net_eur) AS net_eur
FROM daily
GROUP BY 1,2,3
) s
ON (m. month = s. month AND m. brand = s. brand AND m. country = s. country)
WHEN MATCHED THEN UPDATE SET m. net_eur = s. net_eur, m. updated_at = NOW()
WHEN NOT MATCHED THEN INSERT (month, brand, country, net_eur, updated_at)
VALUES (s. month, s. brand, s. country, s. net_eur, NOW());
14) Prozesse und Betrieb
1. Design: Ziele/Zielgruppen, Metriken, Hierarchien, Währung/Zeitzonen.
2. Daten: Quellverträge, Regelungen, Qualitätsprüfungen.
3. Schaufensterkonstruktion: semantische Objekte, Rollup-Regeln, Eliminationen.
4. Abstimmungen: Automatische Diskrepanzberichte, Korrekturtickets.
5. Release: Version, Dokumentation, Benutzerschulung.
6. Überwachung: Frische, Vollständigkeit, Duplikate, Reaktionszeit, Vorfälle.
7. Revision: vierteljährliche Überprüfung von Definitionen, Mappings, FX-Richtlinien.
15) Checkliste vor Veröffentlichung des Konzernberichts
- Definitionen von Metriken und Hierarchien werden in der semantischen Schicht dokumentiert
- Währungsumrechnung und Zeitzonen konfiguriert; Einheiten und Kursdatum angezeigt
- Implementierte Eliminierungen von konzerninternen Umsätzen/NCI (falls zutreffend)
- Invarianten und Abstimmungen mit Referenzquellen erfolgen in Toleranzen
- Inkrementelle Neuberechnungen und Partitionierung enthalten
- Frische/Verfügbarkeit SLOs sind festgelegt; Aktualisierungsstatus werden angezeigt
- RLS/CLS und PII-Maskierung konfiguriert; Exportaudit aktiviert
- Version/changelog und Besitzer angegeben; Es gibt ein Runbook von Vorfällen
Summe
Aggregation und Konsolidierung sind nicht nur „GROUP BY“, sondern ein ganzheitliches System: einheitliche Definitionen, korrekte Rollaps, Multivaluta und Kalender, Eliminationen und Abstimmungen, Beobachtbarkeit und SLO. Nach der beschriebenen Architektur verwandeln Sie heterogene Daten in robuste Gewölbe für Produkt-, Finanz- und Risikomanagement.