内容:

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

  • 版本 :2023.1(当前版本)

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

可以使用适用于 Power BI Desktop 的 Azure 成本管理连接器来创建功能强大的自定义可视化效果和报表,帮助你更好地了解 Azure 支出。 Azure 成本管理连接器目前支持签订了直接 Microsoft 客户协议或企业协议 (EA) 的客户。

Azure 成本管理连接器不支持即用即付 Microsoft 客户协议,也不支持间接的 Microsoft 客户协议。 此外,也不支持 Microsoft 合作伙伴协议。 如果你有不受支持的协议,可使用“导出”功能将成本数据保存到共享,然后使用 Power BI 连接到该共享。 有关详细信息,请参阅教程 - 创建和管理从 Azure 成本管理导出的数据 | Microsoft Docs。

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

备注

此连接器取代了先前可用的 Azure 使用见解和 Azure 成本管理 (Beta) 连接器。 使用之前的连接器创建的任何报表都必须使用此连接器重新创建。

使用 Azure 成本管理连接

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

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

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

  3. 选择“Azure 成本管理”

    获取数据

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

连接到 Microsoft 客户协议帐户

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

连接到计费帐户

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

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

  2. 选择计费对象信息。

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

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

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

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

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

    输入了月数的 Azure 成本管理的屏幕截图

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

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

连接到计费对象信息

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

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

  2. 选择计费对象信息。

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

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

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

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

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

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

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

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

连接到企业协议帐户

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

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

  2. 选择计费帐户。

  3. 在“概述”菜单上,复制“计费帐户 ID”

  4. 对于“选择范围”,选择“合约编号”并粘贴上一步中的计费帐户 ID。

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

    屏幕截图显示 Azure 成本管理属性,其中范围为“合约编号”。

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

通过连接器提供的数据

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

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

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

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

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

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

注意事项和限制

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

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

  • Azure 成本管理数据连接器不适用于 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 = ">",
    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 = ">",
    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 或任何喜欢的名称,然后在查询中输入以下文本:

    DAX复制

    ```= "{"& [Tags] & "}"
  6. 完成前面的步骤将创建 JSON 格式的新标记列

  7. 现在可以根据需要传输和展开列。

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

  • 禁止访问该资源

  • 我们无法使用提供的凭据进行身份验证。 请重试。

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

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

  1. 选择“登录”

  2. 选择“使用其他帐户”(对话框底部)

  3. 选择“登录选项”(对话框底部)

  4. 选择“登录到组织”

  5. 对于“域名”,提供已在其中添加为来宾的 Azure Active Directory 域的完全限定的域名 (FQDN)。

  6. 然后,对于“选取帐户”,请选择之前已进行身份验证的用户帐户。