აგრეგაცია და კონსოლიდირებული მოხსენებები
აგრეგაცია და კონსოლიდირებული მოხსენებები
აგრეგაცია არის დეტალური ჩანაწერების კონვენციის ინდიკატორებად გადაქცევა სწორი მონაკვეთებისა და პერიოდების მიხედვით. კონსოლიდაცია - დანაყოფების გაერთიანება სხვადასხვა წყაროდან/იურიდიული პირებიდან/პროდუქტებიდან ერთ ანგარიშში კორექტირებით (ვალუტა, აღრიცხვის პოლიტიკა, აღმოფხვრა). ქვემოთ მოცემულია სისტემური მიდგომა: ფანჯრების დიზაინიდან დაწყებული, ანგარიშგების ექსპლუატაციამდე.
1) კონსოლიდაციის ამოცანები და ტიპები
ოპერაციული/პროდუქტის: DAU/WAU/MAU, კონვერტაცია, შემოსავალი ქვეყნის/არხების/პლატფორმების საშუალებით.
ფინანსური (დაახლ. და მარეგულირებელი): P&L, Cash Flow, Balance Sheet, GGR/Net Gaming Revenue, გადასახადები, ანგარიშები იურიდიულ პირებზე.
რისკი/შესაბამისობა: ანტიფროდი, RG ინდიკატორები, SLA/წვდომა, მონაცემთა/მოდელების დრიფტი.
სტრატეგიული: კონსოლიდირებული KPI ჰოლდინგში, ბრენდების პორტფელში, რეგიონებში.
2) აგრეგაციის ფენის არქიტექტურა
მონაცემთა ფენები: 'raw' '' staging '' core '(ფაქტები/გაზომვები)' marts '(ანგარიშები).
სემანტიკური ფენა: მეტრიკის განსაზღვრა, კალენდარი, ვალუტა, როლაპის წესები.
მარცვლეული და დრო: 'event', 'user _ day', 'txn', 'brand _ country _ day' - შემდგომი როლები კვირაში/თვემდე/კვარტალში.
იდენტურობა: სტაბილური კლავიშები (მომხმარებლის/ბრენდის/ლეგალური _ entity), შესაბამისობის ცხრილი (შესაბამისობა).
3) როლაპები და იერარქიები
გაზომვის იერარქიები: 'თამაში - კატეგორია - პროვაიდერი', 'არხი - კამპანია კრეატივა', 'City-County-County'.
შეჯამების წესები: დანამატი (თანხა), ნახევრად დანამატი (snapshot - საშუალო/ბოლო პერიოდისთვის), არაადეკვატური (კოეფიციენტები/პროცენტი).
დედუპლიკაცია: უნიკალური მომხმარებლები და მარცვლეულის მოვლენები; თავიდან აიცილეთ ორმაგი აღრიცხვა წყაროების შერწყმის დროს.
4) მულტივალუტა, ტაიმსონები, კალენდარი
დრო: შეინახეთ 'event _ time _ utc' და ადგილობრივი ნაჭრები; არდადეგების კალენდარი/მონა დღეები.
ვალუტა: შეინახეთ „ნედლეული“ თანხა + 'base _ ccy' ოპერაციის თარიღის კურსით (ან პერიოდის საშუალო კურსი დათქმით).
ნორმალიზაცია: აჩვენეთ აშკარა ერთეულები/ვალუტა/კურსის თარიღი.
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) კონსოლიდაცია წყაროების/იურიდიული პირების მიხედვით
ანგარიშის გეგმების შედგენა: ერთი CoA (Accounts გრაფიკი) + ადგილობრივი გეგმები.
აღრიცხვის პოლიტიკოსები: IFRS/GAAP/საგადასახადო წესები - ტრანსფორმაციების ფენა (მაგალითად, მთლიანი/ნეტო შემოსავალი, ბონუსების/კომისიების აღიარება).
შიდა ჯგუფური ბრუნვის აღმოფხვრა: ჰოლდინგის იურიდიულ პირებს შორის გარიგების გამორიცხვა.
კონსოლიდაციის მეთოდები: სრული, საერთო (კაპიტალური), აღრიცხვა საერთო მონაწილეობის შესახებ (equity method).
უმცირესობის აქციონერები: უკონტროლო აქციონერების (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) ხარისხი და შერიგება (აღრიცხვა)
წყაროების შერიგება: წყაროს ოდენობა = თანხა ფანჯარაში (კურსით/დროში დაშვებით).
ინვარიანტები: 'DAU - MAU', დღეების ჯამი = ყოველთვიური შედეგი (დანამატის მეტრიკებისთვის).
სისრულის კონტროლი: NULL- ის წილი, დუბლიკატების წილი, სიახლეების ჩამორჩენა.
ანგარიში განსხვავებების შესახებ: შეუსაბამობების სია და აღმოფხვრის ნაბიჯები.
7) პროდუქტიულობა და SLO
SLO სიახლე: ოპერაციული დანაყოფები - ლაგი 15 წუთი; დღისით - ადგილობრივი დროის 06:00 საათამდე; ყოველთვიური - T + 1/T + 3 - მდე.
ოპტიმიზაცია: წინასწარი აგრეგაცია, სავარაუდო გადანაწილება, წვეულება (თარიღის/ბრენდის/ქვეყნის მიხედვით), პოპულარული ნაჭრების ქეში.
UI- ს შეზღუდვები: 12 კატეგორიის ევრო გრაფიკზე; ცხრილების პაგინაცია; lazy-load.
8) განმარტებებისა და ვერსიების მართვა
მეტრიკის ლექსიკონი: კოდი, განმარტება, ფორმულა, წყარო, ერთეული, მეპატრონეები, guardrails.
ვერსია: 'METRIC _ vN'; ნებისმიერი რედაქტირება - ახალი ვერსია + backfill და changelog.
სემანტიკური ფენა: ჭეშმარიტების ერთი წყარო BI/ექსპერიმენტები/გადაზიდვები.
9) უსაფრთხოება და წვდომა
RLS/CLS: წვდომა როლებზე (ქვეყანა/ბრენდი/იურიდიული პირი), შენიღბვა PII.
აუდიტი: ვინ და რა ანგარიში ატვირთა; ექსპორტის კონტროლი (დრო, ნიშნები).
მინიმიზაცია: დანაყოფების გაცემა და არა ნედლეული PII მონაცემები.
10) ტიპიური დანაყოფები და ვიზუალიზაცია
პროდუქტი: ძაბვები (step-bars), კოჰორტები (heatmap), გამართვა D7/D30, ARPU/ARPPU, GGR/Net.
ფინანსები: P&L იერარქიაში, ჩანჩქერი (bridge) ფაქტორები, რეგიონების მიხედვით შემოსავლის სტრუქტურა, G & A. დინამიკა
ოპერაციები/ML: SLA, latency p95/p99, PR-AUC/Recall @ FPR - x%, PSI-heatmap დრიფტი.
11) კონსოლიდირებული ანგარიშის პასპორტი (შაბლონი)
კოდი/ვერსია: 'CONSOL _ PNL _ v3'
დანიშვნა: მენეჯმენტის P&L ბრენდების ჯგუფში, მულტივალუტა და ძირითადი ვალუტა EUR
საფარი: ჯგუფის ყველა იურიდიული პირი; მეთოდი - სრული კონსოლიდაცია; NCI - გამოირჩევა
წყარო/ფენა: 'mart _ fin _ fnl _ pnl _ v3' (დაფუძნებულია 'fact _ tx _ v2', 'dim _ legal', 'dim _ fx _ rates')
მარცვალი: თვე (როლაპი დღიდან)
აღმოფხვრა: 'intercompany = true' - გამორიცხულია შიდა ჯგუფური ბრუნვა
SLO: T + 1 06:00 სთ.; ხელმისაწვდომობა 99. 9%
კრიპტები: ბუღალტრული აღრიცხვის ანგარიში 'BK _ PNL _ T + 1 ", შეუსაბამობა - 0. 3%
მფლობელები: Finance Analytics, Data Platform
Guardrails: FX ცხრილი არა უმეტეს 24 საათისა; coverage გარიგებები 99. 5%
12) ხშირი შეცდომები და როგორ მოვერიდოთ მათ
ფორმულების მშვიდი ცვლილებები: ყოველთვის ვერსიებისა და changelog- ის საშუალებით.
ორმაგი ჩანაწერი: წყაროების/ჯოინის დუბლები - აკონტროლეთ გასაღებები და მარცვლეული.
დროებითი ზონების ნაზავი: ცენტრალიზებული კალენდარი და UTC შენახვა.
არასწორი პროცენტი: შეაერთეთ მრიცხველი/მნიშვნელი და არა „საშუალო“.
„ნედლეული“ კურსები: აშკარა თარიღი/წყარო FX, დამრგვალების თანმიმდევრული პოლიტიკა.
აღმოფხვრის არარსებობა: ინტერკომპენსაციური ბრუნვა ამახინჯებს მოხსენებებს.
გაუმჭვირვალე სიახლე: ყოველთვის აჩვენეთ „განახლებული N წუთის წინ“.
13) ფსევდო-SQL: სავარაუდო ყოველთვიური ერთეული
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) პროცესები და ექსპლუატაცია
1. დიზაინი: მიზნები/აუდიტორია, მეტრიკა, იერარქია, ვალუტა/დრო.
2. მონაცემები: წყაროების კონტრაქტები, სქემები, ხარისხის ტესტები.
3. ფანჯრების მშენებლობა: სემანტიკური ობიექტები, როლაპის წესები, აღმოფხვრა.
4. კრიპტები: ავტომატური შეუსაბამობის ცნობები, გამოსწორების თიკეტები.
5. გამოშვება: ვერსია, დოკუმენტაცია, მომხმარებლის ტრენინგი.
6. მონიტორინგი: სიახლე, შეკრება, დუბლიკატები, რეაგირების დრო, ინციდენტები.
7. აუდიტი: განმარტებების კვარტალური შემოწმება, მაპინგები, FX პოლიტიკა.
15) ჩეკის სია კონსოლიდირებული ანგარიშის გამოქვეყნებამდე
- მეტრიკისა და იერარქიების განმარტებები დაფიქსირებულია სემანტიკურ ფენაში
- ვალუტებისა და ტაიმსონების კონვერტაცია; ნაჩვენებია ერთეული და კურსის თარიღი
- განხორციელებულია შიდა ჯგუფური ბრუნვის აღმოფხვრა/NCI (თუ გამოიყენება)
- ინვარიანტები და საკოორდინაციო წყაროების შერწყმა ხდება დაშვებებში
- დამატებითი გამოქვითვები და წვეულება შედის
- SLO ახალი/ხელმისაწვდომი მითითებულია; განახლებადი სტატუსები
- RLS/CLS და PII ნიღბები მორგებულია; ექსპორტის აუდიტი ჩართულია
- ვერსია/changelog და მფლობელები მითითებულია; არის ინციდენტები
შედეგი
აგრეგაცია და კონსოლიდაცია არ არის მხოლოდ 'GROP BY', არამედ ჰოლისტიკური სისტემა: შეთანხმებული განმარტებები, სწორი როლიკები, მულტივალუტა და კალენდარი, აღმოფხვრა და შერიგება, დაკვირვება და SLO. აღწერილი არქიტექტურის შემდეგ, თქვენ გადააქცევთ ჰეტეროგენულ მონაცემებს საიმედო თაღებად პროდუქტის, ფინანსებისა და რისკების მართვისთვის.