跳转至

事件存储结构

大纲

您可以查看传输的事件日志如何存储在 BigQuery 中、attributes 和 JSON 字段的详细结构以及如何隔离违反传输规则的日志。


表结构

发送的事件日志存储在公司特定的 BigQuery 数据集的 t_raw_event_log 表中。

表列结构

存储位置

项目 格式
t_raw_event_log
分区 每日分区按 dateTime

列定义

栏目名称 数据类型 描述 示例
userId STRING 作为必需属性发送的值 userId 100001
identifierProvider STRING 作为必需属性发送的值 identifierProvider hive
deviceId STRING 作为必需属性发送的值 deviceId 100000
appId STRING 作为必需属性发送的值 appId "com.com2us.game.ios"
appIdGroup STRING 根据必需属性 appId 在应用中心 Hive 转换为游戏名称的值 com.com2us.game
dateTime TIMESTAMP 必需属性 eventTime 转换为 UTC 2026-07-20T05:01:01Z
eventName STRING 作为必需属性发送的值 eventName asset_drop
checksum STRING 为每个事件生成的哈希值 HW2FTEB56TEEWER
bigqueryRegistTimestamp TIMESTAMP 该事件存储在 UTC 的 UTC 2026-07-20T05:02:01Z
attributes JSON JSON 存储自定义和自动收集的属性的字段 见下文

attributes 示例

{
  "hiveAttributes": {
    "dataSource": "custom_server",
    "geoIpCountry": "KR"
  },
  "eventAttributes": {
    "eventTime": "2026-07-20T14:01:01+09:00",
    "level": 10,
    "character_name": "AA",
    "stage_id": "stage_101"
  }
}

表结构注意事项 & Tips

  • 同一事件可能会因重传等原因而出现冗余存储,因此搜索时建议使用基于checksum的去重查询。
  • 违反传输规则的事件日志存储在 rescue 表中,而不是此表中。有关详细信息,请参阅数据隔离

attributes 详细属性

Note

attributes 列的类型为 JSON,分为两个区域:hiveAttributeseventAttributes

attributes 示例

{
  "hiveAttributes": {
    "dataSource": "custom_server",
    "geoIpCountry": "KR"
  },
  "eventAttributes": {
    "eventTime": "2026-07-20T14:01:01+09:00",
    "level": 10,
    "character_name": "AA"
  }
}

hiveAttributes

这是管道自动处理和存储的区域。

属性名称 数据类型 描述 示例
dataSource STRING 事件日志的发送器。请参阅下面的详细 dataSource custom_server
geoIpCountry STRING 管道根据 IP (ISO 3166 alpha-2) 确定的国家/地区代码 KR

dataSource 详细信息

dataSource 表示发送事件日志的实体,并自动设置为以下值之一:

价值 描述
airbridge 通过 Airbridge 收集的事件
appsflyer 通过 Appsflyer 收集的事件
adjust 通过 Adjust 收集的事件
singular 通过 Singular 收集的事件
hive_server Hive 通过身份验证、计费等自动收集的事件
hive_sdk Hive SDK 自动收集的漏斗等事件
custom_server 客户从服务器发送的自定义事件
custom_sdk 客户通过Hive SDK 的事件日志提交功能发送的自定义事件
custom_sdk_mig 客户通过 Hive SDK 中的发送事件日志功能发送到旧版 Analytics 的自定义事件
custom_server_mig 客户从其服务器发送到旧版本 Analytics 的自定义事件
custom_except 在事件转换过程中作为例外情况生成并传输 eventAttributehiveAttribute 的事件

eventAttributes

这是存储用户发送的属性和SDK自动收集的属性的区域。

属性名称 数据类型 描述
eventTime STRING eventTime 作为必需属性发送的原始值
(用户定义的属性) 数字/字符 用户直接发送的自定义属性
(自动收集的属性) 因属性而异 SDK自动收集的客户信息(传输客户时)

attributes 注意事项 & Tips

  • hiveAttributes 不是开发者直接设置值的区域,而是管道自动填充的区域。不保存dataSourcegeoIpCountry以外的值。
  • 自定义属性和 SDK 自动收集的属性一起存储在 eventAttributes 中。搜索时,必须通过属性名称来区分。
  • 您可以使用dataSource值区分事件日志的传输路径(SDK/服务器/MMP等)进行搜索。

数据隔离

Warning

不符合传输规则的事件日志不会存储在普通表 (t_raw_event_log) 中,而是单独存储在**隔离表 (t_raw_event_log_rescue)** 中。 隔离表保留原始的 JSON,因此您可以确定隔离的原因、修复它并重新传输。


隔离原因

错误原因 描述 如何回应
缺少必需的属性 七个必需属性(userIdidentifierProviderdeviceIdappIdeventTimeeventNameappIdGroup)中的任何一个缺失或具有空值 重新发送缺少必需的属性
保留字的使用 attributeseventAttributeshiveAttributes 用作属性名称时(大小写无关) 将属性名称更改为其他名称
不允许属性值 如果属性值的形式为 JSON 对象 ({}) 或 JSON 数组 ([]) 将属性值更改为字符串或数字
格式错误 eventTime eventTime 不是 RFC 3339 格式或无法解析 RFC 修改为3339格式(含时区)
eventTime 超出范围 eventTime 超出当前时间过去 31 天或未来 31 天 eventTime 检查数值并修改至正常范围
解析 JSON 失败 发送的消息的格式无效 JSON 验证格式并重新发送

隔离表结构

隔离事件日志存储在 t_raw_event_log_rescue 表中,结构如下:

栏目名称 数据类型 描述
userId STRING 已发送 userId(如果可解析)
identifierProvider STRING 已发送 identifierProvider
deviceId STRING 已发送 deviceId
appIdGroup STRING 已发送 appIdGroup
dateTime STRING 传输的原始值 eventTime (另存为字符串,而不是 TIMESTAMP)
eventName STRING 已发送 eventName
bigqueryRegistTimestamp TIMESTAMP BigQuery 节省时间
checksum STRING 哈希值
rawData STRING 所有原始 JSON 均已发送
errorReason STRING 隔离原因代码
errorStackTrace STRING 隔离详细信息(缺少字段名称等)

相关菜单