使用 Power BI Desktop 中的 Microsoft 成本管理连接器创建视觉对象和报表

可以使用适用于 Power BI Desktop 的 Microsoft 成本管理连接器来创建功能强大的自定义可视化效果和报表,帮助你更好地了解 Azure 支出。

Microsoft 成本管理连接器目前支持具有以下协议的客户:

如果你有不受支持的协议,可使用“导出”功能将成本数据保存到共享,然后使用 Power BI 连接到该共享。 有关详细信息,请参阅教程 - 创建和管理从 Microsoft 成本管理导出的数据

Microsoft 成本管理连接器使用 OAuth 2.0 向 Azure 进行身份验证,并识别要使用连接器的用户。 在此过程中生成的令牌在特定时间段内有效。 Power BI 会保留令牌供下一次登录使用。 OAuth 2.0 是在后台执行的进程的标准,可确保安全地处理这些权限。 若要进行连接,必须使用企业管理员帐户(对于企业协议)或在计费帐户或计费对象信息级别具有适当的权限(对于 Microsoft 客户协议)。

使用 Microsoft 成本管理进行连接

若要在 Power BI Desktop 中使用 Microsoft 成本管理连接器,请执行以下步骤:

  1. 在“主页”功能区中,选择“获取数据” 。

  2. 从数据类别列表中选择“Azure”。

  3. 选择“Microsoft 成本管理”。

    获取数据

  4. 在出现的对话框中,为“选择范围”下拉列表使用“手动输入范围”(对于“Microsoft 客户协议”),或使用“合约编号”(对于“企业协议 (EA)”)。

连接到 Microsoft 客户协议帐户

本部分介绍了连接到 Microsoft 客户协议帐户所需的步骤。

连接到计费帐户

若要连接到计费帐户,需要从 Azure 门户检索“计费帐户 ID”:

  1. Azure 门户中,导航至“成本管理和计费”。

  2. 选择计费对象信息。

  3. 在菜单中的“设置”下,在边栏中选择“属性”

  4. 在“计费对象信息”下,复制“ID”成本管理计费对象信息的屏幕截图

  5. 对于“选择范围”,请选择“手动输入范围”,然后输入下面示例中所示的连接字符串,同时将 {billingAccountId} 替换为在前面步骤中复制的数据。 /providers/Microsoft.Billing/billingAccounts/{billingAccountId}

    或者,对于“选择范围”,选择“合约编号”并输入上一步中粘贴的计费帐户 ID 字符串。

  6. 输入月数并选择“确定”

    Microsoft 成本管理的屏幕截图,其中输入了月数

    或者,如果想下载少于一个月的数据,可以将“月数”设置为零,然后使用小于等于 31 天的“开始日期”和“结束日期”值指定日期范围。

  7. 出现提示时,请使用你的 Azure 用户帐户和密码登录。 必须有权访问计费帐户范围才能成功访问计费数据。

连接到计费对象信息

若要连接到“计费对象信息”,必须从 Azure 门户检索“计费对象信息 ID”和”计费帐户 ID”:

  1. Azure 门户中,导航至“成本管理和计费”。

  2. 选择计费对象信息。

  3. 在菜单中的“设置”下,在边栏中选择“属性”

  4. 在“计费对象信息”下,复制“ID”

  5. 在“计费帐户”下,复制 ID 。

    Microsoft 成本管理计费帐户信息的屏幕截图

  6. 对于“选择范围”,请选择“手动输入范围”,并输入下面示例所示的连接字符串,同时将 {billingAccountId} 和 {billingProfileId} 替换为在前面步骤中复制的数据。

    /providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}

  7. 输入月数并选择“确定”

  8. 出现提示时,请使用你的 Azure 用户帐户和密码登录。 必须有权访问计费对象信息才能成功访问计费对象信息数据。

连接到企业协议帐户

若要连接到企业协议 (EA) 帐户,可以从 Azure 门户获取合约 ID:

  1. Azure 门户中,导航至“成本管理和计费”。

  2. 选择计费帐户。

  3. 在“概述”边栏选项卡上,复制“计费帐户 ID”

  4. 对于“选择范围”,请选择“注册号”

  5. 在“范围标识符”中,粘贴在上一步中复制的计费帐户 ID。

  6. 输入月数,然后选择“确定”

    屏幕截图显示了 Microsoft 成本管理属性,其中范围为“注册号”。

  7. 出现提示时,请使用你的 Azure 用户帐户和密码登录。 必须为企业协议使用企业管理员帐户。

通过连接器提供的数据

成功经过身份验证后,将显示“导航器”窗口,其中包含以下可用数据表:

帐户类型 支持的范围 说明
余额摘要 仅限 EA EA 合约 企业协议 (EA) 的当前计费月的余额摘要。
计费事件 仅限 MCA 计费对象信息 提供新发票、信用点数购买等信息的事件日志。仅适用于 Microsoft 客户协议。
预算 EA、MCA EA 注册、MCA 计费帐户、MCA 计费对象信息 提供预算详细信息,以查看针对现有预算目标的实际成本或使用情况。
Charges 仅限 MCA MCA 计费对象信息 提供 Azure 使用情况、市场费用和单独计费的月级别小结。 仅适用于 Microsoft 客户协议。
额度批次 仅限 MCA MCA 计费对象信息 为提供的计费对象信息提供 Azure 额度批次购买详情。 仅适用于 Microsoft 客户协议。
价目表 EA、MCA EA 注册、MCA 计费对象信息 所提供计费配置文件或 EA 注册的适用计量费率。
RI 费用 EA、MCA EA 注册、MCA 计费对象信息 过去 24 个月与预留实例相关联的费用。 此表正被弃用,请改用 RI 事务
RI 建议(共享) EA、MCA EA 注册、MCA 计费对象信息 预留实例根据过去 30 天内的所有订阅用量趋势购买建议。
RI 建议(单个) EA、MCA EA 注册、MCA 计费对象信息 预留实例根据过去 30 天内的单个订阅用量趋势购买建议。
RI 事务 EA、MCA EA 注册、MCA 计费对象信息 计费帐户范围上预留实例的事务列表。
RI 使用情况详细信息 EA、MCA EA 注册、MCA 计费对象信息 上个月现有预留实例的使用情况详细信息。
RI 使用情况摘要 EA、MCA EA 注册、MCA 计费对象信息 每日 Azure 预留使用百分比。
使用情况详细信息 EA、MCA EA 注册,MCA 计费帐户,MCA 计费对象信息 提供 EA 合约给定计费对象信息的已使用量的明细和估计费用。
分摊使用情况详细信息 EA、MCA EA 注册,MCA 计费帐户,MCA 计费对象信息 提供 EA 合约给定计费对象信息的已使用量的明细和估计摊销费用。

可以选择某个表以查看预览对话框。 可以通过选中表名称旁边的框来选择一个或多个表,然后选择“加载”

屏幕截图显示“导航器”对话框。

选择“加载”后,数据将加载到 Power BI Desktop。

加载所选数据后,将在“字段”窗格中显示数据表和字段。

注意事项和限制

Microsoft 成本管理数据连接器具有以下注意事项和限制:

  • Power BI 不支持超过 100 万行的数据行请求。 相反,你可以尝试使用导出功能,如在 Microsoft 成本管理中创建和管理导出的数据中所述。

  • Microsoft 成本管理数据连接器不适用于 Office 365 GCC 客户帐户。

  • 数据刷新:成本和使用情况数据通常在 8 到 24 小时内在 Azure 门户和支持 API 中更新和使用,因此,我们建议你将 Power BI 计划刷新限制为一天一次或两次。

  • 数据源重用:如果有多个报表提取了相同的数据,并且不需要其他特定于报表的数据转换,则应重用相同的数据源,这会缩短提取使用情况详细信息数据所需的时间量。

    有关重用数据源的详细信息,请参阅下列资源:

如果已选择超过三个月的日期参数,则在尝试刷新数据时可能从 RI 使用情况详细信息接收到 400 错误请求。 若要缓解该错误,请执行以下步骤:

  1. 在 Power BI Desktop 中,选择“主页”>“转换数据”。

  2. 在 Power Query 编辑器中,选择“RI 使用情况详细信息”语义模型,然后选择“高级编辑器”。

  3. 按照以下段落所示更新 Power Query 代码,它们将调用拆分为三个月的区块。 请确保记下并保留注册号或计费帐户/计费对象信息 ID。

    对于 EA,请使用以下代码更新:

    let
        enrollmentNumber = "<<Enrollment Number>>",
        optionalParameters1 = [startBillingDataWindow = "-9", endBillingDataWindow = "-6"],
        source1 = AzureCostManagement.Tables("Enrollment Number", enrollmentNumber, 5, optionalParameters1),
        riusagedetails1 = source1{[Key="riusagedetails"]}[Data],
        optionalParameters2 = [startBillingDataWindow = "-6", endBillingDataWindow = "-3"],
        source2 = AzureCostManagement.Tables("Enrollment Number", enrollmentNumber, 5, optionalParameters2),    
        riusagedetails2 = source2{[Key="riusagedetails"]}[Data],
        riusagedetails = Table.Combine({riusagedetails1, riusagedetails2})
    in
        riusagedetails
    

    对于 Microsoft 客户协议,请使用以下更新:

    let
        billingProfileId = "<<Billing Profile Id>>",
        optionalParameters1 = [startBillingDataWindow = "-9", endBillingDataWindow = "-6"],
        source1 = AzureCostManagement.Tables("Billing Profile Id", billingProfileId, 5, optionalParameters1),
        riusagedetails1 = source1{[Key="riusagedetails"]}[Data],
        optionalParameters2 = [startBillingDataWindow = "-6", endBillingDataWindow = "-3"],
        source2 = AzureCostManagement.Tables("Billing Profile Id", billingProfileId, 5, optionalParameters2),    
        riusagedetails2 = source2{[Key="riusagedetails"]}[Data],
        riusagedetails = Table.Combine({riusagedetails1, riusagedetails2})
    in
        riusagedetails
    
    
  4. 通过上一步中的适当更新更新代码后,选择“完成”,然后选择“关闭并应用”

可能会遇到以下情况:标记在使用情况详细信息中不起作用,或者无法将标记列转换为 JSON。 此问题源于当前 UCDD API 通过剪裁开始和结束括号来返回标记列,这导致 Power BI 无法转换该列,因为它将其作为字符串返回。 要缓解这种情况,请执行以下步骤。

  1. 导航到“查询编辑器”。
  2. 选择“使用情况详细信息”表。
  3. 在右窗格中,“属性”窗格显示“已应用的步骤”。 需要在“导航”步骤之后将自定义列添加到步骤中。
  4. 从菜单中选择“添加列”>“添加自定义列”
  5. 为列命名,例如,可以将列命名为 TagsInJson 或任何喜欢的名称,然后在查询中输入以下文本
    
    ```= "{"& [Tags] & "}"
    
  6. 完成前面的步骤将创建 JSON 格式的新标记列
  7. 现在可以根据需要传输和展开列。

Microsoft Entra 来宾帐户遇到的身份验证问题:你可能具有访问注册或计费帐户的适当权限,但会收到类似于以下其中一项的身份验证错误:

  • 禁止访问该资源
  • 我们无法使用提供的凭据进行身份验证。 请重试。

出现这些错误的原因可能是,在不同的 Microsoft Entra 域中有一个用户帐户被添加为来宾用户。

对于来宾帐户:在连接成本管理 Power BI 连接器时,如果系统提示并显示身份验证对话框,请使用以下设置或选项:

  1. 选择“登录”
  2. 选择“使用其他帐户”(对话框底部)
  3. 选择“登录选项”(对话框底部)
  4. 选择“登录到组织”
  5. 对于域名,提供 Microsoft Entra 域(将你作为来宾添加到其中)的完全限定的域名 (FQDN)。
  6. 然后,对于“选取帐户”,请选择之前已进行身份验证的用户帐户。

可使用 Power BI Desktop 连接到多个不同数据源。 有关详细信息,请参阅以下文章: