Comment les données sont traitées dans des hubs FinOps
Les hubs FinOps effectuent de nombreuses activités de traitement des données pour nettoyer, normaliser et optimiser les données. Les sections suivantes montrent comment les données circulent de Cost Management dans une instance hub.
Configuration de l’étendue
Une étendue est un niveau au sein de la hiérarchie des ressources et des comptes cloud qui fournit l’accès aux données de coût, d’utilisation et de carbone. Pour les hubs FinOps, nous vous recommandons généralement d’utiliser des comptes de facturation Accord Entreprise (EA) ou des profils de facturation Contrat client Microsoft (MCA), mais toute étendue cloud est suffisante pour l’analyse de base. La principale préoccupation est de savoir si les données de prix et de réservation sont nécessaires, car Cost Management expose uniquement les données des comptes de facturation EA et des profils de facturation MCA.
Les hubs FinOps prennent en charge la configuration des étendues en configurant manuellement les exportations Cost Management ou en accordant aux hubs FinOps l’accès pour gérer les étendues en votre nom. Les étendues managées sont configurées dans le fichier config/settings.json dans le stockage hub. Les informations décrivent ce qui se passe lorsqu’une nouvelle étendue managée est ajoutée à ce fichier. Les étendues non managées, où les exportations Cost Management sont configurées manuellement, ne nécessitent pas d’autres configurations.
- Le déclencheur config_SettingsUpdated s’exécute lorsque le fichier settings.json est mis à jour.
- Le pipeline config_ConfigureExports crée de nouvelles exportations pour toutes les nouvelles étendues ajoutées.
Ingestion des données
L’ingestion des données peut être divisée en deux parties :
- Exporte les données push vers le stockage.
- Hubs traite et ingère des données.
Pour les étendues managées, les hubs effectuent les étapes suivantes :
- Les déclencheurs config_DailySchedule et config_MonthlySchedule s’exécutent selon leurs planifications respectives pour lancer l’ingestion des données.
- Le pipeline config_StartExportProcess obtient les exportations applicables pour la planification en cours d’exécution.
- Le pipeline config_RunExportJobs exécute chacune des exportations sélectionnées.
- Cost Management exporte les détails des coûts bruts vers le conteneur msexports . Plus d’informations
Une fois les exportations exécutées, qu’elles soient gérées ou non managées, les hubs effectuent les étapes suivantes :
- Le pipeline msexports_ExecuteETL lance le processus d’extraction-transformation (ETL) lorsque des fichiers sont ajoutés au stockage.
- Le pipeline msexports_ETL_ingestion transforme les données au format Parquet et les déplace vers le conteneur d’ingestion à l’aide d’une structure de fichiers évolutive. Plus d’informations
- Power BI ou d’autres outils lisent les données du conteneur d’ingestion.
À propos de l’ingestion
Les hubs FinOps s’appuient sur un chemin d’accès de dossier spécifique dans le conteneur d’ingestion :
ingestion/{dataset}/{yyyy}/{mm}/{scope-id}
ingestion
est le conteneur dans lequel le pipeline de données enregistre les données.{dataset}
est le type de jeu de données exporté.{month}
est l’année et le mois des données exportées mises en forme en tant queyyyyMM
.{scope-id}
est censé être l’ID de ressource complet de l’étendue à partir de laquelle les données sont extraites.
Si vous devez utiliser des hubs pour surveiller les données non-Azure, convertissez les données en FOCUS et déposez-les dans le conteneur d’ingestion . Notez que ce processus n’a pas été testé explicitement dans la dernière version. Si vous rencontrez des problèmes, créez un problème.
À propos des exportations
Les hubs FinOps utilisent des exportations Cost Management pour obtenir des données de coût. Cost Management contrôle la structure des dossiers pour les données exportées dans le conteneur msexports . Un chemin d’accès classique ressemble à ceci :
{container}/{path}/{date-range}/{export-name}/{export-time}/{guid}/{file}
À compter de la version 0.4, les hubs FinOps ne s’appuient pas sur les chemins d’accès aux fichiers. Les hubs utilisent le fichier manifeste pour identifier l’étendue, le jeu de données, le mois, etc. La seule partie importante du chemin d’accès pour les hubs est le conteneur, qui doit être msexports.
Avertissement
- N’exportez pas de données vers le conteneur d’ingestion . Les éditeurs de logiciels partagés exportés doivent être publiés sur le conteneur msexports à traiter par le moteur hubs.
- Pour ingérer des données personnalisées, enregistrez les fichiers Parquet alignés sur FOCUS dans le conteneur d’ingestion pour que les rapports Power BI du kit de ressources FinOps fonctionnent comme prévu.
Les manifestes d’exportation peuvent changer avec les versions d’API. Voici un exemple avec la version 2023-07-01-preview
de l’API :
{
"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": ###
}
]
}
Les hubs FinOps utilisent les propriétés suivantes :
exportConfig.resourceId
pour identifier l’étendue.exportConfig.type
pour identifier le type de jeu de données.exportConfig.dataVersion
pour identifier la version du jeu de données.runInfo.startDate
pour identifier le mois exporté.
Les hubs FinOps prennent en charge les types de jeux de données, les versions et les versions d’API suivants :
- FocusCost :
1.0
,1.0-preview(v1)
- PriceSheet :
2023-05-01
- ReservationDetails :
2023-03-01
- ReservationRecommendations :
2023-05-01
- ReservationTransactions :
2023-05-01
- Versions de l’API :
2023-07-01-preview
FinOps Hubs v0.4-0.5
Les informations suivantes décrivent comment les données sont traitées dans FinOps Hubs v0.4-0.5.
Configuration de l’étendue dans v0.4-0.5
- Le déclencheur config_SettingsUpdated s’exécute lorsque le fichier settings.json est mis à jour.
- Le pipeline config_ConfigureExports crée de nouvelles exportations pour toutes les nouvelles étendues ajoutées.
Ingestion de données dans v0.4-0.5
Pour les étendues managées :
- Les déclencheurs config_DailySchedule et config_MonthlySchedule s’exécutent selon leurs planifications respectives pour lancer l’ingestion des données.
- Le pipeline config_ExportData obtient les exportations applicables pour la planification en cours d’exécution.
- Le pipeline config_RunExports exécute chacune des exportations sélectionnées.
- Cost Management exporte les détails des coûts bruts vers le conteneur msexports . Pour plus d’informations, consultez À propos des exportations dans v04-05.
Une fois les exportations terminées, pour les étendues managées et non managées :
- Le pipeline msexports_ExecuteETL lance le processus d’extraction-transformation (ETL) lorsque des fichiers sont ajoutés au stockage.
- Le pipeline msexports_ETL_ingestion transforme les données en schéma standard et enregistre les données brutes au format Parquet dans le conteneur d’ingestion . Pour plus d’informations, consultez À propos de l’ingestion dans v04-05.
- Power BI lit les données de coût à partir du conteneur d’ingestion.
À propos de l’ingestion dans v0.4-0.5
Les hubs FinOps s’appuient sur un chemin d’accès de dossier spécifique dans le conteneur d’ingestion :
ingestion/{dataset}/{yyyy}/{mm}/{scope-id}
ingestion
est le conteneur dans lequel le pipeline de données enregistre les données.{dataset}
est le type de jeu de données exporté.{month}
est l’année et le mois des données exportées mises en forme en tant queyyyyMM
.{scope-id}
est censé être l’ID de ressource complet de l’étendue à partir de laquelle les données sont extraites.
Si vous devez utiliser des hubs pour surveiller les données non-Azure, convertissez les données en FOCUS et déposez-les dans le conteneur d’ingestion . Ce processus n’a pas été testé explicitement dans la dernière version. Si vous rencontrez des problèmes, créez un problème.
À propos des exportations dans v0.4-0.5
Les hubs FinOps utilisent des exportations Cost Management pour obtenir des données de coût. Cost Management contrôle la structure des dossiers pour les données exportées dans le conteneur msexports . Un chemin d’accès classique ressemble à ceci :
{container}/{path}/{date-range}/{export-name}/{export-time}/{guid}/{file}
À compter de la version 0.4, les hubs FinOps ne s’appuient pas sur les chemins d’accès aux fichiers. Les hubs utilisent le fichier manifeste pour identifier l’étendue, le jeu de données, le mois, et ainsi de suite. La seule partie importante du chemin d’accès pour les hubs est le conteneur, qui doit être msexports.
Remarque
N’exportez pas de données vers le conteneur d’ingestion . Les éditeurs de logiciels partagés exportés doivent être publiés sur le conteneur msexports à traiter par le moteur hubs.
Pour ingérer des données personnalisées, enregistrez les fichiers Parquet alignés sur FOCUS dans le conteneur d’ingestion pour que les rapports Power BI du kit de ressources FinOps fonctionnent comme prévu.
Les manifestes d’exportation peuvent changer avec les versions d’API. Voici un exemple avec la version 2023-07-01-preview
de l’API :
{
"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": ###
}
]
}
Les hubs FinOps utilisent les propriétés suivantes :
exportConfig.resourceId
pour identifier l’étendue.exportConfig.type
pour identifier le type de jeu de données.exportConfig.dataVersion
pour identifier la version du jeu de données.runInfo.startDate
pour identifier le mois exporté.
Les hubs FinOps prennent en charge les types de jeux de données, les versions et les versions d’API suivants :
- FocusCost :
1.0
,1.0-preview(v1)
- PriceSheet :
2023-05-01
- ReservationDetails :
2023-03-01
- ReservationRecommendations :
2023-05-01
- ReservationTransactions :
2023-05-01
- Versions de l’API :
2023-07-01-preview
FinOps Hubs v0.2-0.3
Les étapes suivantes décrivent le processus d’exportation et de traitement des données de coût à l’aide des hubs FinOps versions 0.2-0.3 :
- Cost Management exporte les détails des coûts bruts vers le conteneur msexports . Pour plus d’informations, consultez À propos des exportations.
- Le pipeline msexports_ExecuteETL lance le processus d’extraction-transformation (ETL) lorsque des fichiers sont ajoutés au stockage.
- Le pipeline msexports_ETL_ingestion enregistre les données exportées au format Parquet dans le conteneur d’ingestion . Pour plus d’informations, consultez À propos des exportations.
- Power BI lit les données de coût à partir du conteneur d’ingestion.
FinOps Hubs 0.2-0.3 utilise le chemin d’exportation pour déterminer l’étendue exportée et le mois. Ce point est important, car les mises à jour du chemin d’accès peuvent interrompre les pipelines de données. Pour éviter ce problème, nous vous recommandons de mettre à jour vers FinOps Hubs 0.4. Le chemin attendu doit imiter :
msexports/{scope-id}/{export-name}/{date-range}/{export-time}/{guid}/{file}
msexports
est le conteneur spécifié sur l’exportation.{scope-id}
est le chemin d’accès au dossier spécifié sur l’exportation.Hubs 0.3 et versions antérieures l’utilisent pour identifier l’étendue des données. Nous vous recommandons d’utiliser l’ID d’étendue, mais n’importe quelle valeur peut être utilisée. Voici quelques exemples d’ID d’étendue :
Type d'étendue Valeur d’exemple Abonnement /subscriptions/###
Resource group /subscriptions/###/resourceGroups/###
Compte de facturation /providers/Microsoft.Billing/billingAccounts/###
Profil de facturation /providers/Microsoft.Billing/billingAccounts/###/billingProfiles/###
{export-name}
est le nom de l’exportation.Les hubs ignorent ce dossier.
{date-range}
est les données de plage de dates exportées.Hubs 0.3 et versions antérieures l’utilisent pour identifier le mois. Le format de ce dossier est
yyyyMMdd-yyyyMMdd
. Hubs 0.4 utilise plutôt le manifeste.{export-time}
est un horodatage de l’exécution de l’exportation.Les hubs ignorent cela. Le format de ce dossier est
yyyyMMddHHmm
.{guid}
est un GUID unique et n’est pas toujours présent.Les hubs ignorent cela. Cost Management n’inclut pas toujours ce dossier. Si elle est incluse ou non dépend de la version de l’API utilisée pour créer l’exportation.
{file}
est un manifeste ou des données exportées.La version 0.3 et les versions antérieures ignorent les fichiers manifestes et surveillent uniquement les fichiers *.csv . Dans une prochaine version, les hubs surveillent le manifeste.
FinOps Hubs v0.1
Les étapes suivantes décrivent le processus d’exportation et de traitement des données de coût à l’aide des hubs FinOps version 0.1 :
- Cost Management exporte les détails des coûts bruts vers le conteneur msexports .
- Le pipeline msexports_transform enregistre les données brutes au format Parquet dans le conteneur d’ingestion .
- Power BI lit les données de coût à partir du conteneur d’ingestion.