Come vengono elaborati i dati negli hub FinOps
Gli hub FinOps eseguono molte attività di elaborazione dei dati per pulire, normalizzare e ottimizzare i dati. Le sezioni seguenti illustrano come i dati passano da Gestione costi a un'istanza dell'hub.
Configurazione dell'ambito
Un ambito è un livello all'interno della gerarchia di risorse cloud e account che fornisce l'accesso ai dati sui costi, sull'utilizzo e sul carbonio. Per gli hub FinOps, in genere è consigliabile usare account di fatturazione Contratto Enterprise (EA) o profili di fatturazione Contratto del cliente Microsoft (MCA), tuttavia qualsiasi ambito cloud è sufficiente per l'analisi di base. La preoccupazione principale riguarda se sono necessari i dati relativi al prezzo e alla prenotazione, poiché Gestione costi espone solo i dati per gli account di fatturazione EA e i profili di fatturazione mca.
Gli hub FinOps supportano la configurazione degli ambiti configurando manualmente le esportazioni di Gestione costi o concedendo agli hub FinOps l'accesso per gestire gli ambiti per conto dell'utente. Gli ambiti gestiti vengono configurati nel file config/settings.json nell'archiviazione hub. Le informazioni descrivono cosa accade quando viene aggiunto un nuovo ambito gestito in questo file. Gli ambiti non gestiti, in cui le esportazioni di Gestione costi vengono configurate manualmente, non richiedono altre configurazioni.
- Il trigger config_SettingsUpdated viene eseguito quando il file settings.json viene aggiornato.
- La pipeline config_ConfigureExports crea nuove esportazioni per tutti i nuovi ambiti aggiunti.
Inserimento dati
Di seguito viene illustrato il processo di inserimento dati end-to-end all'interno degli hub FinOps:
- (Facoltativo) Se si usano esportazioni gestite:
- I trigger config_DailySchedule e config_MonthlySchedule vengono eseguiti in base alle rispettive pianificazioni per avviare l'inserimento dati.
- La pipeline config_StartExportProcess ottiene le esportazioni applicabili per la pianificazione in esecuzione.
- La pipeline config_RunExportJobs esegue ognuna delle esportazioni selezionate.
- Gestione costi esporta i dettagli dei costi non elaborati nel contenitore msexports . Altre informazioni.
- La pipeline msexports_ExecuteETL accoda il processo di estrazione-transformazione-carico (ETL) quando i file vengono aggiunti al contenitore msexports.
- La pipeline msexports_ETL_ingestion trasforma i dati in formato parquet e lo sposta nel contenitore di inserimento usando una struttura di file scalabile. Altre informazioni.
- (Facoltativo) Se si usa Esplora dati di Azure:
- La pipeline ingestion_ExecuteETL accoda la pipeline di inserimento di Data Explorer quando i file manifest.json vengono aggiunti al container di ingestion.
- Nel caso di inserimento di set di dati personalizzati all'esterno delle esportazioni di Gestione costi, creare un file vuoto di manifest.json nella cartella di destinazione una volta che tutti gli altri file sono completamente pronti (non aggiungere questo file se i file sono ancora in fase di caricamento). Il file manifest.json non viene analizzato e può essere vuoto. L'unico scopo è indicare che tutti i file per questo processo di inserimento sono stati aggiunti.
- La pipeline ingestion_ETL_dataExplorer inserisce i dati nella tabella
{dataset}_raw
in Esplora Dati.- Il nome del set di dati è la prima cartella nel contenitore di ingestione .
- Tutte le tabelle non elaborate si trovano nel database di Ingestion in Data Explorer.
- Quando i dati vengono inseriti in tabelle non elaborate in Esplora dati, i criteri di aggiornamento copiano i dati nella tabella
{dataset}_final_v1_0
corrispondente usando la funzione{dataset}_transform_v1_0()
per normalizzare tutti i dati in modo da allinearli a FOCUS 1.0. - Dopo l'inserimento, la pipeline di ingestion_ETL_dataExplorer esegue alcune attività di pulizia, inclusa l'eliminazione dei dati nella tabella finale che hanno superato il periodo di conservazione dei dati.
- A partire dalla versione 0.7, la conservazione dei dati nelle tabelle non elaborate viene applicata automaticamente da Esplora dati, ma la conservazione dei dati nelle tabelle finali viene applicata solo quando viene eseguita l'inserimento. Se l'inserimento dati viene arrestato, i dati cronologici non verranno eliminati.
- La conservazione dei dati può essere configurata durante la distribuzione del modello o manualmente nel file config/settings.json nell'archiviazione.
- La pipeline ingestion_ExecuteETL accoda la pipeline di inserimento di Data Explorer quando i file manifest.json vengono aggiunti al container di ingestion.
- Report e altri strumenti, come Power BI, leggono i dati da Esploratore dati o dal contenitore di inserimento .
- I dati in Esplora dati possono essere letti dal database dell'hub
. - Usare la funzione
{dataset}()
per sfruttare lo schema più recente.- Ciò è utile per un'esplorazione rapida, ma può introdurre modifiche di rilievo quando l'istanza dell'hub FinOps viene aggiornata.
- Usare la funzione
{dataset}_v1_0()
per sfruttare lo schema FOCUS 1.0.- Gli schemi delle funzioni versionati non devono cambiare nel tempo, ma i valori possono variare se l'origine dati modifica tali valori.
- Evitare di usare il database di inserimento per le query. Anche se non è esplicitamente vietato, questo deve essere considerato principalmente un'area interna per la gestione temporanea e la preparazione dei dati.
- Usare la funzione
- I dati archiviati possono essere letti da
ingestion/<dataset>/<year>/<month>/<scope-path>
.- I dati devono essere letti in modo ricorsivo dalla cartella del set di dati e, facoltativamente, includere altre informazioni necessarie per la specificità.
- I file in ogni cartella del set di dati possono avere schemi diversi in base all'origine dati e al tipo di account. Essere pronti a trasformare i dati se devono essere inseriti in altri sistemi, ad esempio Microsoft Fabric.
- La lettura dall'archiviazione è in genere sconsigliata a causa di motivi di prestazioni.
- I dati in Esplora dati possono essere letti dal database dell'hub
Informazioni sull'inserimento in Esplora dati
Quando i dati vengono inseriti in Data Explorer, esistono diverse trasformazioni che avvengono nelle rispettive funzioni di {dataset}_transform_v1_0()
nel database Ingestione. Ogni set di dati include un set diverso di regole di trasformazione descritte nelle sezioni seguenti.
Per un elenco delle modifiche richieste, idee in considerazione e domande aperte sui set di dati di Gestione costi sottostanti, vedere problema #1111. Lasciate commenti su questa questione se trovate opportunità per affrontare eventuali ulteriori preoccupazioni o per esprimere il vostro supporto per una delle questioni specifiche.
Trasformazioni dei dati dei costi
Set di dati supportati:
- Microsoft FocusCost:
1.0r2
,1.0
,1.0-preview(v1)
I set di dati seguenti sono stati inclusi nella progettazione, ma non sono stati testati. Per importare questi dataset, creare una pipeline di elaborazione dati (o un processo esterno) che inserisce i file Parquet nella cartella ingestion/Costs/yyyy/mm/{scope-path}
di archiviazione. Il {scope-path}
può essere qualsiasi percorso univoco, ad esempio aws/123
o gcp/projects/foo
. L'unico requisito consiste nel garantire che ogni ambito si trova in una cartella separata. Dopo aver copiato il contenuto esterno, creare anche un file manifest.json per attivare l'ingestione in Esplora Dati.
- AWS FOCUS 1.0
- GCP FOCUS 1.0
- OCI FOCUS 1.0
Trasformazioni:
- Allineare i nomi delle colonne a FOCUS 1.0.
- Include la conversione dell'anteprima di FOCUS 1.0 alla versione 1.0.
- Aggiungere
x_IngestionTime
per indicare l'ultimo aggiornamento della riga. - Aggiungere
x_SourceChanges
per identificare quando i dati in una riga sono stati modificati nei hub. - Aggiornare
ProviderName
ePublisherName
quando non sono specificati. - Aggiungere
x_SourceName
,x_SourceProvider
,x_SourceType
ex_SourceVersion
per identificare il set di dati originariamente inserito. - Popolare i valori mancanti
ListCost
,ListUnitPrice
,ContractedCost
eContractedUnitPrice
in base al listino prezzi.- Questo processo richiede l'esportazione dei prezzi prima del costo. Questo può comportare una carenza di prezzi per il primo giorno del mese finché i prezzi non vengono inseriti.
- Correggere
ContractedCost
quando è impostato in modo errato a causa di un bug in Gestione Costi. - Metti
ResourceName
ex_ResourceGroupName
in minuscolo per risolvere i problemi di coerenza delle maiuscole e minuscole che interrompono il raggruppamento e il filtro. - Aggiungere
x_BillingAccountAgreement
in base al tipo di account.
Trasformazioni dei dati dei prezzi
Set di dati supportati:
- Microsoft PriceSheet:
2023-05-01
(EA e MCA)
Trasformazioni:
- Allineare i nomi delle colonne a FOCUS 1.0.
- Include l'applicazione della coerenza dei nomi delle colonne EA e MCA.
- Non modifica i valori sottostanti, che possono differire tra EA e McA.
- Convertire la durata ISO
x_SkuTerm
in un numero di mesi per corrispondere ai dettagli dei costi.- È in attesa che FOCUS faccia una determinazione per definire le durate prima di passare a ISO o a un altro formato.
- Sostituire
ContractedUnitPrice
per l'utilizzo del piano di risparmio con l'equivalente disponibile su richiesta. - Impostare
ListUnitPrice
affinché l'utilizzo del piano di risparmio equivalga a quello su richiesta. - Aggiungi
SkuPriceIdv2
come un valoreSkuPriceId
più accurato rispetto a quello attualmente compreso nei dettagli dei costi. - Aggiungere
x_IngestionTime
per indicare l'ultimo aggiornamento della riga. - Aggiungere
x_CommitmentDiscountSpendEligibility
ex_CommitmentDiscountUsageEligibility
. - Espandi
x_PricingUnitDescription
inPricingUnit
ex_PricingBlockSize
. - Aggiungere
x_BillingAccountAgreement
in base al tipo di account. - Modificare
x_EffectivePeriodEnd
in modo che sia una data di fine esclusiva. - Aggiungere
x_EffectiveUnitPriceDiscount
,x_ContractedUnitPriceDiscount
ex_TotalUnitPriceDiscount
per riepilogare gli sconti disponibili per SKU. - Aggiungere
x_EffectiveUnitPriceDiscountPercent
,x_ContractedUnitPriceDiscountPercent
ex_TotalUnitPriceDiscountPercent
per riepilogare la percentuale dello sconto per SKU. - Aggiungere
x_SourceName
,x_SourceProvider
,x_SourceType
ex_SourceVersion
per identificare il set di dati originale inserito.
Trasformazioni dei dati di raccomandazione
Set di dati supportati:
- Microsoft Raccomandazioni sulle prenotazioni:
2023-05-01
(EA e MCA)
Trasformazioni:
- Allineare i nomi delle colonne a FOCUS 1.0.
- Comprende l'attuazione della coerenza obbligatoria dei nomi delle colonne EA e MCA.
- Non modifica i valori sottostanti, che possono differire tra EA e McA.
- Aggiungere
x_SourceName
,x_SourceProvider
,x_SourceType
ex_SourceVersion
per identificare il set di dati inserito originale.
Trasformazioni dei dati delle transazioni
Set di dati supportati:
- Microsoft ReservationTransactions:
2023-05-01
(EA e MCA)
Trasformazioni
- Allineare i nomi delle colonne a FOCUS 1.0.
- Include l'applicazione della coerenza dei nomi delle colonne EA e MCA.
- Non modifica i valori sottostanti, che possono differire tra EA e McA.
- Aggiungere
x_SourceName
,x_SourceProvider
,x_SourceType
ex_SourceVersion
per identificare il set di dati originale inserito.
Trasformazioni dei dati di utilizzo dello sconto sull'impegno
Set di dati supportati:
- Microsoft ReservationDetails:
2023-03-01
(EA e MCA)
Trasformazioni:
- Allineare i nomi delle colonne a FOCUS 1.0.
- Include l'applicazione della coerenza dei nomi delle colonne EA e MCA.
- Non modifica i valori sottostanti, che possono differire tra EA e McA.
- Aggiungere la colonna
ResourceType
con il nome visualizzato del tipo di risorsa. - Aggiungere le colonne
ServiceName
,ServiceCategory
ex_ServiceModel
. - Sostituire "NA" con null per
x_CommitmentDiscountNormalizedGroup
. - Aggiungere
x_CommitmentDiscountQuantity
in base a FOCUS 1.1.
Informazioni sul contenitore di ingestione
Gli hub FinOps si basano su un percorso di cartella e un formato di nome file specifici nel contenitore di archiviazione di inserimento
ingestion/{dataset}/{date-folder-path}/{scope-id-path}/{ingestion-id}__{original-file-name}.parquet
-
ingestion
è il contenitore in cui la pipeline di dati salva i dati. -
{dataset}
è il tipo di set di dati esportato. Se l'inserimento avviene in Azure Data Explorer, deve esserci una tabella corrispondente, distinguendo tra maiuscole e minuscole, "_raw" (ad esempio, "Costs_raw"). Gli hub FinOps supportano i set di dati seguenti in questa versione:- CommitmentDiscountUsage - Esportazione dettagli della prenotazione per gestione dei costi.
- i costi - FOCUS sui dati di costo e di utilizzo.
- Prezzi - Esportazione del foglio prezzi per la gestione dei costi.
- Raccomandazioni di Prenotazione - Esportazione delle raccomandazioni per la gestione dei costi.
- Transazioni - Esportazione delle transazioni di prenotazione per la gestione dei costi.
- Per inserire set di dati personalizzati, creare una tabella corrispondente
e un mapping di inserimento parquet nel database di inserimento .
-
{date-folder-path}
può essere una o più cartelle che indicano il numero di set di dati inseriti da conservare. Esempi:-
all
(o qualsiasi segnaposto) per non registrare la cronologia del dataset. Ogni inserimento sostituirà i dati precedenti. Non supportato nei report di Power BI basati sull'archiviazione. -
{yyyy}
come anno a 4 cifre del set di dati esportato per conservare solo l'inserimento più recente all'anno. Non supportato nei report di Power BI basati sull'archiviazione. -
{yyyy}/{mm}
come anno a 4 cifre e mese a 2 cifre del set di dati esportato per conservare l'ultimo inserimento per mese. -
{yyyy}/{mm}/{dd}
come anno a 4 cifre, mese a 2 cifre e giorno a 2 cifre del set di dati esportato per conservare l'inserimento più recente al giorno. Non supportato nei report di Power BI basati sull'archiviazione.
-
-
{scope-id-path}
è l'ID risorsa completo dell'ambito da cui provengono i dati. Se si inseriscono dati non Azure, è consigliabile usare una gerarchia logica basata sull'ambito dei dati (ad esempio, "aws/{account-id}", "gcp/{project-name}", "oci/{component-id}/{component-id}"). -
{ingestion-id}
è un ID univoco per il set di dati inserito. Può trattarsi di un GUID, di un timestamp o di qualsiasi valore purché sia coerente in tutti i file per il set di dati inserito. Questo valore viene usato per rimuovere i dati inseriti in precedenza nello stesso percorso della cartella. -
{original-file-name}
deve essere il nome file originale o un altro identificatore per indicare dove sono stati originati i dati nel file. Questo valore è solo a scopo di risoluzione dei problemi.
Il percorso completo della cartella e l'ID di inserimento vengono usati entrambi per assicurarsi che i dati non vengano duplicati nell'archiviazione o in Esplora dati di Azure. Il nome file originale viene aggiunto alle estese di Azure Data Explorer per scopi di diagnostica, ma non viene altrimenti rilevato o utilizzato dagli hub FinOps.
Se è necessario usare hub per monitorare i dati non di Azure, convertire i dati in FOCUS e rilasciarli nel contenitore inserimento seguendo le indicazioni riportate sopra. Si noti che questo non è stato testato in modo esplicito nella versione più recente. Se si verificano problemi, segnalare un problema.
Informazioni sulle esportazioni
Gli hub FinOps sfruttano le esportazioni di Gestione costi per ottenere i dati dei costi. La Gestione dei costi controlla la struttura delle cartelle per i dati esportati nel contenitore di archiviazione msexports. Un percorso tipico è simile al seguente:
{container}/{path}/{date-range}/{export-name}/{export-time}/{guid}/{file}
Gli hub FinOps usano il file manifesto per identificare l'ambito, il set di dati, il mese e così via. L'unica parte importante del percorso per hub è il contenitore, che deve essere msexports.
Avviso
Non esportare i dati nel contenitore di inserimento. I volumi condivisi cluster esportati devono essere pubblicati nel contenitore msexports per essere elaborati dal motore hub.
Per inserire dati personalizzati, salvare i file Parquet allineati a FOCUS nel contenitore di inserimento per i report di Power BI del toolkit FinOps in modo che funzionino come previsto.
Esportare i manifesti possono cambiare con le versioni dell'API. Ecco un esempio con la versione 2023-07-01-preview
dell'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": ###
}
]
}
Gli hub FinOps sfruttano le proprietà seguenti:
-
eportConfig.resourceId
per identificare l'ambito. -
eportConfig.type
per identificare il tipo di set di dati. -
eportConfig.dataVersion
per identificare la versione del set di dati. -
runInfo.startDate
per identificare il mese esportato.
Gli hub FinOps supportano i tipi di set di dati, le versioni e le versioni API seguenti:
- 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
- Versioni API:
2023-07-01-preview
Hub FinOps v0.6
Le sezioni seguenti illustrano il processo dei dati negli hub FinOps 0.6.
Configurazione dell'ambito nella versione 0.6
I passaggi seguenti si verificano quando un nuovo ambito gestito viene aggiunto a un'istanza dell'hub. Gli ambiti non gestiti (in cui le esportazioni di Gestione costi sono configurate manualmente) non richiedono alcuna configurazione negli hub.
- Il trigger config_SettingsUpdated viene eseguito quando il file settings.json viene aggiornato.
- La pipeline config_ConfigureExports crea nuove esportazioni per tutti i nuovi ambiti aggiunti.
Inserimento dati nella versione 0.6
L'inserimento dati può essere suddiviso in due parti:
- Esporta i dati push nell'archiviazione.
- Hub elabora e inserisce i dati.
Per gli ambiti gestiti, gli hub eseguono la procedura seguente:
- I trigger config_DailySchedule e config_MonthlySchedule vengono eseguiti in base alle rispettive pianificazioni per avviare l'inserimento dati.
- La pipeline config_StartExportProcess ottiene le esportazioni applicabili per la pianificazione in esecuzione.
- La pipeline config_RunExportJobs esegue ognuna delle esportazioni selezionate.
- Gestione costi esporta i dettagli dei costi non elaborati nel contenitore msexports . Altre informazioni.
- La pipeline msexports_ExecuteETL mette in coda la pipeline di estrazione-trasformazione-caricamento (ETL) quando i file vengono aggiunti al contenitore msexports.
- La pipeline msexports_ETL_ingestion trasforma i dati in formato parquet e lo sposta nel contenitore di inserimento usando una struttura di file scalabile. Altre informazioni.
- Power BI o altri strumenti leggono i dati dal contenitore di inserimento .
Nota
Il supporto di Power BI per Esplora dati di Azure è disponibile in un aggiornamento futuro.
Dopo l'esecuzione delle esportazioni, indipendentemente dal fatto che gli hub gestiti o non gestiti eseguano i passaggi seguenti:
- La pipeline msexports_ExecuteETL avvia il processo ETL (extract-transform-load) quando i file vengono aggiunti all'archiviazione.
- La pipeline msexports_ETL_ingestion trasforma i dati in formato parquet e lo sposta nel contenitore di inserimento usando una struttura di file scalabile. Altre informazioni.
- Power BI o altri strumenti leggono i dati dal contenitore di inserimento .
Informazioni sull'inserimento nella versione 0.6
Gli hub FinOps si basano su un percorso di cartella e un formato di nome file specifici nel contenitore di inserimento .
ingestion/{dataset}/{date-folder-path}/{scope-id-path}/{ingestion-id}__{original-file-name}.parquet
-
ingestion
è il contenitore in cui la pipeline di dati salva i dati. -
{dataset}
è il tipo di set di dati esportato. Se si ingerisce in Azure Data Explorer, questo deve disporre di una tabella "_raw" con distinzione tra maiuscole e minuscole, ad esempio "Costs_raw". Gli hub FinOps supportano i set di dati seguenti in questa versione:- CommitmentDiscountUsage - Esportazione dei dettagli sulla prenotazione per la gestione dei costi.
- I costi - Dati di costo e di utilizzo in evidenza.
- Prezzi - Esportazione elenco prezzi gestione costi.
- raccomandazioni - Esportazione delle raccomandazioni per le prenotazioni di gestione dei costi.
- Transazioni - Esportazione delle transazioni di riserva della Gestione dei costi.
- Per inserire set di dati personalizzati, creare una tabella corrispondente
{dataset}_raw
e un mapping di inserimento parquet nel database di inserimento .
-
{date-folder-path}
può essere una o più cartelle che indicano il numero di set di dati inseriti da conservare. Esempi:-
all
(o un qualsiasi segnaposto) per non registrare la cronologia del set di dati. Ogni inserimento sostituirà i dati precedenti. Non supportato nei report di Power BI basati sull'archiviazione. -
{yyyy}
come anno a 4 cifre del set di dati esportato per conservare solo l'inserimento più recente all'anno. Non supportato nei report di Power BI basati sull'archiviazione. -
{yyyy}/{mm}
come anno a 4 cifre e mese a 2 cifre del set di dati esportato per mantenere l'inserimento più recente al mese. -
{yyyy}/{mm}/{dd}
come anno a 4 cifre, mese a 2 cifre e giorno a 2 cifre del set di dati esportato per conservare l'inserimento più recente al giorno. Non supportato nei report di Power BI basati sull'archiviazione.
-
-
{scope-id-path}
è l'ID risorsa completo dell'ambito da cui provengono i dati. Se si inseriscono dati non Azure, è consigliabile usare una gerarchia logica basata sull'ambito dei dati (ad esempio, "aws/{account-id}", "gcp/{project-name}", "oci/{component-id}/{component-id}"). -
{ingestion-id}
è un ID univoco per il set di dati inserito. Può trattarsi di un GUID, di un timestamp o di qualsiasi valore purché sia coerente in tutti i file per il set di dati inserito. Questo valore viene usato per rimuovere i dati inseriti in precedenza nello stesso percorso della cartella. -
{original-file-name}
deve essere il nome file originale o un altro identificatore per indicare dove sono stati originati i dati nel file. Questo valore è solo a scopo di risoluzione dei problemi.
Il percorso completo della cartella e l'ID di inserimento vengono usati entrambi per assicurarsi che i dati non vengano duplicati nell'archiviazione o in Esplora dati di Azure. Il nome file originale viene aggiunto agli extent di Esplora dati di Azure a scopo di risoluzione dei problemi, ma non viene altrimenti rilevato o usato dagli hub FinOps.
Se è necessario usare gli hub per monitorare dati non Azure, converta i dati in FOCUS e rilasciarli nel contenitore di acquisizione seguendo le indicazioni riportate sopra. Si noti che questo non è stato testato in modo esplicito nella versione più recente. Qualora si verifichino problemi, creare una segnalazione.
Informazioni sulle esportazioni nella versione 0.6
Gli hub FinOps usano le esportazioni di Gestione costi per ottenere i dati dei costi. Gestione costi controlla la struttura di cartelle per i dati esportati nel contenitore msexports . Un percorso tipico è simile al seguente:
{container}/{path}/{date-range}/{export-name}/{export-time}/{guid}/{file}
A partire dalla versione 0.4, gli hub FinOps non si basano sui percorsi dei file. Hub usa il file manifesto per identificare l'ambito, il set di dati, il mese e così via. L'unica parte importante del percorso per hub è il contenitore, che deve essere msexports.
Avviso
- Non esportare i dati nel contenitore di inserimento . I volumi condivisi cluster esportati devono essere pubblicati nel contenitore msexports per essere elaborati dal motore hub.
- Per inserire dati personalizzati, salvare i file Parquet allineati a FOCUS nel contenitore di inserimento per i report di Power BI del toolkit FinOps in modo che funzionino come previsto.
Esportare i manifesti possono cambiare con le versioni dell'API. Ecco un esempio con la versione 2023-07-01-preview
dell'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>.<file-type>",
"byteCount": ###
}
]
}
Gli hub FinOps usano le proprietà seguenti:
-
exportConfig.resourceId
per identificare l'ambito. -
exportConfig.type
per identificare il tipo di set di dati. -
exportConfig.dataVersion
per identificare la versione del set di dati. -
runInfo.startDate
per identificare il mese esportato.
Gli hub FinOps supportano i tipi di set di dati, le versioni e le versioni API seguenti:
- FocusCost:
1.0
,1.0-preview(v1)
- PriceSheet:
2023-05-01
- ReservationDetails:
2023-03-01
- ReservationRecommendations:
2023-05-01
- ReservationTransactions:
2023-05-01
- Versioni API:
2023-07-01-preview
Hub FinOps v0.4-0.5
Le informazioni seguenti descrivono come vengono elaborati i dati negli hub FinOps v0.4 e v0.5.
Configurazione dell'ambito nella versione 0.4-0.5
- Il trigger config_SettingsUpdated viene eseguito quando il file settings.json viene aggiornato.
- La pipeline config_ConfigureExports crea nuove esportazioni per tutti i nuovi ambiti aggiunti.
Inserimento dati in v0.4-0.5
Per gli ambiti gestiti:
- I trigger config_DailySchedule e config_MonthlySchedule vengono eseguiti in base alle rispettive pianificazioni per avviare l'inserimento dati.
- La pipeline config_ExportData ottiene le esportazioni applicabili per la pianificazione in esecuzione.
- La pipeline config_RunExports esegue ognuna delle esportazioni selezionate.
- Gestione costi esporta i dettagli dei costi non elaborati nel contenitore msexports . Per altre informazioni, vedere Informazioni sulle esportazioni nella versione 04-05.
Al termine delle esportazioni, sia per gli ambiti gestiti che per gli ambiti non gestiti:
- La pipeline msexports_ExecuteETL avvia il processo ETL (extract-transform-load) quando i file vengono aggiunti all'archiviazione.
- La pipeline msexports_ETL_ingestion trasforma i dati in uno schema standard e salva i dati non elaborati in formato parquet nel contenitore di inserimento . Per altre informazioni, vedere Informazioni sull'inserimento in v04-05.
- Power BI legge i dati sui costi dal contenitore di inserimento .
Informazioni sull'inserimento in v0.4-0.5
Gli hub FinOps si basano su un percorso di cartella specifico nel contenitore di inserimento :
ingestion/{dataset}/{yyyy}/{mm}/{scope-id}
-
ingestion
è il contenitore in cui la pipeline di dati salva i dati. -
{dataset}
è il tipo di set di dati esportato. -
{month}
è l'anno e il mese dei dati esportati formattati comeyyyyMM
. -
{scope-id}
è previsto che sia l'ID risorsa completo dell'ambito da cui provengono i dati.
Se è necessario usare hub per monitorare i dati non di Azure, convertire i dati in FOCUS e rilasciarli nel contenitore di inserimento . Questo processo non è stato testato in modo esplicito nella versione più recente. Se si verificano problemi, creare un problema.
Informazioni sulle esportazioni nella versione 0.4-0.5
Gli hub FinOps usano le esportazioni di Gestione costi per ottenere i dati dei costi. Gestione costi controlla la struttura di cartelle per i dati esportati nel contenitore msexports . Un percorso tipico è simile al seguente:
{container}/{path}/{date-range}/{export-name}/{export-time}/{guid}/{file}
A partire dalla versione 0.4, gli hub FinOps non si basano sui percorsi dei file. Hub usa il file manifesto per identificare l'ambito, il set di dati, il mese e così via. L'unica parte importante del percorso per hub è il contenitore, che deve essere msexports.
Nota
Non esportare i dati nel contenitore di inserimento . I volumi condivisi cluster esportati devono essere pubblicati nel contenitore msexports per essere elaborati dal motore hub.
Per inserire dati personalizzati, salvare i file Parquet allineati a FOCUS nel contenitore di inserimento per i report di Power BI del toolkit FinOps in modo che funzionino come previsto.
Esportare i manifesti possono cambiare con le versioni dell'API. Ecco un esempio con la versione 2023-07-01-preview
dell'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": ###
}
]
}
Gli hub FinOps usano le proprietà seguenti:
-
exportConfig.resourceId
per identificare l'ambito. -
exportConfig.type
per identificare il tipo di set di dati. -
exportConfig.dataVersion
per identificare la versione del set di dati. -
runInfo.startDate
per identificare il mese esportato.
Gli hub FinOps supportano i tipi di set di dati, le versioni e le versioni API seguenti:
- FocusCost:
1.0
,1.0-preview(v1)
- PriceSheet:
2023-05-01
- ReservationDetails:
2023-03-01
- ReservationRecommendations:
2023-05-01
- ReservationTransactions:
2023-05-01
- Versioni API:
2023-07-01-preview
Hub FinOps v0.2-0.3
I passaggi seguenti illustrano il processo per l'esportazione e l'elaborazione dei dati sui costi tramite l'hub FinOps versioni 0.2-0.3:
- Gestione costi esporta i dettagli dei costi non elaborati nel contenitore msexports .
- La pipeline msexports_ExecuteETL avvia il processo ETL (extract-transform-load) quando i file vengono aggiunti all'archiviazione.
- La pipeline msexports_ETL_ingestion salva i dati esportati in formato parquet nel contenitore di inserimento .
- Power BI legge i dati sui costi dal contenitore di inserimento .
Gli hub FinOps 0.2-0.3 usano il percorso di esportazione per determinare l'ambito esportato e il mese. Questo punto è importante perché gli aggiornamenti al percorso possono interrompere le pipeline di dati. Per evitare questo problema, è consigliabile eseguire l'aggiornamento agli hub FinOps 0.4. Il percorso previsto deve simulare:
msexports/{scope-id}/{export-name}/{date-range}/{export-time}/{guid}/{file}
-
msexports
è il contenitore specificato nell'esportazione. -
{scope-id}
è il percorso della cartella specificato nell'esportazione.Hubs 0.3 e versioni precedenti usano questa opzione per identificare l'ambito da cui provengono i dati. È consigliabile usare l'ID ambito, ma è possibile usare qualsiasi valore. Gli ID ambito di esempio includono:
Tipo di ambito Valore di esempio Subscription /subscriptions/###
Resource group /subscriptions/###/resourceGroups/###
Account di fatturazione /providers/Microsoft.Billing/billingAccounts/###
Profilo di fatturazione /providers/Microsoft.Billing/billingAccounts/###/billingProfiles/###
-
{export-name}
è il nome dell'esportazione.Gli hub ignorano questa cartella.
-
{date-range}
è i dati dell'intervallo di date da esportare.Hubs 0.3 e versioni precedenti usano questa opzione per identificare il mese. Il formato per questa cartella è
yyyyMMdd-yyyyMMdd
. Hubs 0.4 usa invece il manifesto. -
{export-time}
è un timestamp di quando l'esportazione è stata eseguita.Gli hub ignorano questa situazione. Il formato per questa cartella è
yyyyMMddHHmm
. -
{guid}
è un GUID univoco e non è sempre presente.Gli hub ignorano questa situazione. Gestione costi non include sempre questa cartella. Il fatto che sia incluso dipende dalla versione dell'API usata per creare l'esportazione.
-
{file}
è un manifesto o dati esportati.La versione 0.3 e le versioni precedenti ignorano i file manifesto e monitorano solo i file *.csv . In una versione futura gli hub monitoreranno il manifesto.
Hub FinOps v0.1
I passaggi seguenti illustrano il processo di esportazione ed elaborazione dei dati sui costi tramite hub FinOps versione 0.1:
- Gestione costi esporta i dettagli dei costi non elaborati nel contenitore msexports .
- La pipeline msexports_transform salva i dati non elaborati in formato parquet nel contenitore di inserimento .
- Power BI legge i dati sui costi dal contenitore di inserimento .