如何在 FinOps 中心处理数据
FinOps 中心执行许多数据处理活动,以清理、规范化和优化数据。 以下部分演示了数据如何从成本管理流向中心实例。
范围设置
范围是云资源和帐户层次结构中的一个级别,提供对成本、使用情况和碳数据的访问权限。 对于 FinOps 中心,我们通常建议使用企业协议(EA)计费帐户或Microsoft 客户协议(MCA)计费配置文件,但任何云范围都足以用于基本分析。 主要关注的是是否需要价格和预留数据,因为成本管理仅公开 EA 计费帐户和 MCA 计费配置文件的数据。
FinOps 中心支持通过手动配置成本管理导出或授予 FinOps 中心代表你管理范围的权限来配置范围。 托管范围是在中心存储的 config/settings.json 文件中配置的。 该信息描述了将新的托管范围添加到此文件中时会发生什么情况。 手动配置成本管理导出的非托管范围不需要其他设置。
- 更新settings.json文件时,将运行config_SettingsUpdated触发器。
- config_ConfigureExports管道为添加的任何新范围创建新的导出。
数据引入
数据引入可以分为两个部分:
- 将数据导出到存储。
- 中心处理和引入数据。
对于托管范围,中心执行以下步骤:
- config_DailySchedule和config_MonthlySchedule触发器按各自的计划运行,以启动数据引入。
- config_StartExportProcess管道获取正在运行的计划适用的导出。
- config_RunExportJobs管道执行每个所选导出。
- 成本管理将 原始成本详细信息导出到 msexports 容器。 了解详细信息。
运行导出后,无论托管还是非托管,中心都执行以下步骤:
- 将 文件添加到存储时,msexports_ExecuteETL 管道将启动提取-转换加载(ETL)过程。
- msexports_ETL_ingestion管道将数据转换为 parquet 格式,并使用可缩放的文件结构将其移动到引入容器。 了解详细信息。
- Power BI 或其他工具从 引入 容器读取数据。
关于引入
FinOps 中心依赖于引入容器中的特定文件夹路径:
ingestion/{dataset}/{yyyy}/{mm}/{scope-id}
ingestion
是数据管道保存数据的容器。{dataset}
是导出的数据集类型。{month}
是格式化为yyyyMM
的导出数据的年份和月份。{scope-id}
应为数据所来自的范围的完全限定资源 ID。
如果需要使用中心监视非 Azure 数据,请将数据 转换为 FOCUS 并将其放入 引入 容器。 请注意,此过程未在最新版本中显式测试。 如果遇到任何问题, 请创建问题。
关于导出
FinOps 中心使用成本管理导出来获取成本数据。 成本管理控制 msexports 容器中导出数据的文件夹结构。 典型的路径如下所示:
{container}/{path}/{date-range}/{export-name}/{export-time}/{guid}/{file}
从 0.4 起,FinOps 中心不依赖于文件路径。 中心利用清单文件来标识范围、数据集、月份等。中心路径的唯一重要部分是容器,该容器必须是 msexports。
警告
- 不要将数据导出到 引入 容器。 导出的 CSV 必须 发布到 msexports 容器,才能由中心引擎处理。
- 若要引入自定义数据,请将 FOCUS 对齐的 parquet 文件保存在引入容器中,以便 FinOps 工具包 Power BI 报表按预期工作。
导出清单可以使用 API 版本更改。 下面是 API 版本 2023-07-01-preview
的示例:
{
"exportConfig": {
"exportName": "<export-name>",
"resourceId": "/<scope>/providers/Microsoft.CostManagement/exports/<export-name>",
"dataVersion": "<dataset-version>",
"apiVersion": "<api-version>",
"type": "<dataset-type>",
"timeFrame": "OneTime|TheLastMonth|MonthToDate",
"granularity": "Daily"
},
"deliveryConfig": {
"partitionData": true,
"dataOverwriteBehavior": "CreateNewReport|OverwritePreviousReport",
"fileFormat": "Csv",
"containerUri": "<storage-resource-id>",
"rootFolderPath": "<path>"
},
"runInfo": {
"executionType": "Scheduled",
"submittedTime": "2024-02-03T18:33:03.1032074Z",
"runId": "af754a8e-30fc-4ef3-bfc6-71bd1efb8598",
"startDate": "2024-01-01T00:00:00",
"endDate": "2024-01-31T00:00:00"
},
"blobs": [
{
"blobName": "<path>/<export-name>/<date-range>/<export-time>/<guid>/<file-name>.csv",
"byteCount": ###
}
]
}
FinOps 中心使用以下属性:
exportConfig.resourceId
以标识范围。exportConfig.type
标识数据集类型。exportConfig.dataVersion
标识数据集版本。runInfo.startDate
标识导出的月份。
FinOps 中心支持以下数据集类型、版本和 API 版本:
- FocusCost:
1.0
,1.0-preview(v1)
- PriceSheet:
2023-05-01
- ReservationDetails:
2023-03-01
- ReservationRecommendations:
2023-05-01
- ReservationTransactions:
2023-05-01
- API 版本:
2023-07-01-preview
FinOps 中心 v0.4-0.5
以下信息介绍了如何在 FinOps 中心 v0.4-0.5 中处理数据。
v0.4-0.5 中的范围设置
- 更新settings.json文件时,将运行config_SettingsUpdated触发器。
- config_ConfigureExports管道为添加的任何新范围创建新的导出。
v0.4-0.5 中的数据引入
对于托管范围:
- config_DailySchedule和config_MonthlySchedule触发器按各自的计划运行,以启动数据引入。
- config_ExportData管道获取正在运行的计划适用的导出。
- config_RunExports管道执行每个所选导出。
- 成本管理将 原始成本详细信息导出到 msexports 容器。 有关详细信息,请参阅 关于 v04-05 中的导出。
导出完成后,对于托管和非托管作用域:
- 将 文件添加到存储时,msexports_ExecuteETL 管道将启动提取-转换加载(ETL)过程。
- msexports_ETL_ingestion管道将数据转换为标准架构,并将采用 parquet 格式的原始数据保存到引入容器。 有关详细信息,请参阅 关于 v04-05 中的引入。
- Power BI 从 引入 容器读取成本数据。
关于 v0.4-0.5 中的引入
FinOps 中心依赖于引入容器中的特定文件夹路径:
ingestion/{dataset}/{yyyy}/{mm}/{scope-id}
ingestion
是数据管道保存数据的容器。{dataset}
是导出的数据集类型。{month}
是格式化为yyyyMM
的导出数据的年份和月份。{scope-id}
应为数据所来自的范围的完全限定资源 ID。
如果需要使用中心监视非 Azure 数据,请将数据 转换为 FOCUS 并将其放入 引入 容器。 在最新版本中未显式测试此过程。 如果遇到任何问题, 请创建问题。
关于 v0.4-0.5 中的导出
FinOps 中心使用成本管理导出来获取成本数据。 成本管理控制 msexports 容器中导出数据的文件夹结构。 典型的路径如下所示:
{container}/{path}/{date-range}/{export-name}/{export-time}/{guid}/{file}
从 0.4 起,FinOps 中心不依赖于文件路径。 中心利用清单文件来标识范围、数据集、月份等。 中心路径的唯一重要部分是容器,该容器必须是 msexports。
注意
不要将数据导出到 引入 容器。 导出的 CSV 必须 发布到 msexports 容器,才能由中心引擎处理。
若要引入自定义数据,请将 FOCUS 对齐的 parquet 文件保存在引入容器中,以便 FinOps 工具包 Power BI 报表按预期工作。
导出清单可以使用 API 版本更改。 下面是 API 版本 2023-07-01-preview
的示例:
{
"exportConfig": {
"exportName": "<export-name>",
"resourceId": "/<scope>/providers/Microsoft.CostManagement/exports/<export-name>",
"dataVersion": "<dataset-version>",
"apiVersion": "<api-version>",
"type": "<dataset-type>",
"timeFrame": "OneTime|TheLastMonth|MonthToDate",
"granularity": "Daily"
},
"deliveryConfig": {
"partitionData": true,
"dataOverwriteBehavior": "CreateNewReport|OverwritePreviousReport",
"fileFormat": "Csv",
"containerUri": "<storage-resource-id>",
"rootFolderPath": "<path>"
},
"runInfo": {
"executionType": "Scheduled",
"submittedTime": "2024-02-03T18:33:03.1032074Z",
"runId": "af754a8e-30fc-4ef3-bfc6-71bd1efb8598",
"startDate": "2024-01-01T00:00:00",
"endDate": "2024-01-31T00:00:00"
},
"blobs": [
{
"blobName": "<path>/<export-name>/<date-range>/<export-time>/<guid>/<file-name>.csv",
"byteCount": ###
}
]
}
FinOps 中心使用以下属性:
exportConfig.resourceId
以标识范围。exportConfig.type
标识数据集类型。exportConfig.dataVersion
标识数据集版本。runInfo.startDate
标识导出的月份。
FinOps 中心支持以下数据集类型、版本和 API 版本:
- FocusCost:
1.0
,1.0-preview(v1)
- PriceSheet:
2023-05-01
- ReservationDetails:
2023-03-01
- ReservationRecommendations:
2023-05-01
- ReservationTransactions:
2023-05-01
- API 版本:
2023-07-01-preview
FinOps hubs v0.2-0.3
以下步骤概述了使用 FinOps 中心版本 0.2-0.3 导出和处理成本数据的过程:
- 成本管理将 原始成本详细信息导出到 msexports 容器。 有关详细信息,请参阅 “关于导出”。
- 将 文件添加到存储时,msexports_ExecuteETL 管道将启动提取-转换加载(ETL)过程。
- msexports_ETL_ingestion管道在引入容器中以 parquet 格式保存导出的数据。 有关详细信息,请参阅 “关于导出”。
- Power BI 从 引入 容器读取成本数据。
FinOps hubs 0.2-0.3 使用导出路径来确定导出的范围和月份。 这一点很重要,因为路径的更新可能会中断数据管道。 为了避免此问题,建议更新到 FinOps hubs 0.4。 预期路径应模拟:
msexports/{scope-id}/{export-name}/{date-range}/{export-time}/{guid}/{file}
msexports
是导出中指定的容器。{scope-id}
是导出中指定的文件夹路径。中心 0.3 及更早版本使用此标识数据的来源范围。 建议使用范围 ID,但可以使用任何值。 示例范围 ID 包括:
作用域类型 示例值 订阅 /subscriptions/###
资源组 /subscriptions/###/resourceGroups/###
计费帐户 /providers/Microsoft.Billing/billingAccounts/###
计费配置文件 /providers/Microsoft.Billing/billingAccounts/###/billingProfiles/###
{export-name}
是导出的名称。中心将忽略此文件夹。
{date-range}
是正在导出的日期范围数据。中心 0.3 及更早版本使用此标识月份。 此文件夹的格式为
yyyyMMdd-yyyyMMdd
. Hubs 0.4 改用清单。{export-time}
是导出运行时的时间戳。中心将忽略此情况。 此文件夹的格式为
yyyyMMddHHmm
.{guid}
是唯一的 GUID,并不总是存在。中心将忽略此情况。 成本管理并不总是包含此文件夹。 是否包含它取决于用于创建导出的 API 版本。
{file}
是清单或导出的数据。版本 0.3 及更早版本忽略清单文件,仅监视 *.csv 文件。 在将来的版本中,中心将监视清单。
FinOps 中心 v0.1
以下步骤概述了使用 FinOps 中心版本 0.1 导出和处理成本数据的过程:
- 成本管理将 原始成本详细信息导出到 msexports 容器。
- msexports_transform管道将 parquet 格式的原始数据保存到引入容器。
- Power BI 从 引入 容器读取成本数据。