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.

Diagramma che illustra il processo di configurazione dell'ambito.

  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

Il diagramma seguente illustra il processo di inserimento dati end-to-end all'interno degli hub FinOps:

Diagramma che illustra il processo di inserimento dati.

  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 il programma in corso.
    3. La pipeline config_RunExportJobs esegue ognuna delle esportazioni selezionate.
  2. La gestione dei costi esporta i dettagli dei costi grezzi 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.
      • Se si inseriscono set di dati personalizzati all'esterno delle esportazioni di Gestione costi, creare un file di manifest.json vuoto nella cartella di inserimento di destinazione dopo che tutti gli altri file sono pronti (non aggiungere questo file quando i file vengono ancora caricati). Il file manifest.json non viene analizzato e può essere vuoto. L'unico scopo è indicare che vengono aggiunti tutti i file per questo processo di inserimento.
    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, Esplora dati applica la conservazione dei dati nelle tabelle non elaborate mentre la conservazione dei dati nelle tabelle finali viene applicata dalla pipeline di inserimento. Se l'inserimento dati si arresta, i dati cronologici non vengono 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 usare lo schema più recente.
        • Questa funzione è utile per un'esplorazione rapida, ma può introdurre modifiche di rilievo man mano che l'istanza dell'hub FinOps viene aggiornata.
      • Usare la funzione {dataset}_v1_0() per usare lo schema FOCUS 1.0.
        • Gli schemi delle funzioni versionati non devono cambiare nel tempo, ma i valori possono cambiare se l'origine dati modifica tali valori.
      • Evitare di usare il database di inserimento per le query. Anche se non è esplicitamente vietato, il database di ingestione dovrebbe essere considerato un'area interna per la messa in scena 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 è sconsigliata a causa di motivi di prestazioni. Data Explorer è consigliato quando si segnala un costo superiore a 1 milione di dollari.

Informazioni sull'inserimento in Esplora dati

Quando i dati vengono inseriti in Esplora dati, le funzioni {dataset}_transform_v1_0() applicano regole di trasformazione nel database di Ingestion . 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. Lascia un commento su questione se trovi opportunità per risolvere eventuali questioni o per esprimere il tuo sostegno per qualsiasi 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 supportati in modo nativo. 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.

  • Amazon Web Services (AWS) FOCUS 1.0
  • Google Cloud Platform (GCP) FOCUS 1.0
  • Oracle Cloud Infrastructure (OCI) FOCUS 1.0

Trasformazioni:

  • v0.7+:
    • Allineare i nomi delle colonne di FOCUS 1.0-preview 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 vengono modificati dagli hub.
    • Aggiornare ProviderName e PublisherName quando non sono specificati.
    • Aggiungere x_SourceName, x_SourceProvider, x_SourceTypee x_SourceVersion per identificare il set di dati originariamente inserito.
    • Popolare i valori mancanti ListCost, ListUnitPrice, ContractedCoste ContractedUnitPrice in base al listino prezzi.
      • Questo processo richiede l'esportazione dei prezzi prima del costo. Prezzi mancanti per il primo giorno del mese se i costi vengono inseriti prima che i prezzi siano disponibili per quel mese.
    • Correggere la ContractedCost se impostata in modo non corretto a causa di un bug in Gestione dei costi.
    • Metti ResourceName e x_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.
  • v0.8+:
    • Correggere eventuali valori ResourceType che utilizzano id dei tipi di risorsa interni, ad esempio microsoft.compute/virtualmachines.
  • v0.9+:
    • Converti in minuscolo BillingAccountId per garantire che l'associazione dei prezzi corrisponda a tutte le righe.
    • Minuscolo CommitmentDiscountId per evitare righe duplicate durante l'aggregazione dei dati.
    • Aggiungere nuovi x_SourceChanges controlli per ListCostLessThanContractedCost e ContractedCostLessThanEffectiveCost.
  • v0.10+:
    • Correggi x_EffectiveUnitPrice quando viene calcolato e si verifica un errore di arrotondamento rispetto a x_BilledUnitPrice o ContractedUnitPrice.
    • Calcolare PricingQuantity e ConsumedQuantity quando è previsto un costo, ma nessuna quantità.
    • Imposta ContractedCost a EffectiveCost quando non è impostato.
    • Imposta ListCost a ContractedCost quando non è impostato.
    • Rimuovere "-2" nella x_InvoiceSectionId colonna.
    • Rimuovere "Non assegnato" nella x_InvoiceSectionName colonna.
    • Corretto x_EffectiveUnitPrice quando viene calcolato e ha un errore di arrotondamento.
    • Aggiungere nuovi x_SourceChanges controlli per MissingConsumedQuantity, MissingPricingQuantitye XEffectiveUnitPriceRoundingError.
  • v0.11+:
    • Cambia BillingPeriodStart e BillingPeriodEnd in modo che siano il primo del mese.

Trasformazioni dei dati dei prezzi

Set di dati supportati:

  • Microsoft PriceSheet: 2023-05-01 (EA e MCA)

Trasformazioni:

  • v0.7+
    • Allineare i nomi delle colonne a FOCUS 1.0.
      • Include l'applicazione della coerenza nei nomi delle colonne EA e MCA.
      • Non modifica i valori sottostanti, che possono differire tra EA e McA.
    • Convertire la durata ISO x_SkuTerm nel numero specifico di mesi per far coincidere con i dettagli dei costi.
      • Stiamo aspettando che FOCUS prenda una decisione su come definire le durate prima di modificare questo valore in ISO o in 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 valore SkuPriceId più accurato rispetto a quello attualmente compreso nei dettagli dei costi.
    • Aggiungere x_IngestionTime per indicare l'ultimo aggiornamento della riga.
    • Aggiungere x_CommitmentDiscountSpendEligibility e x_CommitmentDiscountUsageEligibility.
    • Espandi x_PricingUnitDescription in PricingUnit e x_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_ContractedUnitPriceDiscounte x_TotalUnitPriceDiscount per riepilogare gli sconti disponibili per SKU.
    • Aggiungere x_EffectiveUnitPriceDiscountPercent, x_ContractedUnitPriceDiscountPercente x_TotalUnitPriceDiscountPercent per riepilogare la percentuale dello sconto per SKU.
    • Aggiungere x_SourceName, x_SourceProvider, x_SourceTypee x_SourceVersion per identificare il set di dati originariamente inserito.
  • v0.9+:
    • Minuscolo BillingAccountId per garantire che il join dei costi corrisponda a tutte le righe.

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.
    • Include l'applicazione della coerenza nei 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 originariamente inserito.

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 nei 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 originariamente inserito.

Trasformazione dei dati sull'utilizzo degli sconti per 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 nei 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 ingestion.

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 effettua l'inserimento in Azure Data Explorer, il database di inserimento deve avere una tabella "_raw" corrispondente e sensibile alle maiuscole, 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 sostituisce i dati precedenti. Non supportato nei report di Power BI basati sull'archiviazione.
    • {yyyy} come anno a quattro 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 quattro cifre e mese a due cifre del set di dati esportato per conservare l'ultima acquisizione di ogni mese.
    • {yyyy}/{mm}/{dd} come anno a quattro cifre, mese a due cifre e giorno a due 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 pienamente qualificato dell'ambito da cui provengono i dati. Se si inseriscono dati non di 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. Questo ID può essere un GUID, un timestamp o 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 utilizzare gli hub per monitorare dati non di Azure, convertire i dati in FOCUS e rilasciarli nel contenitore ingestion seguendo queste istruzioni. Si noti che il supporto per i dati non di Azure 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.

Non esportare i dati nel contenitore di inserimento . I file CSV esportati devono essere pubblicati nel contenitore msexports per essere elaborati dal motore degli hub.

Per inserire dati personalizzati, salvare i file parquet nel contenitore di inserimento per i report di Power BI del toolkit FinOps in modo che funzionino come previsto. Dopo aver aggiunto tutti i file parquet, aggiungere un filemanifest.json vuoto per attivare l'inserimento.

Per inserire il file CSV dalle esportazioni di Gestione costi, salvare i file in una cartella specifica nel contenitore msexports . Dopo aver aggiunto tutti i file, aggiungere un filemanifest.json basato sul modello seguente. Apportare le modifiche seguenti per garantire la corretta inserimento:

  1. Modifica <export-name> a un valore univoco all'interno dell'ambito per il set di dati che stai inserendo.
    • Questa opzione viene usata solo per le raccomandazioni per distinguere i diversi tipi di raccomandazioni inseriti che non sono identificabili solo dal manifesto di esportazione. Per le raccomandazioni per la prenotazione, includere idealmente il servizio, l'ambito (singolo/condiviso) e il periodo di ricerca.
  2. Cambiare <dataset> e <version> al tipo di esportazione e alla versione di Gestione costi. Vedere l'elenco seguente per i set di dati supportati.
  3. Modificare <scope> con l'ID risorsa di Azure relativo all'ambito da cui provengono i dati.
  4. Passare <guid> a un GUID univoco.
  5. Modificare <yyyy-MM> all'anno e al mese del set di dati.
  6. Modificare <path-to-file> nel percorso completo della cartella sotto il contenitore (non includere "msexports").
  7. Passare <file-name> al nome del primo file caricato nella risorsa di archiviazione.
  8. Se sono presenti più file CSV, copiare l'oggetto BLOB per ogni file caricato e aggiornare il nome del file.
{
  "blobCount": 1,
  "dataRowCount": 1,
  "exportConfig": {
    "exportName": "<export-name>",
    "type": "<dataset>",
    "dataVersion": "<version>",
    "resourceId": "<scope>/providers/Microsoft.CostManagement/exports/export-name"
  },
  "runInfo": {
    "runId": "<guid>",
    "startDate": "<yyyy-MM>-01T00:00:00"
  },
  "blobs": [
    {
      "blobName": "<path-to-file>/<file-name>.csv"
    }
  ]
}

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)
  • FoglioPrezzi: 2023-05-01
  • DettagliPrenotazione: 2023-03-01
  • RaccomandazioniPerLePrenotazioni: 2023-05-01
  • TransazioniPrenotazioni: 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 il programma in corso.
  3. La pipeline config_RunExportJobs esegue ognuna delle esportazioni selezionate.
  4. La gestione dei costi esporta i dettagli dei costi grezzi nel contenitore msexports. Altre informazioni.
  5. La pipeline msexports_ExecuteETL accoda il processo di estrazione-transformazione-carico (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 .

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'ingestione 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.
  • {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 sostituisce i dati precedenti. Non supportato nei report di Power BI basati sull'archiviazione.
    • {yyyy} come anno a quattro 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 quattro cifre e mese a due cifre del set di dati esportato per conservare l'ultima acquisizione di ogni mese.
    • {yyyy}/{mm}/{dd} come anno a quattro cifre, mese a due cifre e giorno a due 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 pienamente qualificato 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. Questo ID può essere un GUID, un timestamp o 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 utilizzare gli hub per monitorare dati non di Azure, convertire i dati in FOCUS e rilasciarli nel contenitore ingestion seguendo queste istruzioni. Si noti che il supporto per i dati non di Azure non è stato testato in modo esplicito nella versione più recente. Se si verificano problemi, segnalare un problema.


Informazioni sulle esportazioni nella versione 0.6

Gli hub FinOps usano le esportazioni di Gestione costi per ottenere i dati dei costi. Gestione dei costi controlla la struttura delle 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 file CSV esportati devono essere pubblicati nel contenitore msexports per essere elaborati dal motore degli 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.

I manifesti di esportazione possono cambiare a seconda delle 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)
  • FoglioPrezzi: 2023-05-01
  • DettagliPrenotazione: 2023-03-01
  • RaccomandazioniPerLePrenotazioni: 2023-05-01
  • TransazioniPrenotazioni: 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 dello scope 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. La gestione dei costi esporta i dettagli dei costi grezzi 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 ingestione. Per altre informazioni, vedere Informazioni sull'ingestione 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} deve essere l'ID risorsa completamente qualificato 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, segnalare 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 dei costi controlla la struttura delle 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 file CSV esportati devono essere pubblicati nel contenitore msexports per essere elaborati dal motore degli 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.

I manifesti di esportazione possono cambiare a seconda delle 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)
  • FoglioPrezzi: 2023-05-01
  • DettagliPrenotazione: 2023-03-01
  • RaccomandazioniPerLePrenotazioni: 2023-05-01
  • TransazioniPrenotazioni: 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. La gestione dei costi esporta i dettagli dei costi grezzi 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
    Abbonamento /subscriptions/###
    Gruppo di risorse /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} sono i dati dell'intervallo di date che vengono esportati.

    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 file 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. La gestione dei costi esporta i dettagli dei costi grezzi 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 .

Inviare commenti e suggerimenti

Facci sapere come ci trovi con una breve recensione. Queste revisioni vengono usate per migliorare ed espandere strumenti e risorse FinOps.

Se si sta cercando qualcosa di specifico, votare per un'idea esistente o crearne una nuova. Condividere idee con altri utenti per ottenere più voti. Ci concentriamo sulle idee con il maggior numero di voti.