将 Crashlytics 数据导出到 BigQuery 中

您可以将 Firebase Crashlytics 数据导出到 BigQuery。将数据导入 BigQuery 后,您可以使用 SQL 查询分析数据构建数据可视化图表和自定义信息中心,甚至可以将数据导出到其他服务

本页介绍了如何设置将 Crashlytics 和(可选)Firebase 会话数据导出到 BigQuery

设置导出到 BigQuery

  1. Firebase 控制台中,前往集成页面

  2. BigQuery 卡片中,点击关联

  3. 按照屏幕上的说明设置导出到 BigQuery 的功能,包括以下选项:

解除与 BigQuery 的关联会停止向 BigQuery 中填充相应的数据集。

请注意以下事项:

  • 已导出到 BigQuery 的任何数据均将保留允许的保留时间,并且仍可能需要支付存储和查询费用。您可以手动删除数据集,以避免继续产生费用。

  • 如果您在其他服务中存储了 BigQuery 数据,该数据可能会受其他数据保留条款的约束。

您可以从 Firebase 项目级、产品级或特定产品的应用级解除与 BigQuery 的关联。

如需解除与 BigQuery 的关联,请按以下步骤操作

  1. Firebase 控制台中,前往集成页面

  2. BigQuery 卡片中,点击管理

  3. 您可以选择解除关联特定产品,也可以选择解除关联特定产品的特定应用。

    如需完全解除关联 Firebase 项目,请找到页面底部的相应按钮。

  4. 出现提示时,确认您要停止导出。



启用导出功能后会发生什么?

  • Firebase 会导出与 BigQuery 相关联的应用中的数据。

    • 在设置期间,默认情况下,您项目中的所有应用都会关联到 BigQuery,但您也可以选择在设置期间不关联特定应用。

    • 您以后向 Firebase 项目中添加的所有应用都会自动关联到 BigQuery

    • 您可以随时管理哪些应用可导出数据

  • Firebase 会将数据导出到您在设置期间选择的数据集位置。

    • 此位置同时适用于 Crashlytics 数据集和 Firebase 会话数据集(如果已启用会话数据导出)。

    • 此位置仅适用于导出到 BigQuery 中的数据,它不会影响存储在 Firebase 控制台的 Crashlytics 信息中心或 Android Studio 中使用的数据的位置。

    • 创建数据集后,将无法更改其位置,但可以将数据集复制到其他位置,或手动将数据集移动(重新创建)到其他位置。如需了解详情,请参阅更改现有导出的位置

  • Firebase 会安排每日将您的批量数据同步到 BigQuery

    • 关联到 BigQuery 后,初始批量数据导出可能需要最多 48 小时。

    • 无论您在 BigQuery 中是否设置了任何定期导出,每天都会进行一次每日同步。请注意,同步作业的时间和时长可能会发生变化,因此我们不建议您根据特定的导出时间安排下游操作或作业。

  • Firebase 会将您的现有数据的副本导出BigQuery

    • 对于每个关联应用,此导出都包括一个批处理表,其中包含每日同步的数据。

    • 您可以为批处理表手动安排数据回填,时间范围最长可追溯至过去 30 天或您启用导出到 BigQuery 功能时的最近日期(以两者中较晚的时间为准)。

    请注意,如果您在 2024 年 10 月中旬之前启用了 Crashlytics 数据导出功能,则还可以回填到您启用导出功能之前的 30 天。

  • 如果您启用 BigQuery 流式导出,Firebase 会执行以下操作。

    • 每个关联的应用还将拥有自己的实时表,其中包含持续更新的数据(除了用于每日批量导出的应用批处理表之外)。

    • 启用流式传输后,数据可能需要最多 1 小时才能开始流式传输。



流式导出到 BigQuery 的优势

默认情况下,数据会以每日批量导出的方式导出到 BigQuery。 此外,您还可以使用 BigQuery 流式传输实时流式传输 Crashlytics 数据和 Firebase 会话。您可以将流式数据用于任何需要实时数据的用途,例如在实时信息中心内展示信息、实时观察发布情况,或者监控触发提醒和自定义工作流的应用问题。

启用向 BigQuery 的流式导出后,您还将获得实时表(除了批处理表之外)。这两种类型的表都具有相同的数据集架构,但批处理表和实时表之间存在一些重要区别:

批处理表 实时表
  • 每天导出一次数据。
  • 在将数据批量写入 BigQuery 之前持久存储事件。
  • 最多可回填 30 天前的数据*。
  • 数据会实时导出。
  • 不提供数据回填。

批处理表非常适合用于长期分析以及识别随时间推移而变化的趋势,因为我们在写入事件之前会先将事件数据持久存储,而且最多可在表中回填 30 天前的事件数据*。在将数据写入实时表时,我们会立即将其写入 BigQuery,因此这种表非常适合用于实时信息中心和自定义提醒。您可以使用拼接查询将这两种表结合使用,从而同时获享两者的优势。

默认情况下,实时表的分区过期时间为 30 天。如需了解如何修改此设置,请参阅 BigQuery 文档中的设置分区过期时间

* 如需详细了解回填支持,请参阅升级到新的导出基础设施



价格和 BigQuery 沙盒

如果您的 Firebase 项目使用免费 Spark 定价方案,您可以使用 BigQuery 沙盒,这样就可以免费使用 BigQuery。如需了解 BigQuery 沙盒及其功能,请参阅使用 BigQuery 沙盒

如果您的 Firebase 项目采用的是随用随付 Blaze 定价方案,则可以使用 BigQuery 的所有功能。您对 BigQuery 的使用会按照 BigQuery 价格收费,其中包含有限的免费使用额度。



升级到 BigQuery 的新导出基础设施

2024 年 10 月中旬,Crashlytics 推出了一种新基础设施,用于将 Crashlytics 数据批量导出到 BigQuery

  • 如果您在 2024 年 10 月之后启用了批量导出,则您的 Firebase 项目会自动使用新的导出基础设施。对此,您无需执行任何操作。

  • 如果您在 2024 年 10 月之前或期间启用了批量导出,请查看“如何升级到 BigQuery 的新导出基础设施?”中的信息,以确定是否需要采取任何措施。



后续步骤