汇总和合并报告
聚合和合并报告
聚合是将详细条目转换为所需切口和周期的摘要。合并-将来自不同来源/法人/产品的集合合并为一个报告,并进行调整(货币,会计政策,消除)。下面是系统方法:从橱窗设计到报告操作。
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"在每周/每季度之前→进一步的滚动。
身份:稳定键(user/brand/legal_entity),对应表(映射))。
3)Rollaps和层次结构
维度层次结构:"游戏→类别→提供商","频道→广告活动→创意","城市→地区→国家→集群"。
总和规则:加法(总和),半加法(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(帐户图表)+从本地计划映射。
会计政策: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)质量与匹配(reconciliation)
根据来源进行的核对:根据来源计算的金额=店面的金额(按汇率/时间计算的接受率)。
不变量:"DAU ≤ MAU",日均值=月总和(对于加法度量)。
完整性控制:空值、重复值、新鲜度滞后。
差异报告:不一致清单和消除步骤。
7)性能和SLO
SLO新鲜度:操作单元-Lag ≤ 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,瀑布(桥梁)因素,按地区划分的收入结构,G&A动态。
操作/ML:SLA,latency p95/p99,PR- AUC/Recall@FPR≤x%,PSI-heatmap漂移。
11)综合报告护照(模板)
代码/版本: "CONSOL_PNL_v3"
任命: 按品牌集团、多元货币→基本货币EUR进行管理P&L
覆盖范围: 该集团的所有法人实体;方法-全面整合;NCI-脱颖而出
来源/层: 'mart_fin_pnl_v3'(基于'fact_tx_v2','dim_legal','dim_fx_rates')
粒度: 月份(每天滚动)
消除: "intercompany=true"-排除组内失误
SLO: T+1 06:00 lock。可用性≥ 99。9%
对账: 会计报告"BK_PNL_T+1",差异≤ 0。3%
所有者: 金融分析,数据平台
Guardrails: FX表不超过24小时;交易覆盖率≥ 99。5%
12)经常出错以及如何避免出错
公式的安静变化:始终通过版本和changelog。
双重计费:来源/乔伊纳斯-控制钥匙和谷物。
临时区域混合:集中日历和UTC存储。
不正确的百分比:聚合分子/分母而不是"平均均值"。
"原始"课程:FX的明确日期/来源,一致性四舍五入政策。
缺乏消除:公司间失误扭曲报告。
不透明的新鲜度:始终显示"N分钟前更新"。
13)Pseudo-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.修订:对定义、映射、外汇政策的季度验证。
15)综合报告发布前的支票清单
- 在语义层中记录了度量和层次结构的定义
- 货币兑换和时区调整;显示课程单位和日期
- 实现组内周转/NCI消除(如果适用)
- 参照源不变式和匹配在公差中通过
- 包括增量重新计票和分期付款
- 新鲜/可用性SLO设置;更新状态显示
- 配置了RLS/CLS和PII掩码;已启用导出审核
- 版本/changelog和所有者列出;有事件运行手册
底线
聚合和整合不仅是"GROUP BY",而且是一个整体系统:一致的定义,正确的滚动,多重货币和日历,消除和匹配,可观察性和SLO。按照所描述的体系结构,您可以将异构数据转换为用于产品、财务和风险管理的可靠存储库。