Skip to content

事实表

Fact Table(事实表) 记录"用户做了什么" —— 事件、交易、时长、广告曝光、内购金额。ABetterChoice 中每个指标都基于一张或多张事实表定义,所以注册事实表是测算"累计曝光"以外任何指标的前置条件。

在控制台的位置

Data Management → Tables 列出所有已注册的表,TypeFact Table 的行就是本页面描述的对象。点击行可进入表的详情页。

事实表详情页 —— 注意 Event Time Field 已映射、且没有 Experiment Field

表单字段

打开 New Table(或已有事实表的详情页)。当 Table TypeFact Table 时,表单需要填写:

字段说明
Data Warehouse当前固定为 BigQuery
DataSet ID源表所在的 BigQuery 数据集。
Table ID要注册的 BigQuery 表,下拉受 DataSet ID 过滤。
Name在 ABetterChoice 中的展示名,默认与 Table ID 一致。
Owner默认为当前用户且不可清空。
Description (Optional)自由文本。
User ID FieldABetterChoice 用来与分流表 User ID Field join 的列。
Partition FieldABetterChoice 用来按天扫描事件数据的列。
Partition Field TypeDateTimestampDatetime 三选一,与列在仓库中实际存储时间的形式保持一致。
Event Time Field (Optional)当事件时间与分区列不同时,填写一个独立的事件时间列。主要用于 MAB 实验 的指标按事件时间精准过滤用户数据。

事实表 没有 Experiment Field —— 该字段是分流表特有的。表单下方的 Schema 面板会列出 ABetterChoice 在 BigQuery 侧检测到的所有列与类型,可点击 Refresh 重读上游 schema。

真实事实表的样子

Demo 项目 6666 注册的事实表是 abc_user_fact_date_partition —— 一张覆盖游戏点击、关卡、广告事件的用户行为日志。它的注册配置:

  • User ID Field = user_id
  • Partition Field = dsPartition Field Type = Date
  • Event Time Field = event_time(事件级精确时间,独立于按日的分区列)

它的 schema 自然分成四类:

分组典型用途
身份与时间user_idstring)、dsdate)、event_timestring)、event_codestring主体识别、分区裁剪、事件分类。
点击事件click_targetclick_scenestring);click_position_xclick_position_yfloat);click_countinteger用于 UI 实验的计数与位置分析。
关卡事件level_idinteger)、level_namelevel_difficultylevel_resultstring);level_duration_secondsfloat);level_scorelevel_starlevel_retry_countintegerLiveOps 关卡调优指标。
广告事件ad_unit_idad_typead_placementad_networkstring);ad_revenue_usdad_ecpmfloat);ad_is_clickedinteger广告变现实验。

您不需要照抄这些列名 —— 关键的是表单中的角色绑定。不同团队的事实表形态各不相同,平台读什么取决于您指向什么。

指标如何消费一张事实表

事实表是 指标 的指标单位。创建指标时,您先选一张事实表作为来源,然后选择:

  • Metric Type(用户占比、均值、用户数、比率、求和)—— 详见 指标类型
  • 用于计算公式的数值列(例如 ad_revenue_usd 表示广告收入、level_duration_seconds 表示通关耗时)。
  • 限定事件或其他过滤条件。

多个指标可以共享同一张事实表。

编辑与归档

详情页以只读为主,Update 按钮在没有改动时禁用;唯一的破坏性操作是列表页的 Archive,归档对依赖指标的传导详见 表生命周期