Skip to content

Event storage structure

Overview

You can see how transmitted event logs are stored in BigQuery, the detailed structure of the attributes and JSON fields, and how logs that violate transmission rules are quarantined.


table structure

Sent event logs are stored in the t_raw_event_log table in the company-specific BigQuery dataset.

Table column structure

Storage location

Item Format
table t_raw_event_log
Partitioning Daily partition by dateTime

Column definition

Column name data type Description Example
userId STRING Value sent as required attribute userId 100001
identifierProvider STRING Value sent as required attribute identifierProvider hive
deviceId STRING Value sent as required attribute deviceId 100000
appId STRING Value sent as required attribute appId "com.com2us.game.ios"
appIdGroup STRING Value converted to game name in App Center Hive based on required attribute appId com.com2us.game
dateTime TIMESTAMP Required attribute eventTime converted to UTC 2026-07-20T05:01:01Z
eventName STRING Value sent as required attribute eventName asset_drop
checksum STRING Hash value generated for each event HW2FTEB56TEEWER
bigqueryRegistTimestamp TIMESTAMP The UTC time when the event was stored in BigQuery 2026-07-20T05:02:01Z
attributes JSON JSON field where custom and auto-collected attributes are stored See below

attributes example

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

Table structure precautions & Tips

  • The same event may be stored redundantly due to retransmission, etc., so it is recommended to use a duplicate removal query based on checksum when searching.
  • Event logs that violate transport rules are stored in the rescue table, not this table. For more information, see Data Isolation.

attributes Detailed attributes

Note

The attributes column is of type JSON and is divided into two areas: hiveAttributes and eventAttributes.

attributes example

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

hiveAttributes

This is the area that the pipeline automatically processes and stores.

Attribute name data type Description Example
dataSource STRING Transmitter of event logs. See detailed dataSource below custom_server
geoIpCountry STRING Country code determined by the pipeline based on IP (ISO 3166 alpha-2) KR

dataSource Details

dataSource indicates the entity sending the event log, and is automatically set to one of the following values:

value Description
airbridge Events collected via Airbridge
appsflyer Events collected via Appsflyer
adjust Events collected via Adjust
singular Events collected via Singular
hive_server Hive Events automatically collected through authentication, billing, etc.
hive_sdk Events such as funnels automatically collected by Hive SDK
custom_server Custom events sent by the customer from the server
custom_sdk Custom events sent by customers via the event log submission function of Hive SDK
custom_sdk_mig Custom events that customers send to older versions of Analytics via the Send Event Log feature in Hive SDK
custom_server_mig Custom events that customers send from their servers to older versions of Analytics
custom_except An event that generates and transmits eventAttribute, hiveAttribute as an exceptional case during the event conversion process

eventAttributes

This is the area where the attributes sent by the user and the attributes automatically collected by SDK are stored.

Attribute name data type Description
eventTime STRING eventTime original value sent as required attribute
(User Defined Attribute) numbers/characters Custom attributes sent directly by users
(auto-collected attributes) Varies by attribute Client information automatically collected by SDK (when transmitting client)

attributes Precautions & Tips

  • hiveAttributes is not an area where the developer sets the value directly, but an area that the pipeline automatically fills. Values ​​other than dataSource and geoIpCountry are not saved.
  • Both custom attributes and SDK auto-collected attributes are stored together in eventAttributes. When searching, they must be distinguished by attribute name.
  • You can search by distinguishing the transmission path of the event log (SDK/ server/MMP, etc.) using the dataSource value.

data-isolation

Warning

Event logs that do not comply with the transport rules are not stored in the normal table (t_raw_event_log), but are stored separately in the quarantine table (t_raw_event_log_rescue). The quarantine table preserves the original JSON, so you can determine the cause of the quarantine, fix it, and retransmit.


Reason for quarantine

Error Reason Description How to respond
Required attribute missing Any of the seven required attributes (userId, identifierProvider, deviceId, appId, eventTime, eventName, appIdGroup) is missing or has an empty value Resend with missing required attributes
Use of reserved words When attributes, eventAttributes, and hiveAttributes are used as attribute names (case is not relevant) Change the attribute name to another name
Attribute value not allowed If the attribute value is in the form of an JSON object ({}) or a JSON array ([]) Change attribute value to string or number
Format error eventTime eventTime is not in RFC 3339 format or cannot be parsed RFC Modified to 3339 format (including time zone)
eventTime out of range eventTime is outside 31 days in the past or 31 days in the future as of the current time eventTime Check the value and modify it to the normal range
Parsing of JSON failed The sent message is not in a valid JSON format JSON Verify format and resend

Isolated table structure

Isolated event logs are stored in the t_raw_event_log_rescue table with the following structure:

Column name data type Description
userId STRING Sent userId (if parsable)
identifierProvider STRING Sent identifierProvider
deviceId STRING Sent deviceId
appIdGroup STRING Sent appIdGroup
dateTime STRING Original value of transmitted eventTime (Save as string, not TIMESTAMP)
eventName STRING Sent eventName
bigqueryRegistTimestamp TIMESTAMP BigQuery Save time
checksum STRING hash value
rawData STRING All original JSON sent
errorReason STRING Quarantine Reason Code
errorStackTrace STRING Quarantine details (missing field names, etc.)