本文帮助你使用成本管理中的导出功能定期导出大量数据。 建议通过导出的方式来检索未聚合的成本数据。 特别是当使用情况文件太大而无法使用成本详细信息 API 可靠地调用和下载时。 导出的数据放置在所选Azure 存储帐户中。 因此,可以将其加载到你自己的系统中,并按需对其进行分析。 若要在 Azure 门户中配置导出,请参阅 Export 数据。
如果要在各个范围自动执行导出,下一部分的示例 API 请求是一个良好的起点。 可以使用导出 API 创建自动导出,作为常规环境配置的一部分。 自动导出有助于确保你拥有所需的数据。 在扩展Azure使用时,可以在自己的组织系统中使用。
常用导出配置
在创建第一个导出之前,请考虑你的方案和启用该方案所需的配置选项。 请考虑以下导出选项:
- Recurrence - 确定导出作业的运行频率以及何时将文件放入Azure 存储帐户。 你可以选择“每天”、“每周”和“每月”。 尝试配置您的重复计划,使其与组织内部系统使用的数据导入任务匹配。
- 重复周期 - 确定导出多长时间有效。 文件仅在重复周期内导出。
- 时间范围 - 确定在给定运行中由导出生成的数据量。 常用选项是 MonthToDate 和 WeekToDate。
- StartDate - 配置何时开始导出计划。 从 StartDate 开始创建导出文件,随后会根据您的重复设置进行周期性地更新。
-
类型 - 导出类型分为以下三种:
- ActualCost - 显示指定时间段内的总使用量和费用,这些总使用量和费用已累积显示在帐单上。
- AmortizedCost - 展示指定时间段内的总使用量和成本,并将适用的预留购买成本进行均摊。
- 用法 - 2020 年 7 月 20 日之前创建的所有导出均为“使用情况”类型。 将所有安排好的导出更新为“实际成本”或“摊销成本”。
- 列 - 定义要包含在导出文件中的数据字段。 它们与成本详细信息 API 中可用的字段相对应。
- 分区 - 如果数据集较大,并且希望将其分解为多个文件,请将此选项设置为 true。 这使得数据引入更快、更轻松。 有关分区的详细信息,请参阅大型数据集的文件分区。
创建订阅的当月至今每日导出文件
请求 URL:PUT https://management.chinacloudapi.cn/{scope}/providers/Microsoft.CostManagement/exports/{exportName}?api-version=2020-06-01
{
"properties": {
"schedule": {
"status": "Active",
"recurrence": "Daily",
"recurrencePeriod": {
"from": "2020-06-01T00:00:00Z",
"to": "2020-10-31T00:00:00Z"
}
},
"format": "Csv",
"deliveryInfo": {
"destination": {
"resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/MYDEVTESTRG/providers/Microsoft.Storage/storageAccounts/{yourStorageAccount} ",
"container": "{yourContainer}",
"rootFolderPath": "{yourDirectory}"
}
},
"definition": {
"type": "ActualCost",
"timeframe": "MonthToDate",
"dataSet": {
"granularity": "Daily",
"configuration": {
"columns": [
"Date",
"MeterId",
"ResourceId",
"ResourceLocation",
"Quantity"
]
}
}
}
}
复制大型Azure存储 blob
可以使用 Azure Cost Management 将您的 Azure 使用情况详细信息作为 blob 导出到 Azure 存储帐户中。 生成的 Blob 大小可能超过数 GB。 成本管理团队与Azure 存储团队合作,测试复制大型Azure存储数据块。 以下部分说明了这些结果。 你可以期望在将存储 blob 从一个 Azure 区域复制到另一个区域时获得类似的结果。
同步传输特征
下面是与 DML 配合使用的服务端同步传输的一些特征,这些特征与该传输形式的用法有关:
- DML 可以传输单个 Blob 或目录。 传输目录时,可以使用搜索模式来匹配 Blob 前缀。
- 块状 blob 的传输是并行进行的。 当传输过程接近结束时,所有内容都会完成。 各个 Blob 块被并行传输。
- 传输在客户端上以异步方式执行。 可以通过方法回调(可在 TransferContext 对象中定义)定期获取传输状态。
- 传输功能在传输过程中将创建检查点,并公开 TransferCheckpoint 对象。 该对象通过 TransferContext 对象表示最新的检查点。 如果在取消/中止传输之前保存了 TransferCheckpoint,则传输可以从最多七天内的检查点恢复。 传输可以从任何检查点(而不仅仅是最新检查点)恢复。
- 如果在未实施检查点功能的情况下传输客户端进程被终止并重启:
- 在完成任何 Blob 传输之前,传输将重启。
- 在完成某些 Blob 之后,只对未完成的 Blob 重启传输。
- 暂停客户端执行会暂停传输。
- 发生暂时性故障时,Blob 传输功能可使客户端独善其身。 例如,发生存储帐户限流通常不会导致传输失败,而只会减慢传输速度。
- 服务端传输对其 CPU 和内存资源的使用较少,并且只消耗一部分网络带宽和连接。
异步传输特征
可以结合 CopyMethod.ServiceSideAsyncCopy 选项调用 TransferManager.CopyDirectoryAsync() 方法。 从客户端角度看,异步传输的工作原理与同步传输机制类似,不过操作时存在以下差异:
- 传输速率要比类似的同步传输慢(通常为 10 MB/s 或更慢)。
- 即使客户端进程终止,传输也仍会继续。
- 尽管支持检查点,但使用 TransferCheckpoint 恢复传输并非从检查点时间恢复,而是从传输的当前状态恢复。
测试摘要
Azure blob 存储使用其服务端同步传输功能支持高全局传输速率。 使用.NET应用程序中的功能非常简单,只需使用数据移动库。 成本管理导出能够在一小时内,将数百 GB 的数据可靠地复制到位于任何位置的存储帐户。
相关内容
- 请参阅 Azure 数据存储移动库的源代码。
- 使用数据移动库传输数据。
- 参阅 AzureDmlBackup 示例应用程序源代码示例。
- 阅读 使用 Azure Blob 存储 的高吞吐量。