在 FinOps 中樞處理數據的方式
FinOps 中樞會執行許多數據處理活動,以清除、正規化及優化數據。 下列各節說明如何將數據從成本管理流向中樞實例。
範圍設定
範圍是雲端資源和帳戶階層內的層級,可讓您存取成本、使用量和碳數據。 對於 FinOps 中樞,我們通常建議使用 Enterprise 合約 (EA) 計費帳戶或 Microsoft 客戶合約 (MCA) 計費配置檔,不過任何雲端範圍都足以進行基本分析。 主要考慮是否需要價格和保留數據,因為成本管理只會公開 EA 計費帳戶和 MCA 帳單配置檔的數據。
FinOps 中樞支援手動設定成本管理匯出,或授與 FinOps 中樞代表您管理範圍的存取權來設定範圍。 受控範圍是在中樞記憶體的 config/settings.json 檔案中設定。 這項資訊描述將新的受控範圍新增至此檔案時會發生什麼情況。 非受控範圍,其中成本管理導出是手動設定的,不需要其他設定。
- config_SettingsUpdated觸發程式會在更新settings.json檔案時執行。
- config_ConfigureExports管線會為新增的任何新範圍建立新的導出。
資料提取
下列描述 FinOps 中樞內的端對端資料擷取程式:
- (選擇性)如果使用 Managed 匯出:
- config_DailySchedule和config_MonthlySchedule觸發程式會在其各自的排程上執行,以啟動數據擷取。
- config_StartExportProcess管線會取得正在執行的排程適用的導出。
- config_RunExportJobs管線會執行每個選取的導出。
- 成本管理會將原始成本詳細數據匯出至 msexports 容器。 深入了解。
- 當檔案新增至 msexports 容器時,msexports_ExecuteETL 管線會將擷取-轉換-載入(ETL)流程的管線排入佇列。
- msexports_ETL_ingestion管線會將數據轉換成 parquet 格式,並使用可調整的檔案結構將其移至擷取容器。 深入了解。
- (選擇性)如果使用 Azure 數據總管:
- 當 manifest.json 檔案新增至 擷取 容器時,ingestion_ExecuteETL 管線會將 Data Explorer 的擷取管線加入佇列。
- 如果使用的自定義數據集不屬於成本管理匯出範圍,請在目標導入資料夾中建立一個空的 manifest.json 檔案,等到所有其他檔案完全準備好後再進行(檔案仍在上傳時請勿新增此檔案)。 manifest.json 檔案未剖析,且可能是空的。 唯一的用途是指出已新增此導入作業的所有檔案。
-
ingestion_ETL_dataExplorer 管線會將數據匯入至資料探索工具中的
{dataset}_raw
資料表。- 數據集名稱是 嵌入 容器中的第一個資料夾。
- 所有原始數據表都在 Data Explorer 中的 擷取 資料庫中。
- 將數據擷取到數據總管中的原始數據表時,更新原則會使用
{dataset}_transform_v1_0()
函式將數據複製到對應的{dataset}_final_v1_0
數據表,以將所有數據正規化以對齊 FOCUS 1.0。 - 在資料匯入之後,ingestion_ETL_dataExplorer 資料處理流程會進行一些清理工作,包括刪除已超過數據保存期限的最終資料表中的資料。
- 從 0.7 開始,原始數據表中的數據保留會自動由數據總管套用,但最終數據表中的數據保留只會在執行擷取時套用。 如果數據擷取停止,將不會清除歷程記錄數據。
- 您可以在範本部署期間設定數據保留,或在記憶體中的 組態/settings.json 檔案中手動設定。
- 當 manifest.json 檔案新增至 擷取 容器時,ingestion_ExecuteETL 管線會將 Data Explorer 的擷取管線加入佇列。
- 報告和其他工具,例如 Power BI,會從 Data Explorer 或 擷取 容器中讀取數據。
- Data Explorer 中的數據可以從 中樞 資料庫中讀取。
- 使用
{dataset}()
函式來利用最新的架構。- 這對於快速探索很有用,但可能會在更新 FinOps 中樞實例時引入重大變更。
- 使用
{dataset}_v1_0()
函式來利用FOCUS 1.0架構。- 版本設定的函式架構不應該隨著時間而變更,但如果數據源變更這些值,值可能會變更。
- 請避免使用 引入 資料庫進行查詢。 雖然未明確禁止,但這應該大多被視為預備和數據準備的內部區域。
- 使用
- 您可以從
ingestion/<dataset>/<year>/<month>/<scope-path>
讀取記憶體中的數據。- 數據應該以遞歸方式從數據集資料夾讀取,並選擇性地視需要包含更多數據,以取得特定性。
- 每個數據集資料夾中的檔案可能會根據數據源和帳戶類型有不同的架構。 如果將數據導入到其他系統,如 Microsoft Fabric,請準備好轉換數據。
- 由於效能原因,通常不建議從記憶體讀取。
- Data Explorer 中的數據可以從 中樞 資料庫中讀取。
關於資料瀏覽器匯入
數據匯入至資料探索器時,擷取 資料庫中的個別 {dataset}_transform_v1_0()
函式會進行一些轉換。 每個數據集都有一組不同的轉換規則,這些規則涵蓋於下列各節中。
如需查看針對基礎成本管理數據集的變更請求、正在考慮的想法以及開放問題清單,請參閱 問題 #1111。 如果您發現有機會解決任何其他問題,或表達您對任何特定問題的支援,請對該問題留下意見。
成本數據轉換
支援的資料集:
- Microsoft FocusCost:
1.0r2
、1.0
、1.0-preview(v1)
在設計中已考慮下列數據集,但尚未進行測試。 若要擷取這些數據集,請建立數據管線(或外部進程),將 parquet 檔案推送至記憶體中的 ingestion/Costs/yyyy/mm/{scope-path}
資料夾。
{scope-path}
可以是任何唯一的路徑,例如 aws/123
或 gcp/projects/foo
。 唯一的需求是確保每個範圍都位於不同的資料夾中。 複製外部內容之後,也建立 manifest.json 檔案來觸發數據總管擷取。
- AWS FOCUS 1.0
- GCP FOCUS 1.0
- OCI FOCUS 1.0
變換:
- 將欄位名稱對齊至 FOCUS 1.0。
- 包含將FOCUS 1.0預覽轉換為1.0。
- 新增
x_IngestionTime
,以指出上次更新數據列的時間。 - 新增標記
x_SourceChanges
,以識別資料在中樞中何時發生變更。 - 未指定時,更新
ProviderName
和PublisherName
。 - 新增
x_SourceName
、x_SourceProvider
、x_SourceType
和x_SourceVersion
,以識別原始的內嵌數據集。 - 請依據價位表補齊遺漏的
ListCost
、ListUnitPrice
、ContractedCost
和ContractedUnitPrice
值。- 這個過程需要在成本之前匯出價格。 這可能會導致當月第一天的價格缺失,直到價格被接收為止。
- 當成本管理中的錯誤導致
ContractedCost
設定錯誤時,進行修正。 - 請將
ResourceName
和x_ResourceGroupName
轉成小寫,以解決分組和篩選過程中因大小寫不一致而產生的問題。 - 根據帳戶類型新增
x_BillingAccountAgreement
。
價格數據轉換
支援的資料集:
- Microsoft PriceSheet:
2023-05-01
(EA 和 MCA)
變換:
- 將欄位名稱對齊至 FOCUS 1.0。
- 包括強制執行EA和MCA資料行名稱一致性。
- 不會變更基礎值,這可能會因EA和MCA而有所不同。
- 將
x_SkuTerm
ISO 持續時間轉換為數個月,以符合成本詳細數據。- 我們正在等待FOCUS做出決定,以確定如何定義期間,然後再將其改為ISO或其他格式。
- 以隨選對等專案取代
ContractedUnitPrice
作為節省計畫的使用。 - 設定
ListUnitPrice
將儲蓄計畫的使用量設為按需等值。 - 將
SkuPriceIdv2
新增為比目前成本詳細數據更精確的SkuPriceId
值。 - 新增
x_IngestionTime
,以指出上次更新數據列的時間。 - 新增
x_CommitmentDiscountSpendEligibility
與x_CommitmentDiscountUsageEligibility
。 - 將
x_PricingUnitDescription
展開至PricingUnit
,並x_PricingBlockSize
。 - 根據帳戶類型新增
x_BillingAccountAgreement
。 - 將
x_EffectivePeriodEnd
變更為獨佔結束日期。 - 新增
x_EffectiveUnitPriceDiscount
、x_ContractedUnitPriceDiscount
和x_TotalUnitPriceDiscount
,以匯總每個 SKU 的可用折扣。 - 新增
x_EffectiveUnitPriceDiscountPercent
、x_ContractedUnitPriceDiscountPercent
和x_TotalUnitPriceDiscountPercent
,以摘要說明每個 SKU 的折扣百分比。 - 新增
x_SourceName
、x_SourceProvider
、x_SourceType
和x_SourceVersion
,以識別原始的內嵌數據集。
推薦系統數據轉換
支援的資料集:
- Microsoft ReservationRecommendations:
2023-05-01
(EA 和 MCA)
變換:
- 將欄位名稱對齊至 FOCUS 1.0。
- 包括確保EA和MCA欄位名稱的一致性。
- 不會變更基礎值,這可能會因EA和MCA而有所不同。
- 新增
x_SourceName
、x_SourceProvider
、x_SourceType
和x_SourceVersion
,以識別原始的內嵌數據集。
交易資料轉換
支援的資料集:
- Microsoft ReservationTransactions:
2023-05-01
(EA 和 MCA)
變換:
- 將欄位名稱對齊 FOCUS 1.0。
- 包括強制執行EA和MCA欄位名稱的一致性。
- 不會變更基礎值,這可能會因EA和MCA而有所不同。
- 新增
x_SourceName
、x_SourceProvider
、x_SourceType
和x_SourceVersion
,以識別原始的內嵌數據集。
承諾折扣使用量數據轉換
支援的資料集:
- Microsoft ReservationDetails:
2023-03-01
(EA 和 MCA)
變換:
- 將欄位名稱對齊 FOCUS 1.0。
- 包括確保EA和MCA欄位名稱的一致性。
- 不會變更基礎值,這可能會因EA和MCA而有所不同。
- 新增
ResourceType
資料行,其中包含資源類型顯示名稱。 - 新增
ServiceName
、ServiceCategory
和x_ServiceModel
欄。 - 將 “NA” 取代為 null,
x_CommitmentDiscountNormalizedGroup
。 - 根據 FOCUS 1.1 新增
x_CommitmentDiscountQuantity
。
關於引入容器
FinOps 中心依賴 併入 儲存容器中的特定資料夾路徑和檔案名稱格式:
ingestion/{dataset}/{date-folder-path}/{scope-id-path}/{ingestion-id}__{original-file-name}.parquet
-
ingestion
是數據管線儲存數據的容器。 -
{dataset}
是匯出的數據集類型。 如果匯入至 Azure 數據總管,這必須具有相符、區分大小寫的「_raw」數據表(例如「Costs_raw」)。 FinOps 中樞在此版本中支援下列數據集:- CommitmentDiscountUsage - 成本管理保留詳細數據匯出。
- 成本 - FOCUS 成本和使用量數據。
- 價格 - 成本管理價位表導出。
- 建議 - 成本管理預留建議匯出。
- 交易 - 成本管理保留交易匯出。
- 若要匯入自定義數據集,請在 擷取 資料庫中建立相符的
{dataset}_raw
數據表和 parquet 匯入對應。
-
{date-folder-path}
可以是一或多個資料夾,指出應該保留多少個內嵌數據集。 例子:-
all
(或任何佔位符)不追蹤數據集的歷程記錄。 每個擷取都會取代先前的數據。 在以儲存為基礎的 Power BI 報表中不支援。 -
{yyyy}
作為匯出資料集的 4 位數年份,只保留每一年最新的擷取。 在儲存裝置型的 Power BI 報表中不支援。 -
{yyyy}/{mm}
為導出數據集的 4 位數年份和 2 位數月份,以保留每個月的最新擷取。 -
{yyyy}/{mm}/{dd}
為導出數據集的 4 位數年份、2 位數月份和 2 位數的日期,以保留每日最新的擷取。 在儲存型 Power BI 報表中不支援。
-
-
{scope-id-path}
是數據所來自範圍的完整資源標識碼。 如果擷取非 Azure 數據,建議您根據數據範圍使用邏輯階層(例如“aws/{account-id}”、“gcp/{project-name}”、“oci/{component-id}/{component-id}”。 -
{ingestion-id}
是內嵌數據集的唯一標識符。 這可以是 GUID、時間戳或任何值,前提是它在所有擷取數據集的檔案中保持一致。 這個值是用來移除先前在相同資料夾路徑中內嵌的數據。 -
{original-file-name}
是要做為源檔名稱或其他標識符,以指出檔案中的數據來源。 此值僅供疑難解答之用。
完整資料夾路徑和擷取標識碼都是用來確保數據不會在記憶體或 Azure 資料總管中重複。 原始檔案名稱會新增至 Azure 數據總管的資料區段供疑難排解之用,但不會由 FinOps 中樞追蹤或使用。
如果您需要使用中樞來監視非 Azure 數據,請使用上述指引,將數據轉換成 FOCUS,並將其放入 擷取 容器。 請注意,這在最新版本中尚未明確測試。 如果您遇到任何問題,請 提交問題。
關於匯出
FinOps 中樞會利用成本管理導出來取得成本數據。 成本管理會控制 msexports 記憶體容器中匯出數據的資料夾結構。 一般路徑看起來如下:
{container}/{path}/{date-range}/{export-name}/{export-time}/{guid}/{file}
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 中樞會利用下列屬性:
-
eportConfig.resourceId
以識別範圍。 -
eportConfig.type
以識別數據集類型。 -
eportConfig.dataVersion
以識別數據集版本。 -
runInfo.startDate
以識別導出的月份。
FinOps 中樞支援下列數據集類型、版本和 API 版本:
- FocusCost:
1.0r2
、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.6
下列各節說明 FinOps 中樞 0.6 中的數據程式。
v0.6中的範圍設定
將新的受控範圍新增至中樞實例時,會發生下列步驟。 非受控範圍(手動設定成本管理導出)不需要在中樞進行任何設定。
- config_SettingsUpdated觸發程式會在更新settings.json檔案時執行。
- config_ConfigureExports管線會為新增的任何新範圍建立新的導出。
v0.6 中的數據擷取
數據擷取可以分成兩個部分:
- 將數據匯出至記憶體。
- 中樞會處理和內嵌數據。
針對受控範圍,中樞會執行下列步驟:
- config_DailySchedule和config_MonthlySchedule觸發程式會在其各自的排程上執行,以啟動數據擷取。
- config_StartExportProcess管線會取得正在執行的排程適用的導出。
- config_RunExportJobs管線會執行每個選取的導出。
- 成本管理會將原始成本詳細數據匯出至 msexports 容器。 深入了解。
- 當檔案新增至 msexports 容器時,msexports_ExecuteETL 管線會將擷取-轉換-載入(ETL)管線排入佇列。
- msexports_ETL_ingestion管線會將數據轉換成 parquet 格式,並使用可調整的檔案結構將其移至擷取容器。 深入了解。
- Power BI 或其他工具會從 擷取 容器讀取數據。
注意
Azure 數據總管的 Power BI 支援即將在未來的更新中推出。
執行導出之後,無論是Managed還是Unmanaged,中樞會執行下列步驟:
- 當 檔案新增至記憶體時,msexports_ExecuteETL 管線會啟動擷取-轉換載入 (ETL) 程式。
- msexports_ETL_ingestion管線會將數據轉換成 parquet 格式,並使用可調整的檔案結構將其移至擷取容器。 深入了解。
- Power BI 或其他工具會從 擷取 容器讀取數據。
關於 v0.6 中的資料導入
FinOps Hub 依賴 匯入 容器中的特定資料夾路徑和檔案名格式:
ingestion/{dataset}/{date-folder-path}/{scope-id-path}/{ingestion-id}__{original-file-name}.parquet
-
ingestion
是數據管線儲存數據的容器。 -
{dataset}
是匯出的數據集類型。 如果匯入至 Azure 資料總管,則必須有一個相符且區分大小寫的「_raw」資料表(例如「Costs_raw」)。 FinOps 中樞在此版本中支援下列數據集:- CommitmentDiscountUsage - 成本管理保留詳細數據匯出。
- 成本 - FOCUS 成本和使用量數據。
- 價格 - 成本管理價位表導出。
- 建議 - 成本管理保留建議匯出。
- 交易 - 成本管理預約交易匯出。
- 若要攝取自定義數據集,請在 攝取 資料庫中建立相符的
{dataset}_raw
數據表和 parquet 攝取對應。
-
{date-folder-path}
可以是一或多個資料夾,指出應該保留多少個內嵌數據集。 例子:-
all
(或任何佔位元)來不追蹤數據集的歷程記錄。 每個擷取都會取代先前的數據。 不支援以儲存裝置為基礎的 Power BI 報表。 -
{yyyy}
為匯出資料集的 4 位數年份,僅保留每年最新的匯入。 在儲存型 Power BI 報表中不支援。 -
{yyyy}/{mm}
為導出數據集的 4 位數年份和 2 位數月份,以維持每個月的最新匯入。 -
{yyyy}/{mm}/{dd}
為導出數據集的 4 位數年份、2 位數月份和 2 位數的日期,以保留每日最新的擷取。 在基於儲存的 Power BI 報表中不受支援。
-
-
{scope-id-path}
是數據所來自範圍的完整資源標識碼。 如果擷取非 Azure 數據,建議您根據數據範圍使用邏輯階層(例如“aws/{account-id}”、“gcp/{project-name}”、“oci/{component-id}/{component-id}”。 -
{ingestion-id}
是內嵌數據集的唯一標識符。 這可以是 GUID、時間戳或任何值,只要所有擷取數據集的檔案都一致。 這個值是用來移除先前在相同資料夾路徑中內嵌的數據。 -
{original-file-name}
是要做為源檔名稱或其他標識符,以指出檔案中的數據來源。 此值僅供疑難解答之用。
完整資料夾路徑和擷取標識碼都是用來確保數據不會在記憶體或 Azure 資料總管中重複。 原始檔案名稱已新增到 Azure Data Explorer 範疇以備疑難排解之用,但不會被 FinOps 中樞追蹤或使用。
如果您需要使用中樞來監視非 Azure 數據,請使用上述指引,將數據轉換成 FOCUS,並將其放入 擷取 容器。 請注意,這在最新版本中尚未專門測試。 如果您遇到任何問題,請 提出問題。
關於 v0.6 中的匯出
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>.<file-type>",
"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 和 v0.5 中處理數據。
v0.4-0.5 中的範圍設定
- config_SettingsUpdated觸發程式會在更新settings.json檔案時執行。
- config_ConfigureExports管線會為新增的任何新範圍建立新的導出。
v0.4-0.5 中的數據擷取
針對受控範圍:
- config_DailySchedule和config_MonthlySchedule觸發程式會在其各自的排程上執行,以啟動數據擷取。
- config_ExportData管線會取得正在執行的排程適用的導出。
- config_RunExports管線會執行每個選取的導出。
- 成本管理會將原始成本詳細數據匯出至 msexports 容器。 如需詳細資訊,請參閱 關於 v04-05 中的導出。
匯出完成後,針對 Managed 和 Unmanaged 範圍:
- 當 檔案新增至記憶體時,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}
必須是數據所來自範圍的完整資源標識碼。
如果您需要使用中樞來監視非 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 中樞 v0.2-0.3
下列步驟概述使用 FinOps 中樞 0.2-0.3 版導出和處理成本數據的程式:
- 成本管理會將原始成本詳細數據匯出至 msexports 容器。
- 當 檔案新增至記憶體時,msexports_ExecuteETL 管線會啟動擷取-轉換載入 (ETL) 程式。
- msexports_ETL_ingestion管線會在擷取容器中以 parquet 格式儲存匯出的數據。
- Power BI 會從 擷取 容器讀取成本數據。
FinOps 中樞 0.2-0.3 會使用匯出路徑來判斷導出的範圍和月份。 這個點很重要,因為路徑的更新可能會中斷數據管線。 若要避免此問題,建議您更新至 FinOps 中樞 0.4。 預期的路徑應該模仿:
msexports/{scope-id}/{export-name}/{date-range}/{export-time}/{guid}/{file}
-
msexports
是匯出上指定的容器。 -
{scope-id}
是匯出上指定的資料夾路徑。中樞 0.3 和更早版本會使用此來識別數據的來源範圍。 我們建議使用範圍標識碼,但可以使用任何值。 範例範圍識別碼包括:
範圍類型 範例值 訂用帳戶 /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 會從 擷取 容器讀取成本數據。