Verarbeitung von Daten in FinOps-Hubs
FinOps-Hubs führen viele Datenverarbeitungsaktivitäten aus, um Daten zu bereinigen, zu normalisieren und zu optimieren. In den folgenden Abschnitten wird gezeigt, wie Daten aus Kostenverwaltung in eine Hubinstanz fließen.
Bereichseinrichtung
Ein Bereich ist eine Ebene innerhalb der Cloudressourcen- und Kontohierarchie, die Zugriff auf Kosten-, Nutzungs- und Co2-Daten bietet. Für FinOps-Hubs empfehlen wir in der Regel die Verwendung von Konzernvertrag (EA)-Abrechnungskonten oder Microsoft-Kundenvereinbarung (MCA)-Abrechnungsprofilen, jedoch reicht jeder Cloudumfang für die grundlegende Analyse aus. Das Hauptproblem besteht darin, ob Preis- und Reservierungsdaten erforderlich sind, da die Kostenverwaltung nur die Daten für EA-Abrechnungskonten und MCA-Abrechnungsprofile verfügbar macht.
FinOps-Hubs unterstützen die Konfiguration von Bereichen durch manuelle Konfiguration von Kostenverwaltungsexporten oder durch Gewähren des Zugriffs auf FinOps-Hubs zum Verwalten von Bereichen in Ihrem Auftrag. Verwaltete Bereiche werden in der Config/settings.json-Datei im Hubspeicher konfiguriert. In den Informationen wird beschrieben, was passiert, wenn in dieser Datei ein neuer verwalteter Bereich hinzugefügt wird. Nicht verwaltete Bereiche, bei denen Kostenverwaltungsexporte manuell konfiguriert werden, erfordern keine andere Einrichtung.
- Der config_SettingsUpdated Trigger wird ausgeführt, wenn die settings.json Datei aktualisiert wird.
- Die config_ConfigureExports Pipeline erstellt neue Exporte für alle neuen Bereiche, die hinzugefügt wurden.
Datenerfassung
Die Datenaufnahme kann in zwei Teile unterteilt werden:
- Exportiert Pushdaten in den Speicher.
- Hubs verarbeitet und erfasst Daten.
Für verwaltete Bereiche führen Hubs die folgenden Schritte aus:
- Die config_DailySchedule und config_MonthlySchedule Trigger laufen auf ihren jeweiligen Zeitplänen aus, um die Datenaufnahme zu starten.
- Die config_StartExportProcess Pipeline ruft die entsprechenden Exporte für den ausgeführten Zeitplan ab.
- Die config_RunExportJobs Pipeline führt jeden der ausgewählten Exporte aus.
- Kostenverwaltung exportiert Rohkostendetails in den Msexports-Container . Weitere Informationen
Nachdem Exporte ausgeführt wurden, unabhängig davon, ob verwaltet oder nicht verwaltet, führen Hubs die folgenden Schritte aus:
- Die msexports_ExecuteETL Pipeline startet den ETL-Prozess (Extract-Transform-Load), wenn Dateien zum Speicher hinzugefügt werden.
- Die msexports_ETL_ingestion Pipeline transformiert die Daten in das Parkettformat und verschiebt sie mithilfe einer skalierbaren Dateistruktur in den Aufnahmecontainer . Weitere Informationen
- Power BI oder andere Tools lesen Daten aus dem Aufnahmecontainer .
Informationen zur Aufnahme
FinOps-Hubs basieren auf einem bestimmten Ordnerpfad im Aufnahmecontainer :
ingestion/{dataset}/{yyyy}/{mm}/{scope-id}
ingestion
ist der Container, in dem die Datenpipeline Daten speichert.{dataset}
ist der exportierte Datasettyp.{month}
ist das Jahr und der Monat der exportierten Daten, die alsyyyyMM
formatiert sind.{scope-id}
es wird erwartet, dass es sich um die vollqualifizierte Ressourcen-ID des Bereichs handelt, von dem die Daten stammen.
Wenn Sie Hubs verwenden müssen, um Nicht-Azure-Daten zu überwachen, konvertieren Sie die Daten in FOCUS , und legen Sie sie in den Aufnahmecontainer ab. Beachten Sie, dass dieser Prozess in der neuesten Version nicht explizit getestet wurde. Wenn Probleme auftreten, erstellen Sie ein Problem.
Informationen zu Exporten
FinOps-Hubs verwenden Kostenverwaltungsexporte, um Kostendaten zu erhalten. Die Kostenverwaltung steuert die Ordnerstruktur für die exportierten Daten im Msexports-Container . Ein typischer Pfad sieht wie folgt aus:
{container}/{path}/{date-range}/{export-name}/{export-time}/{guid}/{file}
Ab 0.4 verlassen sich FinOps-Hubs nicht auf Dateipfade. Hubs verwenden die Manifestdatei, um den Bereich, das Dataset, den Monat usw. zu identifizieren. Der einzige wichtige Teil des Pfads für Hubs ist der Container, der msexports sein muss.
Warnung
- Exportieren Sie keine Daten in den Aufnahmecontainer . Exportierte CSVs müssen im Msexports-Container veröffentlicht werden, damit sie vom Hubmodul verarbeitet werden.
- Um benutzerdefinierte Daten aufzunehmen, speichern Sie FOCUS-ausgerichtete Parkettdateien im Aufnahmecontainer für das FinOps-Toolkit Power BI-Berichte so, dass sie wie erwartet funktionieren.
Exportmanifeste können sich mit API-Versionen ändern. Hier ist ein Beispiel mit API-Version 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-Hubs verwenden die folgenden Eigenschaften:
exportConfig.resourceId
um den Bereich zu identifizieren.exportConfig.type
um den Datasettyp zu identifizieren.exportConfig.dataVersion
um die Datasetversion zu identifizieren.runInfo.startDate
um den exportierten Monat zu identifizieren.
FinOps-Hubs unterstützen die folgenden Datasettypen, Versionen und API-Versionen:
- FocusCost:
1.0
,1.0-preview(v1)
- PriceSheet:
2023-05-01
- Reservierungsdetails:
2023-03-01
- ReservationRecommendations:
2023-05-01
- ReservationTransactions:
2023-05-01
- API-Versionen:
2023-07-01-preview
FinOps Hubs v0.4-0.5
In den folgenden Informationen wird beschrieben, wie Daten in FinOps Hubs v0.4-0.5 verarbeitet werden.
Bereichssetup in v0.4-0.5
- Der config_SettingsUpdated Trigger wird ausgeführt, wenn die settings.json Datei aktualisiert wird.
- Die config_ConfigureExports Pipeline erstellt neue Exporte für alle neuen Bereiche, die hinzugefügt wurden.
Datenaufnahme in v0.4-0.5
Für verwaltete Bereiche:
- Die config_DailySchedule und config_MonthlySchedule Trigger laufen auf ihren jeweiligen Zeitplänen aus, um die Datenaufnahme zu starten.
- Die config_ExportData Pipeline ruft die entsprechenden Exporte für den ausgeführten Zeitplan ab.
- Die config_RunExports Pipeline führt jeden der ausgewählten Exporte aus.
- Kostenverwaltung exportiert Rohkostendetails in den Msexports-Container . Weitere Informationen finden Sie unter "Informationen zu Exporten" in v04-05.
Nach Abschluss der Exporte für verwaltete und nicht verwaltete Bereiche:
- Die msexports_ExecuteETL Pipeline startet den ETL-Prozess (Extract-Transform-Load), wenn Dateien zum Speicher hinzugefügt werden.
- Die msexports_ETL_ingestion Pipeline transformiert die Daten in ein Standardschema und speichert die Rohdaten im Parkettformat im Aufnahmecontainer . Weitere Informationen finden Sie unter "Informationen zur Aufnahme in v04-05".
- Power BI liest Kostendaten aus dem Aufnahmecontainer vor.
Informationen zur Aufnahme in v0.4-0.5
FinOps-Hubs basieren auf einem bestimmten Ordnerpfad im Aufnahmecontainer :
ingestion/{dataset}/{yyyy}/{mm}/{scope-id}
ingestion
ist der Container, in dem die Datenpipeline Daten speichert.{dataset}
ist der exportierte Datasettyp.{month}
ist das Jahr und der Monat der exportierten Daten, die alsyyyyMM
formatiert sind.{scope-id}
es wird erwartet, dass es sich um die vollqualifizierte Ressourcen-ID des Bereichs handelt, von dem die Daten stammen.
Wenn Sie Hubs verwenden müssen, um Nicht-Azure-Daten zu überwachen, konvertieren Sie die Daten in FOCUS , und legen Sie sie in den Aufnahmecontainer ab. Dieser Prozess wurde in der neuesten Version nicht explizit getestet. Wenn Probleme auftreten, erstellen Sie ein Problem.
Informationen zu Exporten in v0.4-0.5
FinOps-Hubs verwenden Kostenverwaltungsexporte, um Kostendaten zu erhalten. Die Kostenverwaltung steuert die Ordnerstruktur für die exportierten Daten im Msexports-Container . Ein typischer Pfad sieht wie folgt aus:
{container}/{path}/{date-range}/{export-name}/{export-time}/{guid}/{file}
Ab 0.4 verlassen sich FinOps-Hubs nicht auf Dateipfade. Hubs verwenden die Manifestdatei, um den Bereich, das Dataset, den Monat usw. zu identifizieren. Der einzige wichtige Teil des Pfads für Hubs ist der Container, der msexports sein muss.
Hinweis
Exportieren Sie keine Daten in den Aufnahmecontainer . Exportierte CSVs müssen im Msexports-Container veröffentlicht werden, damit sie vom Hubmodul verarbeitet werden.
Um benutzerdefinierte Daten aufzunehmen, speichern Sie FOCUS-ausgerichtete Parkettdateien im Aufnahmecontainer für das FinOps-Toolkit Power BI-Berichte so, dass sie wie erwartet funktionieren.
Exportmanifeste können sich mit API-Versionen ändern. Hier ist ein Beispiel mit API-Version 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-Hubs verwenden die folgenden Eigenschaften:
exportConfig.resourceId
um den Bereich zu identifizieren.exportConfig.type
um den Datasettyp zu identifizieren.exportConfig.dataVersion
um die Datasetversion zu identifizieren.runInfo.startDate
um den exportierten Monat zu identifizieren.
FinOps-Hubs unterstützen die folgenden Datasettypen, Versionen und API-Versionen:
- FocusCost:
1.0
,1.0-preview(v1)
- PriceSheet:
2023-05-01
- Reservierungsdetails:
2023-03-01
- ReservationRecommendations:
2023-05-01
- ReservationTransactions:
2023-05-01
- API-Versionen:
2023-07-01-preview
FinOps Hubs v0.2-0.3
In den folgenden Schritten wird der Prozess zum Exportieren und Verarbeiten von Kostendaten mithilfe der FinOps Hubs-Versionen 0.2-0.3 beschrieben:
- Kostenverwaltung exportiert Rohkostendetails in den Msexports-Container . Weitere Informationen finden Sie unter "Informationen zu Exporten".
- Die msexports_ExecuteETL Pipeline startet den ETL-Prozess (Extract-Transform-Load), wenn Dateien zum Speicher hinzugefügt werden.
- Die msexports_ETL_ingestion Pipeline speichert exportierte Daten im Parkettformat im Aufnahmebehälter . Weitere Informationen finden Sie unter "Informationen zu Exporten".
- Power BI liest Kostendaten aus dem Aufnahmecontainer vor.
FinOps Hubs 0.2-0.3 verwenden den Exportpfad, um den exportierten Bereich und monat zu bestimmen. Dieser Punkt ist wichtig, da Aktualisierungen des Pfads die Datenpipelinen unterbrechen können. Um dieses Problem zu vermeiden, empfehlen wir, auf FinOps Hubs 0.4 zu aktualisieren. Der erwartete Pfad sollte imitieren:
msexports/{scope-id}/{export-name}/{date-range}/{export-time}/{guid}/{file}
msexports
ist der im Export angegebene Container.{scope-id}
ist der im Export angegebene Ordnerpfad.Hubs 0.3 und früher verwenden diese, um zu ermitteln, aus welchem Bereich die Daten stammen. Es wird empfohlen, die Bereichs-ID zu verwenden, aber jeder Wert kann verwendet werden. Beispiele für Bereichs-IDs:
Bereichstyp Beispielswert Subscription /subscriptions/###
Resource group /subscriptions/###/resourceGroups/###
Abrechnungskonto /providers/Microsoft.Billing/billingAccounts/###
Abrechnungsprofil /providers/Microsoft.Billing/billingAccounts/###/billingProfiles/###
{export-name}
ist der Name des Exports.Hubs ignorieren diesen Ordner.
{date-range}
ist die Datumsbereichsdaten, die exportiert werden.Hubs 0.3 und früher verwenden diese, um den Monat zu identifizieren. Format für diesen Ordner ist
yyyyMMdd-yyyyMMdd
. Hubs 0.4 verwendet stattdessen das Manifest.{export-time}
ist ein Zeitstempel des Zeitpunkts, zu dem der Export ausgeführt wurde.Hubs ignorieren dies. Format für diesen Ordner ist
yyyyMMddHHmm
.{guid}
ist eine eindeutige GUID und ist nicht immer vorhanden.Hubs ignorieren dies. Die Kostenverwaltung enthält diesen Ordner nicht immer. Ob sie enthalten ist, hängt von der API-Version ab, die zum Erstellen des Exports verwendet wird.
{file}
ist entweder ein Manifest oder exportierte Daten.Version 0.3 und früher ignorieren Manifestdateien und überwachen nur *.csv Dateien. In einer zukünftigen Version überwachen Hubs das Manifest.
FinOps Hubs v0.1
Die folgenden Schritte beschreiben den Prozess zum Exportieren und Verarbeiten von Kostendaten mithilfe von FinOps Hubs Version 0.1:
- Kostenverwaltung exportiert Rohkostendetails in den Msexports-Container .
- Die msexports_transform Pipeline speichert die Rohdaten im Parkettformat im Aufnahmebehälter .
- Power BI liest Kostendaten aus dem Aufnahmecontainer vor.