Біріктіру және шоғырландырылған есептер
Агрегация және шоғырландырылған есептер
Агрегация - бұл егжей-тегжейлі жазбаларды қажетті тіліктер мен кезеңдер бойынша жиынтық көрсеткіштерге айналдыру. Шоғырландыру - әртүрлi көздерден/заңды тұлғалардан/өнiмдерден алынған агрегаттарды түзетулермен бiрыңғай есепке бiрiктiру (валюта, есепке алу саясаты, элиминация). Төменде - жүйелі тәсіл: витриналарды жобалаудан есептілікті пайдалануға дейін.
1) Шоғырландырудың міндеттері мен түрлері
Операциялық/өнімдік: DAU/WAU/MAU, конверсиялар, елдер/арналар/платформалар бойынша түсім.
Қаржылық (ор. P&L, Cash Flow, Balance Sheet, GGR/Net Gaming Revenue, салықтар, заңды тұлғалар бойынша есептер.
Тәуекел/комплаенс: антифрод, RG-индикаторлар, SLA/қолжетімділік, деректер/модельдер дрейфі.
Стратегиялық: холдинг, брендтер портфелі, өңірлер бойынша жиынтық KPI.
2) Агрегация қабатының архитектурасы
Деректер қабаттары: 'raw' → 'staging' → 'core' (фактілер/өлшемдер) → 'marts' (есеп агрегаттары).
Семантикалық қабат: метриканы, күнтізбені, валютаны, роллап-ережені анықтау.
Астық және time-grain: 'event', 'user _ day', 'txn', 'brand _ country _ day' → одан әрі бір аптаға/айға/тоқсанға дейінгі роллаптар.
Сәйкестіктер: тұрақты кілттер (user/brand/legal_entity), сәйкестік кестелері (mapping).
3) Роллаптар мен иерархиялар
Өлшем иерархиясы: 'Ойын → Санат → Провайдер', 'Арна → Кампания → Креатив', 'Қала → Өңір → Ел → Кластер'.
Жиынтықтау қағидалары: аддитивті (сома), жартылай аддитивті (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 (Chart of Accounts) + мэппинг.
Есепке алу саясаты: IFRS/GAAP/салық ережелері → трансформация қабаты (мысалы, брутто/нетто түсімі, бонустарды/комиссияларды тану).
Топішілік айналымдарды элиминациялау: холдингтің заңды тұлғалары арасындағы транзакцияларды алып тастау.
Шоғырландыру әдістері: толық, үлестік (proportionate), үлестік қатысу бойынша есеп (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) Сапа және салыстыру (reconciliation)
Көздер бойынша салыстыру: көздер бойынша сома = витринадағы сома (бағам/уақыт бойынша рұқсатпен).
Инварианттар: '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-жылыту дрейфі.
11) Шоғырландырылған есептің паспорты (шаблон)
Код/нұсқа: 'CONSOL _ PNL _ v3'
Мақсаты: брендтер тобы бойынша P&L басқару, мультивалютасы → EUR базалық валютасы
Жабу: топтың барлық заңды тұлғалары; әдіс - толық шоғырлану; NCI - ерекшеленеді
Дереккөз/қабат: 'mart _ fin _ 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. Мониторинг: жаңалық, completeness, дубликаттар, жауап беру уақыты, инциденттер.
7. Тексеру: анықтамаларды, мэппингтерді, FX-саясатты тоқсандық тексеру.
15) Шоғырландырылған есепті шығару алдындағы чек-парақ
- Өлшемдер мен иерархиялардың анықтамалары семантикалық қабатта құжатталған
- Валюта конверсиясы мен таймзондтар теңшелген; бағам бірліктері мен күні көрсетілген
- Топішілік айналымдардың элиминациясы іске асырылды/NCI (егер қолданылса)
- Инварианттар және референс-дереккөздермен салыстыру рұқсаттарда өтеді
- Инкрементальдық қайта есептеулер мен партияландыру
- SLO жаңалық/қол жетімділік берілген; жаңарту күй- жайы көрсетіледі
- RLS/CLS және PII бүркемелеу теңшелген; экспорт аудиті қосылған
- Нұсқасы/changelog және иелері көрсетілген; оқиғалар runbook бар
Жиынтығы
Агрегация және шоғырландыру - бұл жай ғана 'GROUP BY' емес, тұтас жүйе: келісілген анықтамалар, дұрыс роллаптар, мультивалюталар және күнтізбе, элиминация және салыстыру, бақылау және SLO. Сипатталған архитектураға сүйене отырып, сіз өнімді, қаржыны және тәуекелдерді басқару үшін әр текті деректерді сенімді жиынтыққа айналдырасыз.