Skip to content

分流表

Assignment Table(分流表) 记录"谁在什么时候看到了哪个实验的哪个变体"。ABetterChoice 中每个运行中的实验都基于一张分流表来解析曝光、流量分配以及主指标的 join。

在控制台的位置

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

分流表详情页 —— 含 Experiment Field、Partition Field、Partition Field Type 等关键字段

表单字段

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

字段说明
Data Warehouse当前固定为 BigQuery
DataSet ID源表所在的 BigQuery 数据集。
Table ID要注册的 BigQuery 表,下拉受 DataSet ID 过滤。
Name在 ABetterChoice 中的展示名,默认与 Table ID 一致。
Owner默认为当前用户且不可清空。可按需追加其他 owner。
Description (Optional)自由文本。
User ID FieldABetterChoice 用作实验主体的列。它必须与您事实表、用户属性表中对应列保持一致,否则 join 不上。
Experiment Field把一次曝光绑定到某个实验的列(例如 exp_group_id)。
Partition FieldABetterChoice 用来按天扫描曝光数据的列。
Partition Field TypeDateTimestampDatetime 三选一,与列在仓库中实际存储时间的形式保持一致。
Event Time Field (Optional)当事件时间与分区列不同时,填写一个独立的事件时间列。

必填字段填写完成后,下方的 Schema 面板会渲染 BigQuery 列与检测到的类型。中途上游列有变更可点击 Refresh 重读。

Partition Field Type 的三种取值

ABetterChoice 支持三种分流表分区方式:

  • Date —— 列存储日历日(如 BigQuery DATE)。
  • Timestamp —— 列存储精确瞬时时间(如 BigQuery TIMESTAMP)。
  • Datetime —— 列存储不带时区的日期时间(如 BigQuery DATETIME,或形如 YYYY-MM-DD HH:MM:SSSTRING)。

请按列在 BigQuery 中实际存储时间的形式选择。ABetterChoice 据此向 BigQuery 写出高效的分区裁剪谓词。

真实分流表的样子

Demo 项目 6666 注册的分流表是 abc_exp_exposure_date_partition,配置为:

  • User ID Field = user_id
  • Experiment Field = exp_group_id
  • Partition Field = dsPartition Field Type = Date

它的 schema 短而明确 —— 这正是一张曝光日志应有的形态:

字段类型角色
dsdate映射到 Partition FieldPartition Field TypeDate
user_idstring映射到 User ID Field
exp_group_idstring映射到 Experiment Field,把一次曝光绑定到某个实验的某个分组。
exposure_timestring需要事件级精度时可作为 Event Time Field

您不需要照抄这些列名 —— 关键的是表单中映射的角色绑定。列名是惯例,角色绑定是契约。

编辑与归档

详情页以只读为主:大部分字段会展示当前值,只有真正改动后 Update 按钮才会启用。唯一的破坏性操作是列表页 Actions 列里的 Archive,归档对依赖实验的影响详见 表生命周期