• 游戏
  • 工业
  • 资源
  • 社区
  • 学习
  • 支持
开发
Unity 引擎
为任何平台构建2D和3D游戏
下载计划和定价
商业化
应用内购买(IAP)
发现并管理各商店的IAP
聚合平台
最大化收入并优化变现
Ad Quality
保护您应用的用户体验
Tapjoy
建立长期用户忠诚度
所有变现产品
用户获取
用户获取
被发现并获取移动用户
Unity向量AI
将玩家与合适的游戏连接
Aura设备内广告
在用户高峰参与时触达用户
所有增长产品
使用案例
3D协作
实时构建和审查3D项目
沉浸式培训
在沉浸式环境中培训
客户体验
创建互动3D体验
所有行业解决方案
行业
制造业
实现运营卓越
零售
将店内体验转化为在线体验
汽车
提升创新和车内体验
所有行业
技术库
文档
官方用户手册和API参考
开发者工具
发布版本和问题跟踪器
路线图
查看即将推出的功能
术语表
技术术语库
洞察
案例分析
真实成功案例
最佳实践指南
专家提示和技巧
所有资源
新增功能
博客
更新、信息和技术提示
新闻
新闻、故事和新闻中心
社区中心
讨论
讨论、解决问题和连接
事件
全球和本地活动
社区故事
Made with Unity
展示Unity创作者
直播活动
加入开发者、创作者和内部人员
Unity奖项
庆祝全球的Unity创作者
适合每个级别
Unity Learn
免费掌握Unity技能
专业培训
通过Unity培训师提升您的团队
Unity新手
准备开始
开始您的学习
Unity基础路径
你是Unity 新手?开始您的旅程
使用指南
可操作的技巧和最佳实践
教育
对于学生
开启您的职业生涯
对于教育者
增强您的教学
教育资助许可证
将Unity的力量带入您的机构
认证
证明您的Unity精通
支持选项
获取帮助
帮助您在Unity中取得成功
成功计划
通过专家支持更快实现目标
常见问题解答
常见问题解答
联系我们
与我们的团队联系
计划和定价
语言
  • English
  • Deutsch
  • 日本語
  • Français
  • Português
  • 中文
  • Español
  • Русский
  • 한국어
社交
货币
采购
  • 产品
  • Unity Ads
  • 订阅
  • Unity Asset Store
  • 经销商
教育
  • 学生
  • 教师
  • 机构
  • 认证
  • 学习
  • 技能发展计划
下载
  • Unity Hub
  • 下载存档
  • Beta 版测试
Unity Labs
  • 实验室
  • 作品
资源
  • 学习平台
  • 社区
  • 文档
  • Unity QA
  • 常见问题解答
  • 服务状态
  • 案例分析
  • Made with Unity
Unity
  • 我们公司
  • 新闻简报
  • 博客
  • 事件
  • 工作机会
  • 帮助
  • 新闻
  • 合作伙伴
  • 投资人
  • 附属机构
  • 安防
  • 社会影响力
  • 包容性与多样性
  • 联系我们
版权所有 © 2025 Unity Technologies
  • 法律
  • 隐私政策
  • Cookie
  • 不要出售或分享我的个人信息

“Unity”、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其分支机构在美国及其他地区的商标或注册商标(单击此处获取更多信息)。其他名称或品牌是其各自所有者的商标。

Hero background image

如何使用 SQL Data Explorer 来分析游戏数据

开始探索你的数据

使用 Unity Gaming Services (UGS) 数据浏览器根据指标或事件过滤和使用数据,并按平台、国家/地区或版本对数据进行分组。

凭借 SQL(结构化查询语言)的基本知识,您可以使用UGS内的 SQL 数据资源管理器提升分析水平并深入挖掘数据。使用此功能可以构建和执行查询,将结果绘制成不同类型的可视化效果,将可视化效果添加到自定义仪表板,以及导出数据以供其他分析工具使用。在 Unity Dashboard的UGS Analytics面板中找到 SQL Data Explorer。

Unity 的Analytics顾问之一 Russell Young 为您提供了一些建议和想法,帮助您开始 SQL 数据探索之旅。

开始探索你的数据

  • 开始你的使命
  • 使用默认的 EVENTS 表
  • 限制查询以提高效率
  • 绘制结果
  • 使用枢轴工具
  • 调整数据
  • 看到结果
  • 提高查询速度
  • 数据抽样
  • 使用 precise_count_distinct
  • 打开词汇表面板
  • UGS中的聚合表
  • 使用 FACT_EVENT_TYPE_USERS_DAY
  • 根据特定标准识别球员
  • 使用新定义的变量
  • 从数据中获取更多信息

开始你的使命

请参阅 SQL Cookbook 中的食谱集合,探索UGS中的丰富数据。请注意, UGS使用了 Snowflake 风格的 SQL。

其中一个食谱查询查看任务统计数据。让我们调整该代码来快速查看我们模拟游戏中的任务失败率。这使用我们创建的自定义事件来跟踪玩家对任务的参与度,以及我们的 missionID 参数。

使用默认的 EVENTS 表

使用默认的 EVENTS 表

对于此查询,我们将使用默认的 EVENTS 表。该表包含我们游戏中记录的每个事件的详细信息。

限制查询以提高效率

限制查询以提高效率

请注意,我们在这里使用日期过滤器来限制查询并保持其高效。如果没有此限制,查询将会覆盖 SQL 数据资源管理器中默认可查询的全部 365 天的数据。此外,指定您感兴趣的列总是比使用 SELECT * 更有效。

EVENT_JSON:missionID::INTEGER 等短语看起来令人生畏,但如果您输入“missionID”并使用自动完成功能,SQL 数据资源管理器就会为您生成 JSON 语法 - 假设您已在自己的游戏中设置了该参数。

绘制结果

绘制结果

运行查询后,我们可以绘制结果来查看数据中的故事。图表目前最多支持两个 Y 轴和一个 X 轴。可以使用 SQL 查询中的“as”表达式轻松重命名轴标签;在本例中,我们的 Y 轴采用了我们定义的名称:“玩家失败 %”。

我们发现超过三分之一的玩家在我们的第一次任务(任务ID 0)中失败了,因此我们可以微调任务难度,为用户提供更积极的首次体验。

提示:如果您的数据中有一些 NULL 值,并且发现这导致轴看起来很奇怪,请使用 coalesce(yourParameter, 0) 来填充空白。

使用枢轴工具

使用枢轴工具

当我们运行查询时,我们会得到结果表。将 PLATFORM 添加到我们的查询中;在上图中,您将看到表格现在的样子。注意右侧的‘枢轴’按钮。这对于重塑我们的数据很有用,而无需重写我们的查询。

调整数据

调整数据

在我们的示例中,我们可以使用数据透视工具来调整我们的数据,以在行中获取 PLATFORM 并以 MISSIONID 作为列。

看到结果

看到结果

调整表格后我们发现,不同平台之间的任务失败率差别不大。

提高查询速度

随着您的游戏变得越来越成功并且玩家群不断增长,您可能会发现即使是简单的查询也需要花费相当长的时间才能运行。

假设您想针对数据运行以下基本查询:

数据抽样

您可能期望它运行得相当快,但对于大型数据集来说情况并非总是如此。利用我们仓库的形状以及user_ids以哈希形式存储的事实,使用快速的方法减少包含的用户数量,以提高查询速度。

在这里,我们将用户分成 100 个伪随机分配和编号的存储桶,并查看存储桶编号 63。

将此代码添加到简单查询中不会产生太大区别,但随着计算复杂性的增加,以这种方式过滤数据变得越来越重要。即使在我们的假装游戏中,我们也发现这个修改版本的查询比原始版本运行速度快 75%。这节省了时间和金钱,无需处理整个数据集即可了解用户的样本子集。

使用 precise_count_distinct

在上述查询中,我们使用 count(distinct…) 来计算个人玩家和事件组合的数量。如果我们不需要 100% 准确的结果,那么提高查询速度的一种方法是使用 approximate_count_distinct。我们之前的查询变成:

打开词汇表面板

打开词汇表面板

到目前为止,我们仅使用主 EVENTS 表。由于该表保存了我们游戏中每个事件的详细信息,因此它是最全面的表。为了改进我们的查询,我们可以使用更小的对象来更有效地运行我们的查询。

让我们看一下词汇表面板,探索可供查询的表格。

UGS中的聚合表

除了事件之外,我们在这里还可以找到所有可供查询的聚合表。这些都是通过UGS开箱即用的。

  • USERS 表为每个玩家保留一行,并记录他们在游戏中的终身指标,例如事件计数、总游戏时间、总花费等。
  • FACT_USER_SESSIONS_DAY 包含每个玩家每次会话的数据。
  • FACT_EVENT_TYPE_USERS_DAY 包含玩家每天发送的每个事件的一行以及总数。
  • FACT_WAU_USERS 和 FACT_MAU_USERS 包含前一周或前一个月某一天玩过游戏的用户的个人资料数据。

在 FACT_EVENT_TYPE_USERS_DAY 和 FACT_USER_SESSIONS_DAY 之间,您大概可以回答针对较小对象的大多数查询的 80% 以上。

使用 FACT_EVENT_TYPE_USERS_DAY

例如,在我们的第一个查询中,我们正在查看任务失败率。我们还可以使用 FACT_EVENT_TYPE_USERS_DAY 来计算每天的总体故障率,并将 NUMBER_OF_EVENTS 计数存储在此表中。

我们还将在下一个查询中使用其中一个表:

根据特定标准识别球员

根据特定标准识别球员

使用此查询查看符合特定条件的玩家的事件流。它对于 QA 和调试很有用,因为 - 通过使用上面提到的 USERS 表 - 您每次运行时都会获得不同的用户。

例如,如果您怀疑安装了特定版本游戏的玩家的事件没有被正确记录,您可以运行以下查询。返回的是随机玩家运行似乎遇到问题的游戏版本的事件流。重复几次,您就可以快速开始发现数据中的模式。

提示:如果要注释掉多行,请使用键盘快捷键 CTRL+/

使用新定义的变量

您可能习惯使用 Snowflake 以外的语言编写 SQL 查询 - 例如,如果您使用以前的 deltaDNA 数据挖掘工具,则很可能在 Vertica 中编写查询。

您现在可以引用新定义的变量,而无需先将它们包含在通用表表达式 (CTE) 中。例如,此查询在 SQL 数据资源管理器中成功运行 - 但在原始 deltaDNA 中,它会引发“列‘rice’不存在”错误:

从数据中获取更多信息

SQL Explorer 具有很大的潜力。UGS Analytics中还有更多内容有待发现,包括饼图和堆积条形图等许多图表选项。直接访问使您可以通过 Snowflake 直接访问您的Analytics数据。

为了快速获得您的见解并获得构建查询和仪表板的支持, 请联系我们。

进一步阅读

  • UGSAnalytics文档
  • SQL 手册
  • 漏斗和 SQL 数据资源管理器简介
  • Snowflake SQL 函数参考
  • UGS定价

您喜欢本文吗?

是的!

继续发送

还行。

有待改进