Toplama ve Konsolide Raporlar
Toplama ve Konsolide Raporlama
Toplama, ayrıntılı kayıtların gerekli bölümler ve dönemler için özet göstergelere dönüştürülmesidir. Konsolidasyon - farklı kaynaklardan/tüzel kişilerden/ürünlerden gelen toplamları, ayarlamalar (para birimi, muhasebe politikası, eleme) ile tek bir raporda birleştirmek. Aşağıda sistematik bir yaklaşım bulunmaktadır: vitrin tasarımından işletme raporlamasına kadar.
1) Görevler ve konsolidasyon türleri
İşletim/Ürün: DAU/WAU/MAU, dönüşümler, ülkeye/kanala/platforma göre gelir.
Finansal (örn. ve düzenleyici): P&L, Nakit Akışı, Bilanço, GGR/Net Oyun Geliri, vergiler, tüzel kişilik raporları.
Risk/uyumluluk: anti-dolandırıcılık, RG göstergeleri, SLA/kullanılabilirlik, veri/model kayması.
Stratejik: Holding, marka portföyü, bölgelere göre konsolide KPI.
2) Toplama katmanının mimarisi
Veri katmanları: 'ham' - 'evreleme' - 'çekirdek' (gerçekler/boyutlar) - 'mart' (raporlar için kümeler).
Anlamsal katman: metrik tanımlar, takvim, para birimleri, toplama kuralları.
Tahıl ve zaman-tahıl:'olay ',' user _ day ',' txn ',' brand _ country _ day '- hafta/ay/çeyreğe kadar daha fazla toplanma.
Kimlikler: kararlı anahtarlar (user/brand/legal_entity), eşleme tabloları).
3) Toplanmalar ve hiyerarşiler
Boyut hiyerarşileri: Oyun, Kategori, Sağlayıcı, Kanal, Kampanya, Yaratıcı, Şehir, Bölge, Ülke, Küme.
Toplama kuralları: katkı (toplam), yarı katkı (anlık görüntü - dönem için ortalama/son), katkı olmayan (katsayılar/yüzdeler).
Veri tekilleştirme - benzersiz kullanıcılar ve gren olayları; Kaynakları birleştirirken çift saymaktan kaçının.
4) Çok para birimi, zaman dilimleri, takvim
Zaman: 'event _ time _ utc've yerel dilimleri depolayın; Tatil/çalışma günleri takvimi.
Para birimi: "Ham" tutarı + "base _ ccy" işlem tarihindeki döviz kurunda tutun (veya bir uyarı ile dönemin ortalama döviz kuru).
Normalleştirme: Açık birimleri/para/döviz kuru tarihini gösterir.
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) Kaynak/tüzel kişiliğe göre konsolidasyon
Hesapların haritalama çizelgeleri: Yerel planlardan tek CoA (Chart of Accounts) + haritalama.
Muhasebe politikaları: UFRS/GAAP/vergi kuralları - dönüşüm katmanı (örneğin, brüt/net gelir, ikramiye/komisyonların tanınması).
Grup içi cironun ortadan kaldırılması: Holdingin tüzel kişileri arasındaki işlemlerin hariç tutulması.
Konsolidasyon yöntemleri: tam, orantılı, eşitlik yöntemi.
Azınlık hissedarları: Kontrol dışı faiz tahsisi (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) Kalite ve uzlaşma
Kaynak mutabakatları: kaynağa göre tutar = vitrindeki tutar (döviz kuru/zaman toleransı ile).
Değişmezler: 'DAU ≤ MAU', günler boyunca toplam = aylık toplam (ilave metrikler için).
Tamlık kontrolü: NULL payı, kopya payı, tazelikte gecikme.
Tutarsızlık Raporu - Tutarsızlıkların listesi ve iyileştirme adımları.
7) Performans ve SLO
Tazelik SLO: operasyonel birimler - gecikme ≤ 15 dakika; Gündüz - yerel saatle 06:00'ya kadar; Aylık - T + 1/T + 3'e kadar.
Optimizasyon: ön toplamalar, artımlı yeniden hesaplamalar, bölümleme (tarihe/markaya/ülkeye göre), popüler dilimler için önbellek.
UI sınırlamaları: Program başına ≤ 12 kategori; Tabloların sayfalandırılması; tembel-yük.
8) Tanımları ve sürümleri yönetin
Metriklerin sözlüğü: kod, tanım, formül, kaynak, birimler, sahipler, korkuluklar.
Sürüm oluşturma: 'METRIC _ vN'; Herhangi bir düzenleme - yeni sürüm + dolgu ve changelog.
Semantik katman: BI/deneyler/gönderiler için bir gerçek kaynağı.
9) Güvenlik ve erişim
RLS/CLS: Role göre erişim (ülke/marka/tüzel kişilik), PII maskeleme.
Denetim: kim hangi raporu yükledi; İhracat kontrolü (son tarihler, belirteçler).
Minimizasyon: Ham PII verileri yerine toplayıcı yayınlar.
10) Tipik toplamlar ve görselleştirmeler
Ürün: huniler (adım çubukları), kohortlar (ısı haritası), D7/D30 tutma, ARPU/ARPPU, GGR/Net.
Finans: Hiyerarşi ile P&L, şelale (köprü) faktörleri, bölgeye göre gelir yapısı, G&A dinamikleri.
İşlemler/ML: SLA, gecikme süresi p95/p99, PR- % AUC/Recall@FPR≤x, PSI-ısı haritası kayması.
11) Birleştirilmiş raporun pasaportu (şablon)
Kod/Sürüm: 'CONSOL _ PNL _ v3'
Amaç: Marka grubuna göre yönetim P&L, çok para birimi - temel para birimi EUR
Kapsam: Grubun tüm tüzel kişileri; yöntem - tam konsolidasyon; NCI - Vurgulanmış
Kaynak/katman: 'mart _ fin _ pnl _ v3' ('fact _ tx _ v2','dim _ legal ',' dim _ fx _ rates 'temelli)
Granülarite: ay (günden itibaren toplama)
Elemeler: 'şirketler arası = gerçek' - grup içi ciro hariç
SLO: T + 1 06:00 kilit; kullanılabilirlik ≥ 99. 9%
Mutabakatlar - muhasebe raporu 'BK _ PNL _ T + 1', varyans ≤ 0. 3%
Sahipler: Finans Analitiği, Veri Platformu
Korkuluklar: FX tablo 24 saatten eski değil; Teminat işlemleri ≥ 99. 5%
12) Sık yapılan hatalar ve bunlardan nasıl kaçınılacağı
Sessiz formül değişiklikleri: her zaman sürümleri ve changelog aracılığıyla.
Çift sayma: Yinelenen yaylar/joynes - kontrol tuşları ve tahıl.
Karıştırma zaman dilimleri: merkezi takvim ve UTC depolama.
Yanlış yüzdeler: Toplam pay/payda, "ortalamalar ortalaması'değil.
"Ham" oranları: açık FX tarih/kaynak, tutarlı yuvarlama politikası.
Eleme yok: Şirketler arası cirolar raporları çarpıtıyor.
Opak tazelik: Her zaman "güncellenmiş N dakika önce" gösterin.
13) Pseudo-SQL: Artımlı Aylık Toplam
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) Süreçler ve operasyon
1. Tasarım: hedefler/kitleler, metrikler, hiyerarşiler, para birimi/zaman dilimleri.
2. Veriler: kaynak sözleşmeleri, şemalar, kalite testleri.
3. Pencere oluşturma: anlamsal nesneler, toplama kuralları, elemeler.
4. Mutabakatlar: otomatik varyans raporları, düzeltme biletleri.
5. Sürüm: sürüm, dokümantasyon, kullanıcı eğitimi.
6. İzleme: tazelik, eksiksizlik, kopyalar, tepki süresi, olaylar.
7. Revizyon: tanımların, eşlemelerin, FX politikalarının üç ayda bir doğrulanması.
15) Ön Konsolide Tablo Kontrol Listesi
- Anlamsal katmanda belgelenen metrik ve hiyerarşi tanımları
- Para birimi dönüştürme ve zaman dilimleri ayarlanır; Kurs birimlerini ve tarihini gösterir
- Grup içi devrimler/NCI eliminasyonları uygulandı (varsa)
- Değişmezler ve referans kaynaklarla mutabakatlar toleranslarda gerçekleştirilir
- Artımlı yeniden hesaplamalar ve bölümleme etkinleştirildi
- tazelik/kullanılabilirlik SLO'ları ayarlanır; güncelleme durumları görüntülenir
- RLS/CLS ve PII maskeleme yapılandırılmıştır; dışa aktarma denetimi etkin
- Sürüm/changelog ve sahipleri belirtilmiştir; runbook olayları var
Toplam
Toplama ve konsolidasyon sadece 'GROUP BY'değil, bütünsel bir sistemdir: tutarlı tanımlar, doğru toplanmalar, çok para birimi ve takvim, eliminasyonlar ve mutabakatlar, gözlemlenebilirlik ve SLO. Açıklanan mimariyi izleyerek, heterojen verileri ürün, finansal ve risk yönetimi için güvenilir kasalara dönüştürürsünüz.