ข้ามไปที่เนื้อหา

โครงสร้างการจัดเก็บเหตุการณ์

โครงร่าง

คุณสามารถดูวิธีการจัดเก็บบันทึกเหตุการณ์ที่ส่งได้ใน BigQuery โครงสร้างโดยละเอียดของฟิลด์ attributes และ JSON และวิธีกักกันบันทึกที่ละเมิดกฎการส่ง


โครงสร้างตาราง

บันทึกเหตุการณ์ที่ส่งจะถูกจัดเก็บไว้ในตาราง t_raw_event_log ในชุดข้อมูล BigQuery เฉพาะบริษัท

โครงสร้างคอลัมน์ตาราง

สถานที่จัดเก็บ

รายการ รูปแบบ
ตาราง 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 ค่าที่แปลงเป็นชื่อเกมใน App Center Hive ตามแอตทริบิวต์ที่ต้องการ appId 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 และแบ่งออกเป็นสองส่วน: hiveAttributes และ eventAttributes

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 เหตุการณ์ที่กำหนดเองที่ลูกค้าส่งไปยัง Analytics เวอร์ชันเก่าผ่านคุณสมบัติส่งบันทึกเหตุการณ์ใน Hive SDK
custom_server_mig เหตุการณ์ที่กำหนดเองที่ลูกค้าส่งจากเซิร์ฟเวอร์ไปยัง Analytics เวอร์ชันเก่า
custom_except เหตุการณ์ที่สร้างและส่ง eventAttribute, hiveAttribute เป็นกรณีพิเศษในระหว่างกระบวนการแปลงเหตุการณ์

eventAttributes

นี่คือพื้นที่ที่แอตทริบิวต์ที่ผู้ใช้ส่งและแอตทริบิวต์ที่รวบรวมโดยอัตโนมัติโดย SDK จะถูกจัดเก็บ

ชื่อแอตทริบิวต์ ชนิดข้อมูล คำอธิบาย
eventTime STRING eventTime ค่าดั้งเดิมที่ส่งเป็นแอตทริบิวต์ที่ต้องการ
(คุณสมบัติที่ผู้ใช้กำหนด) ตัวเลข/ตัวอักษร แอตทริบิวต์ที่กำหนดเองส่งโดยผู้ใช้โดยตรง
(รวบรวมคุณสมบัติอัตโนมัติ) แตกต่างกันไปตามแอตทริบิวต์ ข้อมูลลูกค้าที่รวบรวมโดยอัตโนมัติโดย SDK (เมื่อส่งไคลเอ็นต์)

attributes ข้อควรระวัง & Tips

  • hiveAttributes ไม่ใช่พื้นที่ที่นักพัฒนาตั้งค่าโดยตรง แต่เป็นพื้นที่ที่ไปป์ไลน์เติมโดยอัตโนมัติ ค่าอื่นที่ไม่ใช่ dataSource และ geoIpCountry จะไม่ถูกบันทึก
  • ทั้งคุณสมบัติที่กำหนดเองและคุณสมบัติที่รวบรวมอัตโนมัติ SDK จะถูกจัดเก็บไว้ด้วยกันใน eventAttributes เมื่อค้นหาจะต้องจำแนกตามชื่อแอตทริบิวต์
  • คุณสามารถค้นหาโดยแยกแยะเส้นทางการส่งข้อมูลของบันทึกเหตุการณ์ (SDK/ server/MMP ฯลฯ) โดยใช้ค่า dataSource

การแยกข้อมูล

Warning

บันทึกเหตุการณ์ที่ไม่เป็นไปตามกฎการขนส่งจะไม่ถูกจัดเก็บไว้ในตารางปกติ (t_raw_event_log) แต่จะถูกจัดเก็บแยกต่างหากใน ตารางกักกัน (t_raw_event_log_rescue) ตารางกักเก็บจะเก็บ JSON ต้นฉบับไว้ ดังนั้นคุณจึงสามารถระบุสาเหตุของการกักเก็บ แก้ไข และส่งอีกครั้งได้


เหตุผลในการกักกัน

สาเหตุข้อผิดพลาด คำอธิบาย วิธีการตอบกลับ
แอตทริบิวต์ที่จำเป็นขาดหายไป แอตทริบิวต์ที่จำเป็นทั้งเจ็ดรายการ (userId, identifierProvider, deviceId, appId, eventTime, eventName, appIdGroup) หายไปหรือมีค่าว่าง ส่งอีกครั้งโดยขาดแอตทริบิวต์ที่จำเป็น
การใช้คำสงวน เมื่อ attributes, eventAttributes และ hiveAttributes ถูกใช้เป็นชื่อแอตทริบิวต์ (ตัวพิมพ์ไม่เกี่ยวข้อง) เปลี่ยนชื่อคุณสมบัติเป็นชื่ออื่น
ไม่อนุญาตให้ใช้ค่าแอตทริบิวต์ หากค่าคุณสมบัติอยู่ในรูปแบบของอ็อบเจ็กต์ JSON ({}) หรืออาร์เรย์ JSON ([]) เปลี่ยนค่าคุณสมบัติเป็นสตริงหรือตัวเลข
รูปแบบผิดพลาด eventTime eventTime ไม่อยู่ในรูปแบบ RFC 3339 หรือไม่สามารถแยกวิเคราะห์ RFC แก้ไขเป็นรูปแบบ 3339 (รวมเขตเวลา)
eventTime อยู่นอกช่วง eventTime อยู่นอก 31 วันในอดีตหรือ 31 วันในอนาคต ณ เวลาปัจจุบัน eventTime ตรวจสอบค่าและแก้ไขให้อยู่ในช่วงปกติ
การแยกวิเคราะห์ JSON ล้มเหลว ข้อความที่ส่งไม่อยู่ในรูปแบบ 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 รายละเอียดการกักกัน (ชื่อช่องหายไป ฯลฯ)

เมนูที่เกี่ยวข้อง