在 Microsoft Fabric 中使用 Cosmos DB 创建 Power BI 报表

使用 Microsoft Fabric 中的 Cosmos DB,可以使用 NoSQL 数据生成交互式 Power BI 报表。 本指南介绍将 Power BI 连接到 Fabric 数据库中 Cosmos DB 的两种方法:

  • SQL 分析终结点(通过 OneLake):通过具有 DirectLake 模式的 SQL 分析终结点利用镜像数据以实现最佳性能且不使用 RU
  • Azure Cosmos DB v2 连接器:使用具有 DirectQuery 或导入模式的 Power BI 连接器直接连接到数据库

每个方法都有不同的优势。 对于大多数生产方案,建议使用 SQL 分析终结点,而 Azure Cosmos DB v2 连接器为实时报告和直接数据库访问提供了灵活性。

先决条件

  • 包含数据的现有容器

重要

对于本指南,现有的 Cosmos DB 数据库已加载 示例数据集 。 其余示例假定你使用的是同一数据集。

选择报告方法

选择最符合要求的方法:

用例 建议的方法
复杂数据类型(数组、对象、嵌套结构) SQL 分析端点
无数据库资源消耗(RU) SQL 分析端点
动态架构演变 SQL 分析端点
使用直接数据库查询的实时数据 Azure Cosmos DB v2 连接器 (DirectQuery)
现有的 Power BI 连接器工作流 Azure Cosmos DB v2 连接器

方法 1:使用 SQL 分析终结点生成报表

SQL 分析终结点提供对 OneLake 中的镜像数据的访问权限,使你能够使用 DirectLake 模式生成 Power BI 报表。 此方法提供最佳性能,无需使用数据库 RU,并支持复杂的数据类型,包括数组、对象和分层结构。

有关 Power BI 中的语义模型模式的详细信息,请参阅 Power BI 服务中的语义模型模式

验证镜像复制

在生成报表之前,请确保镜像已成功完成至少一次:

  1. 在 Fabric 门户中(https://app.fabric.microsoft.com)导航到 Cosmos DB 数据库。

  2. 在数据库视图中,找到 “复制 ”选项卡并选择“ 监视复制”。

  3. 验证复制状态是否显示为 “正在运行 ”或“ 已完成 ”,并且数据已成功复制到 OneLake。

重要

如果镜像尚未至少完成一次,SQL 分析终结点将没有可用于报告的数据。 检查监控复制面板是否存在任何错误或挂起的操作。

配置语义模型

镜像成功完成后,配置语义模型:

  1. 在菜单栏中,选择 Cosmos DB 列表,然后选择 SQL 终结点 以切换到 SQL 分析终结点。

    Fabric 中 Cosmos DB 中数据库的菜单栏中终结点选择选项的屏幕截图。

  2. 选择“ 报告 ”选项卡。

  3. 在功能区中,选择“ 新建语义模型”。

  4. 选择您想要包括在报表中的表格。

  5. 选择“保存”

注释

默认情况下,语义模型为空。 如果跳过此步骤,则任何尝试创建 Power BI 报表都会导致由于空语义模型而导致错误。

有关 Power BI 中的语义模型的详细信息,请参阅 Power BI 服务中的语义模型

创建和设计报表

配置语义模型后,创建 Power BI 报表:

  1. 在“ 报告 ”选项卡中,选择“ 新建报表”。

  2. 选择 “继续 ”,使用配置的语义模型打开 Power BI。

  3. 在 Power BI 编辑器中,将字段从 “数据 ”窗格拖动到报表画布。

  4. 从“ 可视化效果 ”窗格中选择可视化效果以创建图表、表和其他报表元素。

  5. (可选)使用 Copilot 生成报告建议:

    • 在菜单中选择 Copilot
    • 为新报表页选择 “建议内容
    • 查看建议并选择“ 创建 ”以添加它们

小窍门

还可以通过在 Fabric 门户中的“创建”选项卡中选择已发布的语义模型,或者在 Power BI Desktop 中选择 Power BI 语义模型来创建报表。

有关在 Power BI 中创建报表的详细信息,请参阅 开始在 Power BI 服务中创建报表

方法 2:使用 Azure Cosmos DB v2 连接器生成报表

Azure Cosmos DB v2 Power BI 连接器允许从 Power BI 服务直接连接到 Fabric 数据库中的 Cosmos DB。 此方法支持 DirectQuery 进行实时报告,并支持导入模式以执行计划的数据加载。

重要

Azure Cosmos DB v2 连接器使用数据库中的请求单位(RU)。 DirectQuery 模式会随着每次报表交互来生成查询,而导入模式在数据刷新期间消耗请求单元(RU)。 有关详细信息,请参阅 Azure Cosmos DB v2 连接器限制

连接到数据库

  1. 在 Fabric 门户中(https://app.fabric.microsoft.com)导航到工作区。

  2. 选择左侧工具栏上的“ 创建 ”选项卡,然后选择“ 获取数据”。

  3. 搜索并选择 Azure Cosmos DB v2

  4. 输入您的 Cosmos DB 在 Fabric 数据库中的终结点 URL(可从数据库设置中获取)。

  5. 系统提示进行身份验证时,请选择 “组织帐户”、“登录”,然后选择“ 下一步”。

    注释

    Fabric 中的 Cosmos DB 不支持帐户密钥身份验证。

  6. “导航器 ”窗格中,选择包含报表所需数据的数据库和容器。

    预览 ”窗格显示 记录 项的列表。 每个文档在 Power BI 中都表示为 记录 类型。 文档中的嵌套 JSON 块也显示为 记录 类型。

  7. 展开记录列以查看文档属性,然后选择“ 创建报表”。 (可选)可以选择 “仅创建语义模型 ”或 “转换数据”。

创建可视化效果

加载数据后:

  1. 在新 报表 项目中,将字段从 “数据 ”窗格拖动到报表画布。

  2. 从“ 可视化效果 ”窗格中选择可视化效果以创建图表、表和其他报表元素。

  3. 配置筛选器、切片器和其他交互式元素以增强报表。

  4. (可选)使用 Copilot 创建 AI 辅助报表。

了解连接模式和数据刷新

Azure Cosmos DB v2 连接器支持两种具有不同刷新行为的连接模式:

导入模式:

  • 将数据加载到 Power BI 内存中,实现快速查询性能
  • 需要手动刷新或定时刷新才能更新数据
  • 适用于优先设置查询速度的大型数据集

DirectQuery 模式:

  • 使用每个报表交互实时查询数据库
  • 始终显示当前数据而无需刷新
  • 性能取决于数据库优化和分区键使用情况,以最大程度地减少 RU 消耗

有关 Power BI 中的数据刷新的详细信息,请参阅 Power BI 中的数据刷新

小窍门

使用导入模式来实现更快速的可视化效果,并安排数据更新。 通过优化的查询和分区键筛选器使用 DirectQuery 模式实现实时数据要求,以最大程度地减少 RU 消耗。

有关使用 Azure Cosmos DB v2 连接器时的限制的详细信息,请参阅 Azure Cosmos DB v2 连接器限制

比较:SQL 分析终结点与 Azure Cosmos DB v2 连接器

功能 / 特点 SQL 分析端点 Azure Cosmos DB v2 连接器
数据访问 通过 OneLake 镜像数据 直接数据库连接
连接模式 DirectLake (可以回退到 DirectQuery) DirectQuery 或导入
RU 消耗量 None 是(尤其是 DirectQuery)
数据新鲜度 近实时(镜像延迟) 实时查询(DirectQuery)或计划导入(Import)
复杂数据类型 支持(数组、对象、嵌套) 不支持
架构演变 处理动态架构 有限(前 1,000 个文档)
提供于 Power BI 服务,Power BI Desktop Power BI 服务,Power BI Desktop
最适用于 生产 BI,复杂数据,无 RU 影响 实时查询、直接访问、简单架构

小窍门

对于 Fabric 中 Cosmos DB 的大多数生产 BI 方案,建议使用 SQL 分析终结点方法。 它为复杂数据类型提供更好的支持,不使用数据库 RU,并更有效地处理架构演变。 需要实时数据访问并具有优化查询时,将 Azure Cosmos DB v2 连接器与 DirectQuery 模式配合使用,或使用导入模式来应对需要 Fabric 镜像工作流外部直接数据库连接的方案。