BigQuery 中导出数据的相应数据集架构

本页介绍了 BigQuery 中导出的 Crashlytics 数据和 Firebase 会话数据的数据集架构。

Firebase 会在 BigQuery 中为导出的数据创建新数据集:



Crashlytics 个数据集

Crashlytics 数据会导出到名为 firebase_crashlyticsBigQuery 数据集。该数据集涵盖整个项目,即使该项目包含多个应用。

默认情况下,Firebase 会在 Crashlytics 数据集内为项目中每个已关联至 BigQuery 的应用分别创建单独的表。

这些表的命名基于应用的标识符(将句点转换为下划线),并在末尾附加应用平台(_IOS_ANDROID)。例如,软件包名称为 com.google.test 的 Android 应用的数据将存储在名为 com_google_test_ANDROID 的表中。

  • 如果启用了向 BigQuery 的流式导出,则数据也将实时流式传输到附加了 _REALTIME 的表中(例如 com_google_test_ANDROID_REALTIME)。

  • 表中的每一行均表示应用中发生的事件,包括崩溃、非严重错误和 ANR。

  • 除了您在应用(iOS+ | Android | Flutter | Unity)中定义的任何自定义 Crashlytics 键之外,这些表还包含一组标准的 Crashlytics 数据。

表中的每一行都表示应用遇到的一个错误。

对于崩溃、非严重错误和 ANR,表中的列完全相同。

  • 如果启用了 BigQuery 流式导出,则实时表中的列与批处理表中的列相同。

  • 行中可能存在表示无堆栈轨迹的事件的列。

下表列出了导出的 Crashlytics 数据表中的字段:

字段名称 数据类型 说明
app_orientation STRING 例如,PORTRAITLANDSCAPEFACE_UPFACE_DOWN 等。
application RECORD 引发事件的应用
application.build_version STRING 应用的版本号
application.display_version STRING
blame_frame RECORD 被确定为崩溃或错误根本原因的帧
blame_frame.address INT64 包含代码的二进制图片中的地址
Java 帧未设置
blame_frame.blamed BOOLEAN Crashlytics 是否已确定此帧是导致崩溃或错误的原因
blame_frame.file STRING 帧文件的名称
blame_frame.library STRING 包含帧的库的显示名
blame_frame.line INT64 帧文件的行号
blame_frame.offset INT64 包含代码的二进制图片中的字节偏移量
Java 异常未设置
blame_frame.owner STRING 例如 DEVELOPERVENDORRUNTIMEPLATFORMSYSTEM
blame_frame.symbol STRING 水化合符号,或原始符号(如果无法水化合)
breadcrumbs REPEATED RECORD 带有时间戳的 Google Analytics 路径(如果已启用)
breadcrumbs.name STRING 与路径关联的名称
breadcrumbs.params REPEATED RECORD 与路径关联的参数
breadcrumbs.params.key STRING 与路径关联的参数键
breadcrumbs.params.value STRING 与路径关联的参数值
breadcrumbs.timestamp TIMESTAMP 与路径关联的时间戳
bundle_identifier STRING 在 Firebase 项目中注册的应用的唯一标识符(例如 com.google.gmail
对于 Apple 平台应用,这是应用的软件包 ID。
对于 Android 应用,这是应用的软件包名称。
crashlytics_sdk_versions STRING 生成事件的 Crashlytics SDK 版本
custom_keys REPEATED RECORD 开发者定义的键值对
custom_keys.key STRING 开发者定义的密钥
custom_keys.value STRING 开发者定义的值
device RECORD 发生事件的设备
device_orientation STRING 例如,PORTRAITLANDSCAPEFACE_UPFACE_DOWN 等。
device.architecture STRING 例如 X86_32X86_64ARMV7ARM64ARMV7SARMV7K
device.manufacturer STRING 设备制造商
device.model STRING 设备型号
error REPEATED RECORD (仅限 Apple 应用)非严重错误
error_type STRING 事件的错误类型(例如 FATALNON_FATALANR 等)
error.blamed BOOLEAN Crashlytics 是否已确定此帧是导致错误的原因
error.code INT64 与应用自定义记录的 NSError 关联的错误代码
error.frames REPEATED RECORD 堆栈轨迹的帧
error.frames.address INT64 包含代码的二进制图片中的地址
error.frames.blamed BOOLEAN Crashlytics 是否已确定此帧是导致错误的原因
error.frames.file STRING 帧文件的名称
error.frames.library STRING 包含帧的库的显示名
error.frames.line INT64 帧文件的行号
error.frames.offset INT64 包含代码的二进制图片中的字节偏移量
error.frames.owner STRING 例如 DEVELOPERVENDORRUNTIMEPLATFORMSYSTEM
error.frames.symbol STRING 水化合符号,或原始符号(如果无法水化合)
error.queue_name STRING 线程正在运行的队列
error.subtitle STRING 线程的副标题
error.title STRING 线程的标题
event_id STRING 事件的唯一 ID
event_timestamp TIMESTAMP 事件发生的时间
exceptions REPEATED RECORD (仅适用于 Android)此事件期间发生的异常。嵌套异常以反向时间顺序呈现,这意味着最后一条记录是抛出的第一个异常
exceptions.blamed BOOLEAN 如果 Crashlytics 确定异常导致错误或崩溃,则为 true
exceptions.exception_message STRING 与异常关联的消息
exceptions.frames REPEATED RECORD 与异常关联的帧
exceptions.frames.address INT64 包含代码的二进制图片中的地址
Java 帧未设置
exceptions.frames.blamed BOOLEAN Crashlytics 是否已确定此帧是导致崩溃或错误的原因
exceptions.frames.file STRING 帧文件的名称
exceptions.frames.library STRING 包含帧的库的显示名
exceptions.frames.line INT64 帧文件的行号
exceptions.frames.offset INT64 包含代码的二进制图片中的字节偏移量
Java 异常未设置
exceptions.frames.owner STRING 例如 DEVELOPERVENDORRUNTIMEPLATFORMSYSTEM
exceptions.frames.symbol STRING 水化合符号,或原始符号(如果无法水化合)
exceptions.nested BOOLEAN 对于除最后抛出的异常(即第一条记录)之外的所有异常都为 true
exceptions.subtitle STRING 线程的副标题
exceptions.title STRING 线程的标题
exceptions.type STRING 异常类型(例如 java.lang.IllegalStateException)
firebase_session_id STRING 与来自 Crashlytics 的事件对应的 Firebase 会话的自动生成的 ID
installation_uuid STRING 标识唯一应用和设备安装的 ID
is_fatal BOOLEAN 应用是否崩溃
issue_id STRING 与事件相关的问题
logs REPEATED RECORD Crashlytics 日志记录器生成的带时间戳的日志消息(如果已启用)
logs.message STRING 记录的消息
logs.timestamp TIMESTAMP 日志创建时间
memory RECORD 设备的内存状态
memory.free INT64 剩余的内存字节数
memory.used INT64 使用的内存字节数
operating_system RECORD 设备上的操作系统的详细信息
operating_system.device_type STRING 设备的类型(例如 MOBILETABLETTV 等);也称为“设备类别”
operating_system.display_version STRING 设备上的操作系统的版本
operating_system.modification_state STRING 设备是否已经过修改(例如,越狱应用为 MODIFIED,而已启用 root 权限的应用为 UNMODIFIED
operating_system.name STRING 设备上的操作系统的名称
operating_system.type STRING (仅限 Apple 应用)设备上运行的操作系统类型(例如 IOSMACOS 等)
platform STRING 在 Firebase 项目中注册的应用平台(有效值:IOSANDROID
process_state STRING BACKGROUNDFOREGROUND
storage RECORD 设备的永久性存储空间
storage.free INT64 剩余的存储空间字节数
storage.used INT64 使用的存储空间字节数
threads REPEATED RECORD 事件发生时显示的线程
threads.blamed BOOLEAN Crashlytics 是否已确定此帧是导致崩溃或错误的原因
threads.code INT64 (仅限 Apple 应用)应用的自定义记录 NSError 的错误代码
threads.crash_address INT64 导致应用崩溃的信号的地址;仅出现在崩溃的原生线程上
threads.crashed BOOLEAN 线程是否崩溃
threads.frames REPEATED RECORD 线程帧
threads.frames.address INT64 包含代码的二进制图片中的地址
threads.frames.blamed BOOLEAN Crashlytics 是否已确定此帧是导致错误的原因
threads.frames.file STRING 帧文件的名称
threads.frames.library STRING 包含帧的库的显示名
threads.frames.line INT64 帧文件的行号
threads.frames.offset INT64 包含代码的二进制图片中的字节偏移量
threads.frames.owner STRING 例如 DEVELOPERVENDORRUNTIMEPLATFORMSYSTEM
threads.frames.symbol STRING 水化合符号,或原始符号(如果无法水化合)
threads.queue_name STRING (仅限 Apple 应用)运行线程的队列
threads.signal_code STRING 导致应用崩溃的信号的代码;仅出现在崩溃的原生线程上
threads.signal_name STRING 导致应用崩溃的信号的名称,仅出现在崩溃的原生线程上
threads.subtitle STRING 线程的副标题
threads.thread_name STRING 线程的名称
threads.title STRING 线程的标题
unity_metadata.debug_build BOOLEAN 指示该 build 是否为调试 build
unity_metadata.graphics_copy_texture_support STRING 支持以 Unity API 中定义的方式复制图形纹理
unity_metadata.graphics_device_id INT64 图形设备的标识符
unity_metadata.graphics_device_name STRING 图形设备的名称
unity_metadata.graphics_device_type STRING 图形设备的类型
unity_metadata.graphics_device_vendor_id INT64 图形处理器供应商的标识符
unity_metadata.graphics_device_vendor STRING 图形设备的供应商
unity_metadata.graphics_device_version STRING 图形设备的版本
unity_metadata.graphics_max_texture_size INT64 纹理渲染专用大小上限
unity_metadata.graphics_memory_size_mb INT64 图形内存(以 MB 为单位)
unity_metadata.graphics_render_target_count INT64 图形渲染目标的数量
unity_metadata.graphics_shader_level INT64 图形着色器级别
unity_metadata.processor_count INT64 处理器(内核)数量
unity_metadata.processor_frequency_mhz INT64 处理器的频率(以 MHz 为单位)
unity_metadata.processor_type STRING 处理器类型
unity_metadata.screen_refresh_rate_hz INT64 屏幕的刷新率(以 Hz 为单位)
unity_metadata.screen_resolution_dpi STRING 屏幕的 DPI(以浮点数表示)
unity_metadata.screen_size_px STRING 屏幕大小(以像素为单位),格式为“宽 x 高”
unity_metadata.system_memory_size_mb INT64 系统内存的大小(以 Mb 为单位)
unity_metadata.unity_version STRING 此设备上运行的 Unity 版本
user RECORD (可选)收集的应用用户信息
user.email STRING (可选)用户的电子邮件地址
user.id STRING (可选)与用户关联的特定应用的 ID
user.name STRING (可选)用户的姓名
variant_id STRING 与此事件相关的问题变体
请注意,并非所有事件都有关联的问题变体。



Firebase 会话数据集

Firebase 会话数据会导出到名为 firebase_sessionsBigQuery 数据集。该数据集涵盖整个项目,即使该项目包含多个应用。

默认情况下,Firebase 会在 Firebase 会话数据集内为项目中每个已关联至 BigQuery 的应用分别创建单独的表。

这些表的命名基于应用的标识符(将句点转换为下划线),并在末尾附加应用平台(_IOS_ANDROID)。例如,软件包名称为 com.google.test 的 Android 应用的数据将存储在名为 com_google_test_ANDROID 的表中。

表中的每一行都表示发生过的一个会话事件。

如果启用了 BigQuery 流式导出,则实时表中的列与批处理表中的列相同。

下表列出了导出的 Firebase 会话数据表中的列:

字段名称 数据类型 说明
instance_id STRING 设备中的 Firebase 安装 ID (FID)。标识唯一应用 + 设备安装
session_id STRING 相应会话的唯一 ID
first_session_id STRING 自应用冷启动以来,相应会话所属的一系列会话中的第一个 ID。可用于对自冷启动以来发生的所有会话进行分组。如果相应会话是首次会话,则此字段将与 session_id 相同。
session_index INTEGER 相应会话在应用冷启动后按顺序排列的位置。对于冷启动后的第一个会话,此值为 0。每次生成会话时,如果未发生冷启动(例如,在不活动 30 分钟后),该指数都会递增。
event_type STRING 会话中发生的事件的类型(例如 SESSION_START
event_timestamp TIMESTAMP 事件发生的时间
received_timestamp TIMESTAMP 服务器从设备接收到事件的时间
performance_data_collection_enabled BOOLEAN 会话期间是否启用了 Firebase Performance Monitoring SDK 数据收集功能
crashlytics_data_collection_enabled BOOLEAN 会话期间是否启用了 Firebase Crashlytics SDK 数据收集功能
application RECORD 描述应用
application.build_version STRING 应用的版本号(例如 1523456
application.display_version STRING 应用的显示版本(例如 4.1.7
device RECORD 发生事件的设备
device.model STRING 设备的型号
device.manufacturer STRING 设备的制造商。对于 Apple 平台应用,此值将为 NULL
operating_system RECORD 描述设备的操作系统
operating_system.display_version STRING 操作系统的显示版本(例如 10.2.1
operating_system.name STRING 操作系统的名称
operating_system.type STRING 操作系统的类型(例如 IOS)。此字段仅针对 Apple 设备设置。
operating_system.device_type STRING 设备的类型(例如 MOBILETABLETTV