非实时仪表板参考体系结构
此参考体系结构表示您可以在 Azure 上生成的简单分析管道。 当您不再跟踪需要实时分析的数据,而是仅仅计划不时(每天、每周、每两周、每月)地对这些数据进行审核会话时,可利用该功能。 表示层是一个您将能够随时自定义的仪表板。 您可以在开发游戏和生产时使用。
小规模收集分析
本文介绍 GitHub 上的此示例中使用的体系结构。 请注意,此参考体系结构中的代码只是一个指南示例,在用于生产环境之前,可能还有需要优化的地方。
体系结构关系图
相关服务
- Azure 函数 - 用作从设备客户端接收事件的 API。
- Azure 事件中心 - 这是一种为分析管道定制的服务,并且易于使用,几乎不需要配置或几乎无管理开销。 另一个好处是,如果您之后打算实时处理事件,也可以使用它。
- Azure Databricks - 将来自 Azure 事件中心捕获(AVRO 格式)的数据转换为 JSON 文件,并将这些数据转换为与 Power BI 兼容的 CSV 文件。 以高效的方式将来自 Azure 事件中心的数据流式传输到 Azure Blob 存储并非毫无意义,除非其规模很小。
- Azure Blob 存储 - 为存储大量非结构化数据而进行了优化。
- Power BI - 完全可自定义的仪表板。 注意,Azure 可与 IBM SPSS 或 Tableau 等其他数据可视化产品集成,但目前它们无法与 Azure Blob 存储直接连接。 如果您对使用这些数据可视化产品感兴趣,请参阅以下备选体系结构,从而充分利用 Azure SQL 数据仓库。
分步操作
- 从设备客户端调用 Azure 函数。 或者,您可以将虚拟机与负载均衡器结合使用。
- 将数据从 Azure 函数传输到 Azure 事件中心。
- 使用现成的事件中心捕获生成包含这些数据的 AVRO 文件。
- Azure Databricks 作业读取 AVRO 文件中的数据,以及提取有效负载中的 JSON 事件。 Azure Databricks 执行数据准备,并将输出(CSV 文件)存放在 Azure Blob 存储中。
- Power BI 读取存储在 Azure Blob 存储中的 CSV 文件,并在仪表板/报告中显示它们。
部署模板
单击下面的按钮,将项目部署到您的 Azure 订阅:
此操作将触发模板部署,即系统会将 azuredeploy.json ARM 模板文件部署到您的 Azure 订阅,从而创建必要的 Azure 资源。 这可能会在您的 Azure 帐户中产生相应费用。
请查看一般指南文档,其中有一部分概述了 Azure 服务的命名规则和限制。
备注
如果您对 ARM 模板的工作原理感兴趣,请参阅此参考体系结构中使用的每个不同服务对应的 Azure 资源管理器模板文档:
添加这些函数应用程序设置,以便示例项目可连接到 Azure 服务:
- EVENTHUB_CONNECTION_STRING - 所创建的 Azure 事件中心命名空间的连接字符串
下一步,通过门户或 API 启动 Azure Databricks 群集。
然后使用 DBFS 装载 Azure 存储帐户,或者设置访问密钥,以便直接使用 API。 有关所有详细信息,请参阅关于如何从 Azure Databricks 访问 Azure Blob 存储的文档。 推荐路径是利用密钥并装载容器或容器内的文件夹,然后像本地文件一样访问文件。
最后,转到您创建的 Azure Databricks 群集,然后转到要使用的文件夹(或创建一个新文件夹),选择导入、URL,然后使用此脚本导入笔记本。
提示
要在本地运行 Azure Functions,请使用这些相同的应用设置更新 local.settings.json 文件。
实现详细信息
当跟踪的参数在未来游戏更新中演变后,包含版本号将非常有帮助。
事件中心分区
请查看一般指南文档,了解 Azure 事件中心的要求以及选择分区计数的经验法则。
Blob 存储性能和限制
查看一般指南文档,了解有关 Azure 存储帐户的限制以及如何避免节流的详细信息。
API
在该参考体系结构中,API 将通过 Azure 函数(无服务器)实现,因此您无需考虑对服务器进行负载均衡和扩展。 Azure 函数的输入将为 HTTP 触发器,输出将为事件中心。
[return: EventHub("ehnrtanalytics-output", Connection = "EventHubConnectionAppSetting")]
public static async Task<IActionResult> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req, ILogger log)
Azure Databricks 作业
目标是使 Azure Databricks 群集的运行时间保持最小。 将该群集设置为在处于不活动状态几分钟后终止。 然后,每天(例如)计划 Azure Databricks 笔记本。
Power BI 仪表板
从 Azure Blob 存储中提取这些信息并使这些数据准备好实现可视化的一系列步骤:
- 打开 Power BI。
- 选择获取数据,然后选择 Azure。
- 选择 Azure Blob 存储。
- 系统将要求您提供 URL,您可以在 Azure 门户中找到该 URL:
- 打开资源组。
- 选择存储帐户。
- 选择 Blobs(在 Blob 服务下的左侧菜单中)。
- 选择路径(在此示例中为 ehcapture-analytics)
- 最后,您将在属性部分中找到该 URL
- 系统将要求您提供存储帐户密钥,该密钥也可在 Azure 门户中找到:
- 打开资源组。
- 选择存储帐户。
- 选择访问密钥(在“设置”下的左侧菜单中)。
- 仅复制此密钥,而不是连接字符串。
- 然后 Power BI 将与 Azure Blob 存储进行连接,以及显示某些已发现文件的预览。 单击加载。
- 要篡改这些数据:
- 选择编辑查询。
- 将名称列筛选为 CSV,以便仅显示这些类型的文件。
- 从“内容”列,单击 “合并文件”图标(它看起来像是两个向下指的箭头)。
- 将显示一个弹出对话框,单击“确定”按钮。
- 关闭并应用。
- 选择将在该查询中显示的字段,然后开始在任何可用的 Power BI 可视化中将它们添加到仪表板。
安全注意事项
不要将任何事件中心或认知服务连接字符串硬编码到函数的源中。 但至少应充分利用函数应用设置,或者,若要获取更高的安全性,请改用密钥保管库。 有一个指南介绍如何创建密钥保管库、如何将托管服务与函数标识结合使用,以及如何从函数中读取存储在密钥保管库中的机密。
查看事件中心身份验证和安全模型概述并付诸实践,确保只有聊天服务器可以与事件中心通信。
优化注意事项
您可以将存储在 Azure Blob 存储中的 blob 转换到“更冷”的存储层(“热到冷”、“热到存档”或“冷到存档”),或者在它们的生命周期结束时删除 blob,以便使用 Azure Blob 存储生命周期管理策略来优化性能和成本。
备选方案
您可以考虑将 Azure Databricks替换为 Azure HDInsight。 此方案的主要区别是,Azure Databricks 为您处理群集的扩展/收缩,而在使用 Azure HDInsight 时,您必须亲自处理
大规模收集分析
体系结构关系图
实现详细信息
通过利用 Azure 事件中心捕获和 Azure 事件网格,您可以获取玩家发送到 Azure SQL 数据仓库中的数据。 有关完整的分步演练,请参阅使用事件网格和 Azure Functions 将捕获的事件中心数据迁移到 SQL 数据仓库,包括如何将 Power BI 与 SQL 数据仓库结合使用。
部署模板
单击下面的按钮,将项目部署到您的 Azure 订阅:
此操作将触发模板部署,即系统会将 EventHubsDataMigration.json ARM 模板文件部署到您的 Azure 订阅,从而创建必要的 Azure 资源。
请查看一般指南文档,其中有一篇文章概述了 Azure 服务的命名规则和限制。
涉及 Azure Databricks 和 Azure HDInsight
您可以选择在您仓库外准备数据,以便在您的工作室中利用新兴的新技能和工具。
- 凭借 Azure Databricks,数据科学家可将 Databricks 运行时的强大功能与各种语言选择结合使用,以便开发可随着游戏增长而扩展的 ETL(提取、转换、加载)进程,以及将这些数据直接写入 Azure SQL 数据仓库中。
- 或者,您还可以通过将 Azure SQL 数据仓库与 Azure HDInsight 进行连接,对游戏生成的结构化或非结构化数据执行大规模的快速、交互式 SQL 查询。
其他资源和示例
- 适用于 Unity 的 Azure 事件中心 SDK - 这是一个沙盒项目。 这篇文章中的内容不受支持,因此可能已过期或不处于工作状态。
- 通过 Azure 市场部署 Tableau Server
- Azure 市场中的 Tableau Server
定价
如果您没有 Azure 订阅,可以创建免费帐户,开始使用 12 个月的免费服务。 除非您超出这些服务的使用限制,否则无需为 Azure 免费帐户中包含的这些免费服务付费。 了解如何通过 Azure 门户或使用情况文件查看服务使用情况。
您需要承担运行这些参考体系结构时所使用的 Azure 服务的费用。 总金额将因使用情况而异。 请参阅参考体系结构中使用的每项服务的定价网页:
- Azure Functions
- Azure 事件中心定价
- Azure Cosmos DB 定价
- Azure 虚拟机定价
- Azure 流分析定价
- Azure 事件网格定价
- Azure SQL 数据仓库
- Azure Databricks
- Azure HDInsight
您还可以使用 Azure 定价计算器,以配置和估算您计划使用的 Azure 服务的成本。 价格是估计值,不会用作实际的报价单。 实际价格可能会有所不同,具体取决于购买日期、支付货币,以及您与 Microsoft 之间的协议类型。 有关定价的其他信息,请联系 Microsoft 销售代表。