Condividi tramite


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.

  1. Il trigger config_SettingsUpdated viene eseguito quando il file settings.json viene aggiornato.
  2. 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:

  1. (Facoltativo) Se si usano esportazioni gestite:
    1. I trigger config_DailySchedule e config_MonthlySchedule vengono eseguiti in base alle rispettive pianificazioni per avviare l'inserimento dati.
    2. La pipeline config_StartExportProcess ottiene le esportazioni applicabili per la pianificazione in esecuzione.
    3. La pipeline config_RunExportJobs esegue ognuna delle esportazioni selezionate.
  2. Gestione costi esporta i dettagli dei costi non elaborati nel contenitore msexports . Altre informazioni.
  3. La pipeline msexports_ExecuteETL accoda il processo di estrazione-transformazione-carico (ETL) quando i file vengono aggiunti al contenitore msexports.
  4. 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.
  5. (Facoltativo) Se si usa Esplora dati di Azure:
    1. 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.
    2. 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.
    3. 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.
    4. 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.
  6. 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.
    • 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.

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:

  1. Allineare i nomi delle colonne a FOCUS 1.0.
    • Include la conversione dell'anteprima di FOCUS 1.0 alla versione 1.0.
  2. Aggiungere x_IngestionTime per indicare l'ultimo aggiornamento della riga.
  3. Aggiungere x_SourceChanges per identificare quando i dati in una riga sono stati modificati nei hub.
  4. Aggiornare ProviderName e PublisherName quando non sono specificati.
  5. Aggiungere x_SourceName, x_SourceProvider, x_SourceTypee x_SourceVersion per identificare il set di dati originariamente inserito.
  6. Popolare i valori mancanti ListCost, ListUnitPrice, ContractedCoste ContractedUnitPrice 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.
  7. Correggere ContractedCost quando è impostato in modo errato a causa di un bug in Gestione Costi.
  8. Metti ResourceName e x_ResourceGroupName in minuscolo per risolvere i problemi di coerenza delle maiuscole e minuscole che interrompono il raggruppamento e il filtro.
  9. 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:

  1. 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.
  2. 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.
  3. Sostituire ContractedUnitPrice per l'utilizzo del piano di risparmio con l'equivalente disponibile su richiesta.
  4. Impostare ListUnitPrice affinché l'utilizzo del piano di risparmio equivalga a quello su richiesta.
  5. Aggiungi SkuPriceIdv2 come un valore SkuPriceId più accurato rispetto a quello attualmente compreso nei dettagli dei costi.
  6. Aggiungere x_IngestionTime per indicare l'ultimo aggiornamento della riga.
  7. Aggiungere x_CommitmentDiscountSpendEligibility e x_CommitmentDiscountUsageEligibility.
  8. Espandi x_PricingUnitDescription in PricingUnit e x_PricingBlockSize.
  9. Aggiungere x_BillingAccountAgreement in base al tipo di account.
  10. Modificare x_EffectivePeriodEnd in modo che sia una data di fine esclusiva.
  11. Aggiungere x_EffectiveUnitPriceDiscount, x_ContractedUnitPriceDiscounte x_TotalUnitPriceDiscount per riepilogare gli sconti disponibili per SKU.
  12. Aggiungere x_EffectiveUnitPriceDiscountPercent, x_ContractedUnitPriceDiscountPercente x_TotalUnitPriceDiscountPercent per riepilogare la percentuale dello sconto per SKU.
  13. Aggiungere x_SourceName, x_SourceProvider, x_SourceTypee x_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:

  1. 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.
  2. Aggiungere x_SourceName, x_SourceProvider, x_SourceTypee x_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

  1. 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.
  2. Aggiungere x_SourceName, x_SourceProvider, x_SourceTypee x_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:

  1. 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.
  2. Aggiungere la colonna ResourceType con il nome visualizzato del tipo di risorsa.
  3. Aggiungere le colonne ServiceName, ServiceCategorye x_ServiceModel.
  4. Sostituire "NA" con null per x_CommitmentDiscountNormalizedGroup.
  5. 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-previewdell'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.

  1. Il trigger config_SettingsUpdated viene eseguito quando il file settings.json viene aggiornato.
  2. 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:

  1. Esporta i dati push nell'archiviazione.
  2. Hub elabora e inserisce i dati.

Per gli ambiti gestiti, gli hub eseguono la procedura seguente:

  1. I trigger config_DailySchedule e config_MonthlySchedule vengono eseguiti in base alle rispettive pianificazioni per avviare l'inserimento dati.
  2. La pipeline config_StartExportProcess ottiene le esportazioni applicabili per la pianificazione in esecuzione.
  3. La pipeline config_RunExportJobs esegue ognuna delle esportazioni selezionate.
  4. Gestione costi esporta i dettagli dei costi non elaborati nel contenitore msexports . Altre informazioni.
  5. La pipeline msexports_ExecuteETL mette in coda la pipeline di estrazione-trasformazione-caricamento (ETL) quando i file vengono aggiunti al contenitore msexports.
  6. 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.
  7. 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:

  1. La pipeline msexports_ExecuteETL avvia il processo ETL (extract-transform-load) quando i file vengono aggiunti all'archiviazione.
  2. 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.
  3. 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-previewdell'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

  1. Il trigger config_SettingsUpdated viene eseguito quando il file settings.json viene aggiornato.
  2. La pipeline config_ConfigureExports crea nuove esportazioni per tutti i nuovi ambiti aggiunti.

Inserimento dati in v0.4-0.5

Per gli ambiti gestiti:

  1. I trigger config_DailySchedule e config_MonthlySchedule vengono eseguiti in base alle rispettive pianificazioni per avviare l'inserimento dati.
  2. La pipeline config_ExportData ottiene le esportazioni applicabili per la pianificazione in esecuzione.
  3. La pipeline config_RunExports esegue ognuna delle esportazioni selezionate.
  4. 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:

  1. La pipeline msexports_ExecuteETL avvia il processo ETL (extract-transform-load) quando i file vengono aggiunti all'archiviazione.
  2. 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.
  3. 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 come yyyyMM.
  • {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-previewdell'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:

  1. Gestione costi esporta i dettagli dei costi non elaborati nel contenitore msexports .
  2. La pipeline msexports_ExecuteETL avvia il processo ETL (extract-transform-load) quando i file vengono aggiunti all'archiviazione.
  3. La pipeline msexports_ETL_ingestion salva i dati esportati in formato parquet nel contenitore di inserimento .
  4. 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:

  1. Gestione costi esporta i dettagli dei costi non elaborati nel contenitore msexports .
  2. La pipeline msexports_transform salva i dati non elaborati in formato parquet nel contenitore di inserimento .
  3. Power BI legge i dati sui costi dal contenitore di inserimento .