教程:创建和管理导出的数据

如果你已阅读成本分析教程,则会熟悉如何手动下载成本管理数据。 但是,可以创建一个定期任务,按日、按周或按月自动将成本管理数据导出到 Azure 存储。 导出的数据采用 CSV 格式,它包含成本管理收集的所有信息。 然后,可以在外部系统使用从 Azure 存储导出的数据,并将其与自己的自定义数据相结合。 在类似仪表板或其他财务系统等的外部系统中,你都可以使用导出的数据。

本教程将通过示例,指导你导出成本管理数据,然后验证数据是否已成功导出。

在本教程中,你将了解如何执行以下操作:

  • 创建每日导出
  • 验证收集的数据

先决条件

数据导出适用于各种 Azure 帐户类型,包括企业协议 (EA)Microsoft 客户协议客户。 若要查看支持的帐户类型的完整列表,请参阅了解成本管理数据。 对于按用户和组导出的数据,每个订阅均支持以下 Azure 权限或作用域。 有关范围的详细信息,请参阅了解并使用范围

  • 所有者 - 可以为订阅创建、修改或删除计划导出。
  • 参与者 - 可以创建、修改或删除自己的计划导出。 可以修改其他人创建的计划导出的名称。
  • 读者 - 可以计划他们有权访问的导出。
    • 有关范围的详细信息,包括为企业协议和 Microsoft 客户协议范围配置导出所需的访问权限,请参阅了解和使用范围

对于 Azure 存储帐户:

  • 无论导出权限如何,更改配置的存储帐户都需要写入权限。
  • 必须为 Blob 或文件存储配置 Azure 存储帐户。
  • 当在对象复制规则中配置为目标时,请勿将导出配置到存储容器。
  • 要导出到具有已配置防火墙的存储帐户,需要对存储帐户拥有其他权限。 只有在创建或修改导出期间才需要其他权限。 它们具有以下特点:
    • 存储帐户的所有者角色。 或
    • 具有Microsoft.Authorization/roleAssignments/writeMicrosoft.Authorization/permissions/read权限的任何自定义角色。 此外,请确保在配置防火墙时启用对存储帐户的允许受信任的 Azure 服务访问。 如果要使用导出 REST API 向位于防火墙后面的存储帐户生成导出,请使用 API 版本 2023-08-01 或更高版本。 所有更高的 API 版本继续支持防火墙之后的导出。
  • 存储帐户配置的“允许的复制操作范围(预览版)”选项必须设置为“来自任何存储帐户”。 显示已设置为“来自任何存储帐户”选项的屏幕截图。

如果你有新订阅,则无法立即使用成本管理功能。 最多可能需要 48 小时才能使用所有成本管理功能。

登录 Azure

通过 https://portal.azure.cn 登录到 Azure 门户。

创建每日导出

要创建或查看数据导出或计划导出,请在 Azure 门户中选择范围,然后在菜单中选择“成本分析”。 例如,导航到“订阅”,从列表中选择订阅,然后在菜单中选择“成本分析” 。 在“成本分析”页的顶部,选择“配置订阅”,然后“导出”。

注意

  • 除了订阅之外,还可以针对资源组、管理组、部门和注册创建导出。 有关范围的详细信息,请参阅了解并使用范围
  • 在计费帐户范围内或在客户的租户上以合作伙伴身份登录时,可以将数据导出到链接到合作伙伴存储帐户的 Azure 存储帐户。 但是,必须在 CSP 租户中具有活动订阅。
  1. 选择“创建”
  2. 对于“导出详细信息”,请选择:
    • 键入导出名称
    • 每日导出本月累计成本 - 每日提供一个新的本月累计成本的导出文件。 最新数据是根据以前的每日导出聚合的。
    • 每周导出过去七天的成本 - 创建自选定的导出开始日期起过去七天的每周成本导出文件。
    • 每月导出上个月的成本 - 提供上月成本的导出文件(与创建导出的当前月份进行比较)。 然后,计划在每月的第五天运行导出,其中包含以前的月份成本。
    • 一次性导出 - 允许你选择要导出到 Azure blob 存储的历史数据的日期范围。 你可以导出从所选的那一天起最多 90 天的历史成本。 此导出会立即运行,最多 2 小时后便可在存储帐户中获取它。 根据你的导出类型,请选择“开始日期”,或选择“从”和“到”日期 。
  3. 指定 Azure 存储帐户的订阅,然后选择一个资源组,或者创建一个新的资源组。
  4. 选择存储帐户名称或新建一个。
  5. 选择位置(Azure 区域)。
  6. 指定要将导出文件放置到其中的存储容器和目录路径。 显示用于配置导出的“新建导出”页的屏幕截图。
  7. 检查导出详细信息,然后选择“创建”。

新导出将出现在导出列表中。 默认情况下,新导出为启用状态。 若要禁用或删除计划内导出,请选择列表中的任何项,然后选择“禁用”或“删除”。

最初,在导出运行之前,可能需要 12 到 24 个小时。 但是,可能需要更长时间才能在导出的文件中显示数据。

为具有防火墙的存储帐户配置导出

如果需要在防火墙后面导出到存储帐户以满足安全性和合规性要求,请确保满足所有先决条件

注意

如果有现有的计划导出,并且更改了存储网络配置,则必须更新导出,并保存它来反映所做更改。

在存储帐户上启用“允许受信任的 Azure 服务访问”。 可以在配置存储帐户的防火墙时,从“网络”页打开该防火墙。 下面是显示该页面的屏幕截图。

显示“允许受信任服务列表中的 Azure 服务”例外选项的屏幕截图。

如果错过了启用该设置,可以在创建新导出时从“导出”页轻松执行此操作

显示“允许受信任的 Azure 服务访问”选项的屏幕截图。

在创建或修改新作业导出时,会创建系统分配的托管标识。 必须具有权限,因为成本管理使用特权将StorageBlobDataContributor角色分配给托管标识。 权限仅限于存储帐户容器范围。 创建或更新导出作业后,用户不需要所有者权限进行常规运行时操作。

注意

  • 当用户更新目标详细信息或删除导出时,分配给托管标识的StorageBlobDataContributor角色会自动删除。 要使系统能够删除角色分配,用户必须具有microsoft.Authorization/roleAssignments/delete权限。 如果权限不可用,用户需要手动删除托管标识上的角色分配。
  • 目前,同一租户中的存储帐户支持防火墙。 但是,跨租户导出不支持存储帐户上的防火墙。

将导出添加到受信任服务列表中。 有关详细信息,请参阅基于托管标识的受信任访问

导出计划

计划的导出受最初创建导出时的时间以及一周中的某一天的影响。 创建计划的导出后,随后的每次导出都会以相同的频率运行。 例如,对于设置为每天一次频率的每日的本月至今累计成本导出,导出会在每个 UTC 日运行一次。 同样,对于每周导出,导出每周按计划在同一 UTC 日运行一次。 单独导出运行可能在一天的不同时间发生。 因此,请避免严格依赖导出运行的确切时间。 运行时间取决于给定 UTC 日 Azure 中存在的活动负载。 导出运行开始时,数据应在 4 小时内可用。

使用协调世界时 (UTC) 导出计划。 导出 API 始终使用并显示 UTC。

  • 使用导出 API 创建导出时,请以 UTC 时间指定 recurrencePeriod。 该 API 不会将本地时间转换为 UTC。
    • 示例 - 每周计划在 8 月 19 日周五导出并将 recurrencePeriod 设置为下午 2:00。 该 API 在 8 月 19 日周五下午 2:00 UTC 接收输入。 每周导出安排在每周五运行。
  • 在 Azure 门户中创建导出时,其开始日期时间会自动转换为等效的 UTC 时间。
    • 示例 - 每周的导出计划在 8 月 19 日周五,当地时间印度标准时间凌晨 2:00 (UTC+5:30) 从 Azure 门户进行。 该 API 在 8 月 18 日周四晚上 8:30 接收输入。 每周导出安排在每周四运行。

每次导出都会创建新文件,因此旧的导出不会被覆盖。

为多个订阅创建导出

可以使用管理组在单个容器中聚合订阅成本信息。 导出支持企业协议的管理组范围,但不支持 Microsoft 客户协议或其他订阅类型的管理组范围。 管理组导出中也不支持多种货币。

管理组范围内的导出仅支持使用费。 不支持购买,包括预留和节省计划。 也不支持摊销成本报表。 从 Azure 门户为管理组范围创建导出时,不会显示指标字段,因为它默认为使用类型。 使用 REST API 创建管理组范围导出时,请选择 ExportType 作为 Usage

  1. 如果尚未创建管理组,请创建一个,并为其分配订阅。
  2. 在成本分析中,将范围设置为管理组,并选择“选择此管理组”。 显示“选择此管理组”选项的屏幕截图。
  3. 在范围内创建导出,获取管理组中订阅的成本管理数据。 显示具有管理组范围的“新建导出”选项的屏幕截图。

大型数据集的文件分区

如果你有 Microsoft 客户协议、Microsoft 合作伙伴协议或企业协议,则可以启用导出将文件分块到多个较小的文件分区中,以帮助进行数据引入。 首次配置导出时,请将“文件分区”设置设置为“启用” 。 默认情况下设置为“关闭”。

显示“文件分区”选项的屏幕截图。

如果没有 Microsoft 客户协议、Microsoft 合作伙伴协议或企业协议,就不会看到“文件分区”选项。

资源组或管理组范围目前不支持分区。

更新现有导出以使用文件分区

如果你有现有导出,并且想要设置文件分区,请新建导出。 文件分区仅适用于最新的导出版本。 创建的使用情况文件中的某些字段可能有一些细微更改。

如果对现有导出启用文件分区,则可能会在文件输出中看到字段的细微更改。 任何更改都是由最初设置后对导出进行的更新产生的。

分区输出

启用文件分区后,你将获得导出中的每个数据分区的文件以及 _manifest.json 文件。 清单包含完整数据集的摘要,以及其中每个文件分区的信息。 每个文件分区都有标题,只包含完整数据集的一个子集。 若要处理完整的数据集,必须引入导出的每个分区。

下面是 _manifest.json 示例清单文件。

{
  "manifestVersion": "2021-01-01",
  "dataFormat": "csv",
  "blobCount": 1,
  "byteCount": 160769,
  "dataRowCount": 136,
  "blobs": [
    {
      "blobName": "blobName.csv",
      "byteCount": 160769,
      "dataRowCount": 136,
      "headerRowCount": 1,
      "contentMD5": "md5Hash"
    }
  ]
}

导出版本

在 Azure 门户中或使用 API 创建计划导出后,该导出将始终在创建时使用的导出版本上运行。 Azure 将你之前创建的导出保留在相同版本中,除非你更新它。 如果导出版本发生更改,这样做会阻止费用更改和 CSV 字段更改。 导出功能随着时间而变化,字段名称有时也会更改,还会添加新的字段。

如果你想要使用最新的可用数据和字段,建议在 Azure 门户中创建新的导出。 若要将现有导出更新到最新版本,请在 Azure 门户中或者使用最新版的导出 API 来更新它。 如果更新现有导致,则你可能会在字段中看到细微差异,而且之后生成的文件也可能产生费用。

验证收集的数据

可以轻松验证正在收集的成本管理数据,并使用 Azure 存储资源管理器查看导出的 CSV 文件。

在导出列表中,选择存储帐户名称。 在存储帐户页上,选择“在资源管理器中打开”。 如果看到确认框,选择“是”,即可在 Azure 存储资源管理器中打开该文件。

显示“存储帐户”页的屏幕截图,其中显示示例信息和“在资源管理器中打开”链接。

在存储资源管理器中,导航到你想要打开的容器,并选择与当前月份相对应的文件夹。 然后将显示 CSV 文件列表。 选择一个文件,然后选择“打开”。

显示存储资源管理器中的示例信息的屏幕截图。

该文件将通过所设置的用于打开 CSV 文件扩展名的程序或应用程序打开。 下面是 Excel 中的一个示例。

显示 Excel 中导出的 CSV 数据的屏幕截图。

下载导出的 CSV 数据文件

若要下载 CSV 文件,请浏览到 Azure 存储资源管理器中的文件并下载该文件。

查看导出运行历史记录

你可以通过在导出列表页中选择单个导出来查看计划导出的运行历史记录。 导出列表页还提供了快速访问,可查看先前、下次以及将来导出的运行时间。 下面是显示运行历史记录的示例。

屏幕截图显示“导出”窗格。

选择导出以查看运行历史记录。

屏幕截图显示导出的运行历史记录。

导出每月前五天每天运行两次

创建每日导出后,每月前五天每天有两次运行。 执行第一次运行并创建包含当前月份成本数据的文件。 这是可在运行历史记录中看到的运行。 也会执行第二次运行以创建一个包含上个月所有成本的文件。 第二次运行当前在运行历史记录中不可见。 Azure 执行第二次运行,以确保过去一个月的最新文件包含发票上显示的所有费用。 之所以运行,是因为在某些情况下,潜在使用量和费用会在日历月结束后 72 小时内包含在发票中。 要详细了解成本管理使用情况数据更新,请参阅成本和使用情况数据更新和保留

注意

在当前月 1 日至 5 日之间创建的每日导出不会生成上一个月的数据,因为导出的日程安排会从创建日期开始计算。

从其他系统访问导出的数据

导出成本管理数据的用途之一是从外部系统访问数据。 你可能使用的是仪表板系统或其他财务系统。 此类系统各不相同,因此,只通过一个示例说明并不能解决实际问题。 但是,你可以在 Azure 存储简介中开始学习如何访问应用程序中的数据。

导出常见问题解答

下面是有关导出的一些常见问题和解答。

使用 Microsoft Excel 打开导出的成本文件时,为何会看到乱码字符?

如果在 Excel 中看到乱码字符并且使用亚洲语言(如日语或中文),可以使用以下步骤解决此问题:

对于新版本的 Excel:

  1. 打开 Excel。
  2. 选择顶部的“数据”选项卡。
  3. 选择“从文本/CSV”选项显示 Excel 的“自文本/CSV”选项的屏幕截图。
  4. 选择要导入的 CSV 文件。
  5. 在下一个框中,将“文件源”设置为 65001: Unicode (UTF-8)显示 Excel“文件源”选项的屏幕截图。
  6. 选择“加载”。

对于较旧版本的 MS Excel:

  1. 打开 Excel。
  2. 选择顶部的“数据”选项卡。
  3. 选择“从文本”选项,然后选择要导入的 CSV 文件
  4. Excel 将显示“文本导入向导”。
  5. 在该向导中,选择“带分隔符”选项
  6. 在“文件源”字段中,选择 65001 : Unicode (UTF-8)
  7. 选择下一步
  8. 接下来,选择“逗号”选项,然后选择“完成”
  9. 在出现的对话框中,选择“确定”

为什么导出的文件中的聚合成本与成本分析中显示的成本不同?

导出的文件中的聚合成本与成本分析中显示的成本之间可能存在差异。 如果用于读取和聚合总成本的工具会截断小数值,则可能出现这种差异。 此问题在 Power BI 和 Microsoft Excel 等工具中比较常见。

使用 Power BI

请检查在将成本值转换为整数时是否删除了小数位数。 丢失小数值可能会导致精度损失和聚合的成本出现误报。

要在 Power BI 中手动将列转换为小数,请执行以下步骤:

  1. 转到“”视图。
  2. 选择转换数据
  3. 右键单击所需的列。
  4. 将类型更改为“小数”。

使用 Microsoft Excel

打开 .csv 或 .txt 文件时,如果 Excel 检测到即将发生自动数据转换,可能会显示警告消息。 出现提示时,选择“转换”选项,以确保以数字而不是文本形式存储数字。 它可确保正确的聚合总计数。 有关详细信息,请参阅在 Windows 和 Mac 版 Excel 中控制数据转换

显示“转换”对话框的屏幕截图。

如果未使用正确的转换,则会出现一个绿色三角形,并显示“Number Stored as Text”错误。 此错误可能会导致费用聚合不正确,从而引起成本分析中的差异。

显示“将数字存储为文本”错误的屏幕截图。

后续步骤

在本教程中,你了解了如何执行以下操作:

  • 创建每日导出
  • 验证收集的数据

进入下一个教程,通过识别闲置和未充分利用的资源来优化和提高效率。