Udostępnij przez


Jak dane są przetwarzane w centrach FinOps

Centra FinOps wykonują wiele działań przetwarzania danych, aby wyczyścić, znormalizować i zoptymalizować dane. Poniższe sekcje pokazują, jak dane przepływają z usługi Cost Management do instancji centrum.


Konfiguracja zakresu

Zakres to poziom w hierarchii zasobów i kont w chmurze, który zapewnia dostęp do danych dotyczących kosztów, użycia i emisji dwutlenku węgla. W przypadku centrów FinOps zwykle rekomendujemy używanie kont rozliczeniowych umowy Enterprise Agreement (EA) lub profili rozliczeniowych umowy z klientem Microsoft (MCA), jednak każdy zakres chmury jest wystarczający do podstawowej analizy. Główna obawa dotyczy tego, czy potrzebne są dane o cenach i rezerwacjach, ponieważ usługa Cost Management uwidacznia tylko dane dla kont rozliczeniowych EA i profilów rozliczeniowych MCA.

Centra FinOps obsługują konfigurowanie zakresów przez ręczne konfigurowanie eksportów usługi Cost Management lub udzielanie dostępu do centrów FinOps w celu zarządzania zakresami w Twoim imieniu. Zakresy zarządzane są konfigurowane w pliku config/settings.json w magazynie hubu. Informacje opisują, co się stanie po dodaniu nowego zakresu zarządzanego do tego pliku. Zakresy niezarządzane, w których eksporty usługi Cost Management są konfigurowane ręcznie, nie wymagają innej konfiguracji.

Diagram przedstawiający proces konfigurowania zakresu.

  1. Wyzwalacz config_SettingsUpdated jest uruchamiany po zaktualizowaniu pliku settings.json .
  2. Potok config_ConfigureExports tworzy nowe eksporty dla wszystkich dodanych nowych zakresów.

Pozyskiwanie danych

Na poniższym diagramie przedstawiono proces kompleksowego pozyskiwania danych w centrach FinOps:

Diagram przedstawiający proces pozyskiwania danych.

  1. (Opcjonalnie) W przypadku korzystania z eksportów zarządzanych:
    1. Wyzwalacze config_DailySchedule i config_MonthlySchedule są uruchamiane zgodnie z ich harmonogramami, aby rozpocząć pozyskiwanie danych.
    2. Potok config_StartExportProcess pobiera odpowiednie eksporty dla uruchomionego harmonogramu.
    3. Potok config_RunExportJobs wykonuje każdy z wybranych eksportów.
  2. Usługa Cost Management eksportuje nieprzetworzone szczegóły kosztów do kontenera msexports . Dowiedz się więcej.
  3. Potok msexports_ExecuteETL inicjuje działanie potoku extract-transform-load (ETL) w momencie dodania plików do kontenera msexports.
  4. Potok przetwarzania msexports_ETL_ingestion przekształca dane w format Parquet i przenosi je do kontenera pozyskiwania przy użyciu skalowalnej struktury plików. Dowiedz się więcej.
  5. (Opcjonalnie) W przypadku korzystania z usługi Azure Data Explorer:
    1. Potok przetwarzania ingestion_ExecuteETL umieszcza w kolejce potok przetwarzania Eksploratora Danych po dodaniu plików manifest.json do kontenera pozyskiwania .
      • W przypadku pozyskiwania niestandardowych zestawów danych poza eksportami usługi Cost Management utwórz pusty plik manifest.json w docelowym folderze pozyskiwania, gdy wszystkie inne pliki są gotowe (nie dodawaj tego pliku, gdy pliki są nadal przekazywane). Plik manifest.json nie jest analizowany i może być pusty. Jedynym celem jest wskazanie, że wszystkie pliki dla tego zadania importowania zostały dodane.
    2. Potok ingestion_ETL_dataExplorer pozyskiwa dane do tabeli {dataset}_raw w Eksploratorze danych.
      • Nazwa zestawu danych to pierwszy folder w kontenerze pozyskiwania .
      • Wszystkie nieprzetworzone tabele znajdują się w bazie danych Ingestii w Eksploratorze Danych.
    3. Gdy dane są pozyskiwane do nieprzetworzonych tabel w Eksploratorze danych, zasady aktualizacji kopiują dane do odpowiedniej tabeli {dataset}_final_v1_0 przy użyciu funkcji {dataset}_transform_v1_0(), aby znormalizować wszystkie dane zgodnie z FOCUS 1.0.
    4. Po załadowaniu, potok ingestion_ETL_dataExplorer wykonuje oczyszczanie, w tym usuwanie danych w końcowej tabeli, które przekroczyły okres przechowywania danych.
      • Od wersji 0.7, Eksplorator danych stosuje przechowywanie danych w tabelach surowych, natomiast w tabelach końcowych przechowywanie danych jest realizowane przez potok przetwarzania danych. Jeśli pozyskiwanie danych zostanie zatrzymane, dane historyczne nie są czyszczone.
      • Przechowywanie danych można skonfigurować podczas wdrażania szablonu lub ręcznie w pliku konfiguracyjnym /settings.json w pamięci.
  6. Raporty i inne narzędzia, takie jak Power BI, odczytują dane z Eksploratora danych lub kontenera przetwarzania.
    • Dane w Eksploratorze Danych można odczytywać z bazy danych Hub.
      • Użyj funkcji {dataset}(), aby użyć najnowszego schematu.
        • Ta funkcja jest przydatna do szybkiej eksploracji, ale może wprowadzać zmiany powodujące zaburzenia w miarę aktualizowania wystąpienia centrum FinOps.
      • Użyj funkcji {dataset}_v1_0(), aby użyć schematu FOCUS 1.0.
        • Schematy funkcji z wersjami nie powinny zmieniać się w czasie, ale wartości mogą ulec zmianie, jeśli źródło danych zmieni te wartości.
      • Unikaj używania bazy danych importowania do zapytań. Chociaż nie jest to jawnie zabronione, baza danych integracji danych powinna być traktowana jako obszar wewnętrzny do celów przygotowywania i jako przestrzeń tymczasowa dla danych.
    • Dane w magazynie można odczytywać z ingestion/<dataset>/<year>/<month>/<scope-path>.
      • Dane powinny być odczytywane rekurencyjnie z folderu danych i w razie potrzeby bardziej specjalistycznie.
      • Pliki w każdym folderze zestawu danych mogą mieć różne schematy na podstawie źródła danych i typu konta. Bądź gotowy na przekształcanie danych podczas wprowadzania do innych systemów, takich jak Microsoft Fabric.
      • Odczyt z magazynu jest odradzany ze względu na względy wydajnościowe. Eksplorator danych jest zalecany w przypadku raportowania ponad 1 milionów dolarów kosztów.

Informacje o importowaniu danych w funkcji Exploratora Danych

Kiedy dane są importowane do Data Explorera, funkcje {dataset}_transform_v1_0() stosują reguły przekształcania w bazie danych Ingestion. Każdy zestaw danych ma inny zestaw reguł przekształcania opisanych w poniższych sekcjach.

Aby zapoznać się z listą żądanych zmian, rozważanych pomysłów i pytaniami dotyczącymi podstawowych zestawów danych usługi Cost Management, zobacz problem nr 1111. Pozostaw komentarze dotyczące tego problemu, jeśli znajdziesz możliwości rozwiązania wszelkich problemów lub wyrazić swoje poparcie dla dowolnego z konkretnych problemów.

Przekształcenia kosztowych danych

Obsługiwane zestawy danych:

  • Microsoft FocusCost: 1.0r2, , 1.01.0-preview(v1)

Następujące zestawy danych zostały uwzględnione w projekcie, ale nie są obsługiwane natywnie. Aby pozyskać te zestawy danych, utwórz potok danych (lub proces zewnętrzny), który przesyła pliki parquet do folderu ingestion/Costs/yyyy/mm/{scope-path} w przestrzeni pamięciowej. {scope-path} może być dowolną unikatową ścieżką, na przykład aws/123 lub gcp/projects/foo. Jedynym wymaganiem jest zapewnienie, że każdy zakres znajduje się w osobnym folderze. Po skopiowaniu zawartości zewnętrznej utwórz również plik manifest.json, aby uruchomić eksplorację danych przez Data Explorer.

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

Przekształca:

  • wersja 0.7+:
    • Wyrównaj nazwy kolumn FOCUS 1.0-preview do fokusu 1.0.
      • Obejmuje konwersję wersji zapoznawczej FOCUS 1.0 na 1.0.
    • Dodaj x_IngestionTime, aby wskazać, kiedy wiersz został ostatnio zaktualizowany.
    • Dodaj x_SourceChanges, aby zidentyfikować, kiedy dane w wierszu są zmieniane przez huby.
    • Zaktualizuj ProviderName i PublisherName, jeśli nie zostaną określone.
    • Dodaj x_SourceName, x_SourceProvider, x_SourceTypei x_SourceVersion, aby zidentyfikować oryginalny pozyskany zestaw danych.
    • Wypełnij brakujące wartości ListCost, ListUnitPrice, ContractedCosti ContractedUnitPrice na podstawie arkusza cen.
      • Ten proces wymaga wyeksportowania cen przed kosztem. Brak cen dla pierwszego dnia miesiąca, jeśli koszty są pozyskiwane przed dostępnością cen na dany miesiąc.
    • Napraw ContractedCost, gdy jest ustawiony niepoprawnie z powodu błędu w usłudze Cost Management.
    • Zmień ResourceName i x_ResourceGroupName na małe litery, aby rozwiązać problemy ze spójnością wielkości liter, które przerywają grupowanie i filtrowanie.
    • Dodaj x_BillingAccountAgreement na podstawie typu konta.
  • wersja 0.8+:
    • Napraw wszelkie wartości ResourceType używające identyfikatorów typów zasobów wewnętrznych (na przykład microsoft.compute/virtualmachines).
  • wersja 0.9+:
    • Małe litery BillingAccountId , aby upewnić się, że sprzężenie ceny pasuje do wszystkich wierszy.
    • Małe litery CommitmentDiscountId , aby uniknąć zduplikowanych wierszy podczas agregowania danych.
    • Dodaj nowe x_SourceChanges sprawdzenia dla ListCostLessThanContractedCost i ContractedCostLessThanEffectiveCost.
  • wersja 0.10+:
    • Popraw x_EffectiveUnitPrice, gdy jest obliczane i występuje błąd zaokrąglenia w porównaniu z x_BilledUnitPrice lub ContractedUnitPrice.
    • Oblicz wartość PricingQuantity i ConsumedQuantity, gdy jest koszt, ale nie ma ilości.
    • Ustaw ContractedCost wartość na EffectiveCost , gdy nie jest ustawiona.
    • Ustaw ListCost wartość na ContractedCost , gdy nie jest ustawiona.
    • Usuń element "-2" w kolumnie x_InvoiceSectionId .
    • Usuń "Nieprzypisane" z kolumny x_InvoiceSectionName.
    • Poprawiono x_EffectiveUnitPrice , gdy obliczenie zawiera błąd zaokrąglania.
    • Dodaj nowe x_SourceChanges testy dla MissingConsumedQuantity, MissingPricingQuantity i XEffectiveUnitPriceRoundingError.
  • wersja 0.11+:
    • Zmień BillingPeriodStart i BillingPeriodEnd na pierwszy dzień miesiąca.

Przekształcenia danych dotyczących cen

Obsługiwane zestawy danych:

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

Przekształca:

  • wersja 0.7 lub nowsza
    • Wyrównaj nazwy kolumn do FOCUS 1.0.
      • Obejmuje wymuszanie spójności nazw kolumn EA i MCA.
      • Wartości bazowe, które mogą się różnić w zależności od EA i MCA, nie ulegają zmianie.
    • Przekonwertuj okres ISO x_SkuTerm na określoną liczbę miesięcy, zgodnie ze szczegółami kosztów.
      • Czekamy na FOCUS, aby podjąć decyzję, jak zdefiniować okresy przed zmianą tego parametru na format ISO lub inny.
    • Zastąp ContractedUnitPrice plan oszczędnościowy odpowiednikiem zgodnym z zapotrzebowaniem.
    • Ustaw ListUnitPrice, aby użycie planu oszczędności było równoważne z użyciem na żądanie.
    • Dodaj SkuPriceIdv2 jako bardziej precyzyjną wartość SkuPriceId niż ta, która jest obecnie w szczegółach kosztów.
    • Dodaj x_IngestionTime, aby wskazać, kiedy wiersz został ostatnio zaktualizowany.
    • Dodaj x_CommitmentDiscountSpendEligibility i x_CommitmentDiscountUsageEligibility.
    • Rozwiń x_PricingUnitDescription w PricingUnit i x_PricingBlockSize.
    • Dodaj x_BillingAccountAgreement na podstawie typu konta.
    • Zmień x_EffectivePeriodEnd na wyłączną datę zakończenia.
    • Dodaj x_EffectiveUnitPriceDiscount, x_ContractedUnitPriceDiscounti x_TotalUnitPriceDiscount, aby podsumować dostępne rabaty na jednostkę SKU.
    • Dodaj x_EffectiveUnitPriceDiscountPercent, x_ContractedUnitPriceDiscountPercenti x_TotalUnitPriceDiscountPercent, aby podsumować procent rabatu na jednostkę SKU.
    • Dodaj x_SourceName, x_SourceProvider, x_SourceTypei x_SourceVersion, aby zidentyfikować oryginalny pozyskany zestaw danych.
  • wersja 0.9+:
    • Zapisz BillingAccountId małą literą, aby upewnić się, że sprzężenie kosztów pasuje do wszystkich wierszy.

Przekształcenia danych rekomendacji

Obsługiwane zestawy danych:

  • Microsoft ReservationRecommendations: 2023-05-01 (EA i MCA)

Przekształca:

  1. Wyrównaj nazwy kolumn do FOCUS 1.0.
    • Obejmuje wymuszanie spójności nazw kolumn EA i MCA.
    • Wartości bazowe, które mogą się różnić w zależności od EA i MCA, nie ulegają zmianie.
  2. Dodaj x_SourceName, x_SourceProvider, x_SourceTypei x_SourceVersion, aby zidentyfikować oryginalny pozyskany zestaw danych.

Przekształcanie danych transakcji

Obsługiwane zestawy danych:

  • Transakcje rezerwacji firmy Microsoft: 2023-05-01 (EA i MCA)

Przekształca:

  1. Wyrównaj nazwy kolumn do FOCUS 1.0.
    • Obejmuje wymuszanie spójności nazw kolumn EA i MCA.
    • Wartości bazowe, które mogą się różnić w zależności od EA i MCA, nie ulegają zmianie.
  2. Dodaj x_SourceName, x_SourceProvider, x_SourceTypei x_SourceVersion, aby zidentyfikować oryginalny pozyskany zestaw danych.

Przekształcanie danych dotyczących wykorzystania rabatu zobowiązaniowego

Obsługiwane zestawy danych:

  • Szczegóły rezerwacji Microsoft: 2023-03-01 (EA i MCA)

Przekształca:

  1. Wyrównaj nazwy kolumn do FOCUS 1.0.
    • Obejmuje wymuszanie spójności nazw kolumn EA i MCA.
    • Wartości bazowe, które mogą się różnić w zależności od EA i MCA, nie ulegają zmianie.
  2. Dodaj kolumnę ResourceType z nazwą wyświetlaną typu zasobu.
  3. Dodaj kolumny ServiceName, ServiceCategoryi x_ServiceModel.
  4. Zastąp wartość "NA" wartością null dla x_CommitmentDiscountNormalizedGroup.
  5. Dodaj x_CommitmentDiscountQuantity na podstawie FOCUS 1.1.

Informacje o kontenerze przetwarzania danych

Centra FinOps opierają się na określonej ścieżce folderu i formacie nazwy pliku w kontenerze magazynu przechowywania danych:

ingestion/{dataset}/{date-folder-path}/{scope-id-path}/{ingestion-id}__{original-file-name}.parquet
  • ingestion to kontener, w którym potok danych zapisuje dane.
  • {dataset} to wyeksportowany typ zestawu danych. W przypadku ingestii do usługi Azure Data Explorer, baza danych ingestii musi mieć zgodną tabelę "_raw" z uwzględnieniem wielkości liter (na przykład "Costs_raw"). Centra FinOps obsługują następujące zestawy danych w tej wersji:
    • CommitmentDiscountUsage — eksportowanie szczegółów rezerwacji usługi Cost Management.
    • Koszty: dane dotyczące kosztów i użycia FOCUS.
    • Ceny — eksport arkusza cenowego Cost Management.
    • Zalecenia — eksportowanie zaleceń dotyczących rezerwacji w ramach Cost Management.
    • Transakcje — eksport transakcji rezerwacji w zarządzaniu kosztami.
    • Aby pozyskać niestandardowe zestawy danych, utwórz pasującą tabelę {dataset}_raw i mapowanie pozyskiwania parquet w bazie danych pozyskiwania .
  • {date-folder-path} może być co najmniej jednym folderem wskazującym, ile pozyskanych zestawów danych należy zachować. Przykłady:
    • all (lub dowolny symbol zastępczy), aby nie śledzić historii zestawu danych. Każde wczytywanie zastępuje poprzednie dane. Raporty Power BI oparte na magazynie nie są obsługiwane.
    • {yyyy} jako czterocyfrowy rok wyeksportowanego zestawu danych, aby zachować tylko najnowsze przetwarzanie w każdym roku. Raporty Power BI oparte na magazynie nie są obsługiwane.
    • {yyyy}/{mm} jako czterocyfrowy rok i dwucyfrowy miesiąc wyeksportowanego zestawu danych, aby zachować najnowsze pozyskiwanie miesięcznie.
    • {yyyy}/{mm}/{dd} jako czterocyfrowy rok, dwucyfrowy miesiąc i dwucyfrowy dzień wyeksportowanego zestawu danych, aby zachować najnowsze dzienne załadowanie. Raporty Power BI oparte na magazynie nie są obsługiwane.
  • {scope-id-path} jest w pełni kwalifikowanym identyfikatorem zakresu zasobu, z którego pochodzą dane. W przypadku pozyskiwania danych spoza platformy Azure zalecamy użycie hierarchii logicznej na podstawie zakresu danych (na przykład aws/{account-id}, gcp/{project-name}, oci/{component-id}/{component-id}).
  • {ingestion-id} jest unikatowym identyfikatorem pozyskanego zestawu danych. Ten identyfikator może być identyfikatorem GUID, znacznikiem czasu lub dowolną wartością, o ile jest spójny we wszystkich plikach pozyskanego zestawu danych. Ta wartość służy do usuwania wcześniej pozyskanych danych w tej samej ścieżce folderu.
  • {original-file-name} ma być oryginalną nazwą pliku lub innym identyfikatorem wskazującym, skąd pochodzą dane w pliku. Ta wartość jest tylko dla celów rozwiązywania problemów.

Pełna ścieżka folderu i identyfikator załadunku są używane w celu zapewnienia, że dane nie są zduplikowane w magazynie danych ani w usłudze Azure Data Explorer. Oryginalna nazwa pliku jest dodawana do zakresów usługi Azure Data Explorer na potrzeby rozwiązywania problemów, ale nie jest śledzona ani używana przez centra FinOps.

Jeśli potrzebujesz używać hubów do monitorowania danych spoza platformy Azure, przekonwertuj dane na FOCUS i umieść je w kontenerze pozyskiwania, korzystając z tych wskazówek. Uwaga Obsługa danych spoza platformy Azure nie została jawnie przetestowana w najnowszej wersji. Jeśli wystąpią jakiekolwiek problemy, utwórz problem.


Informacje o eksportach

Centra FinOps wykorzystują eksporty usługi Cost Management w celu uzyskania danych dotyczących kosztów. Usługa Cost Management kontroluje strukturę folderów dla wyeksportowanych danych w kontenerze magazynu msexports. Typowa ścieżka wygląda następująco:

{container}/{path}/{date-range}/{export-name}/{export-time}/{guid}/{file}

Centra FinOps wykorzystują plik manifestu do identyfikowania zakresu, zestawu danych, miesiąca itp. Jedyną ważną częścią ścieżki dla centrów jest kontener, który musi być msexports.

Nie eksportuj danych do kontenera zbierania danych. Wyeksportowane pliki CSV muszą zostać opublikowane w kontenerze msexports, aby zostały przetworzone przez silnik koncentratorów.

Aby pozyskać dane niestandardowe, zapisz pliki parquet w kontenerze pozyskiwania dla raportów usługi Power BI zestawu narzędzi FinOps, które będą działać zgodnie z oczekiwaniami. Po dodaniu wszystkich plików parquet dodaj pusty plik manifest.json w celu wyzwolenia importu.

Aby pozyskać plik CSV z eksportów usługi Cost Management, zapisz pliki w określonym folderze w kontenerze msexports . Po dodaniu wszystkich plików dodaj plik manifest.json na podstawie poniższego szablonu. Wprowadź następujące zmiany, aby zapewnić pomyślne przetwarzanie:

  1. Zmień <export-name> wartość na unikatową w zakresie zestawu danych, który jest pozyskiwany.
    • Jest to używane tylko w przypadku rekomendacji w celu odróżnienia wielu różnych typów zaleceń pozyskiwanych, które nie są możliwe do zidentyfikowania w samym manifeście eksportu. W przypadku zaleceń dotyczących rezerwacji najlepiej uwzględnić usługę, zakres (pojedynczy/udostępniony) i okres retrospekcji.
  2. Zmień <dataset> i <version> na typ eksportu oraz wersję w zarządzaniu kosztami. Zapoznaj się z poniższą listą obsługiwanych zestawów danych.
  3. Zmień <scope> na identyfikator zasobu platformy Azure dla zakresu, z którego pochodzą dane.
  4. Zmień <guid> na unikatowy identyfikator GUID.
  5. Zmień <yyyy-MM> na rok i miesiąc zestawu danych.
  6. Zmień <path-to-file> na pełną ścieżkę folderu w kontenerze (nie dołączaj «msexports»).
  7. Zmień <file-name> na nazwę pierwszego pliku przekazanego do magazynu.
  8. Jeśli masz więcej niż jeden plik CSV, skopiuj obiekt blob dla każdego przekazanego pliku i zaktualizuj jego nazwę.
{
  "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"
    }
  ]
}

Centra FinOps obsługują następujące typy zestawów danych, wersje i wersje interfejsu API:

  • FocusCost: 1.0r2, , 1.01.0-preview(v1)
  • Arkusz cenowy: 2023-05-01
  • Szczegóły rezerwacji: 2023-03-01
  • Rekomendacje dotyczące rezerwacji: 2023-05-01
  • Transakcje rezerwacji: 2023-05-01
  • Wersje interfejsu API: 2023-07-01-preview

Węzły FinOps w wersji 0.6

W poniższych sekcjach opisano proces danych w centrach FinOps 0.6.

Konfiguracja zakresu w wersji 0.6

Poniższe kroki są wykonywane po dodaniu nowego zakresu zarządzanego do wystąpienia centrum. Zakresy niezarządzane (w których eksporty usługi Cost Management są konfigurowane ręcznie) nie wymagają żadnej konfiguracji w centrach.

  1. Wyzwalacz config_SettingsUpdated jest uruchamiany po zaktualizowaniu pliku settings.json .
  2. Potok config_ConfigureExports tworzy nowe eksporty dla wszystkich dodanych nowych zakresów.

Pozyskiwanie danych w wersji 0.6

Pozyskiwanie danych można podzielić na dwie części:

  1. Eksportowanie danych do magazynu.
  2. Centra przetwarzają i pozyskiwają dane.

W przypadku zakresów zarządzanych centra wykonują następujące czynności:

  1. Wyzwalacze config_DailySchedule i config_MonthlySchedule są uruchamiane zgodnie z ich harmonogramami, aby rozpocząć pozyskiwanie danych.
  2. Potok config_StartExportProcess pobiera odpowiednie eksporty dla uruchomionego harmonogramu.
  3. Potok config_RunExportJobs wykonuje każdy z wybranych eksportów.
  4. Usługa Cost Management eksportuje nieprzetworzone szczegóły kosztów do kontenera msexports . Dowiedz się więcej.
  5. Potok msexports_ExecuteETL inicjuje działanie potoku extract-transform-load (ETL) w momencie dodania plików do kontenera msexports.
  6. Potok przetwarzania msexports_ETL_ingestion przekształca dane w format Parquet i przenosi je do kontenera pozyskiwania przy użyciu skalowalnej struktury plików. Dowiedz się więcej.
  7. Usługa Power BI lub inne narzędzia odczytują dane z kontenera ingestion.

Po uruchomieniu eksportów, niezależnie od tego, czy są zarządzane, czy niezarządzane, węzły wykonują następujące czynności:

  1. Potok msexports_ExecuteETL uruchamia proces extract-transform-load (ETL) w momencie dodawania plików do przechowywania.
  2. Potok przetwarzania msexports_ETL_ingestion przekształca dane w format Parquet i przenosi je do kontenera pozyskiwania przy użyciu skalowalnej struktury plików. Dowiedz się więcej.
  3. Usługa Power BI lub inne narzędzia odczytują dane z kontenera ingestion.

Informacje o wczytywaniu w wersji 0.6

Centra FinOps opierają się na określonej ścieżce folderu i formacie nazwy pliku w kontenerze pozyskiwania.

ingestion/{dataset}/{date-folder-path}/{scope-id-path}/{ingestion-id}__{original-file-name}.parquet
  • ingestion to kontener, w którym potok danych zapisuje dane.
  • {dataset} to wyeksportowany typ zestawu danych.
  • {date-folder-path} może być co najmniej jednym folderem wskazującym, ile pozyskanych zestawów danych należy zachować. Przykłady:
    • all (lub dowolny symbol zastępczy), aby nie śledzić historii zestawu danych. Każde wczytywanie zastępuje poprzednie dane. Raporty Power BI oparte na magazynie nie są obsługiwane.
    • {yyyy} jako czterocyfrowy rok wyeksportowanego zestawu danych, aby zachować tylko najnowsze przetwarzanie w każdym roku. Raporty Power BI oparte na magazynie nie są obsługiwane.
    • {yyyy}/{mm} jako czterocyfrowy rok i dwucyfrowy miesiąc wyeksportowanego zestawu danych, aby zachować najnowsze pozyskiwanie miesięcznie.
    • {yyyy}/{mm}/{dd} jako czterocyfrowy rok, dwucyfrowy miesiąc i dwucyfrowy dzień wyeksportowanego zestawu danych, aby zachować najnowsze dzienne załadowanie. Raporty Power BI oparte na magazynie nie są obsługiwane.
  • {scope-id-path} jest w pełni kwalifikowanym identyfikatorem zakresu zasobu, z którego pochodzą dane. W przypadku pozyskiwania danych spoza platformy Azure zalecamy użycie hierarchii logicznej na podstawie zakresu danych (na przykład "aws/{account-id}", "gcp/{project-name}", "oci/{component-id}/{component-id}").
  • {ingestion-id} jest unikatowym identyfikatorem pozyskanego zestawu danych. Ten identyfikator może być identyfikatorem GUID, znacznikiem czasu lub dowolną wartością, o ile jest spójny we wszystkich plikach pozyskanego zestawu danych. Ta wartość służy do usuwania wcześniej pozyskanych danych w tej samej ścieżce folderu.
  • {original-file-name} ma być oryginalną nazwą pliku lub innym identyfikatorem wskazującym, skąd pochodzą dane w pliku. Ta wartość jest tylko dla celów rozwiązywania problemów.

Pełna ścieżka folderu i identyfikator załadunku są używane w celu zapewnienia, że dane nie są zduplikowane w magazynie danych ani w usłudze Azure Data Explorer. Oryginalna nazwa pliku jest dodawana do zakresów usługi Azure Data Explorer na potrzeby rozwiązywania problemów, ale nie jest śledzona ani używana przez centra FinOps.

Jeśli potrzebujesz używać hubów do monitorowania danych spoza platformy Azure, przekonwertuj dane na FOCUS i umieść je w kontenerze pozyskiwania, korzystając z tych wskazówek. Uwaga Obsługa danych spoza platformy Azure nie została jawnie przetestowana w najnowszej wersji. Jeśli wystąpią jakiekolwiek problemy, utwórz problem.


Informacje o eksportach w wersji 0.6

Centra FinOps używają eksportów usługi Cost Management w celu uzyskania danych kosztów. Usługa Cost Management kontroluje strukturę folderów dla wyeksportowanych danych w kontenerze msexports . Typowa ścieżka wygląda następująco:

{container}/{path}/{date-range}/{export-name}/{export-time}/{guid}/{file}

Od wersji 0.4 centra FinOps nie korzystają ze ścieżek plików. Huby wykorzystują plik manifestu do identyfikowania zakresu, zestawu danych, miesiąca itp. Jedyną ważną częścią ścieżki dla hubów jest kontener, który musi być msexports.

Ostrzeżenie

  • Nie eksportuj danych do kontenera zbierania danych. Wyeksportowane pliki CSV muszą zostać opublikowane w kontenerze msexports, aby zostały przetworzone przez silnik koncentratorów.
  • Aby zaimportować dane niestandardowe, zapisz pliki parquet wyrównane z FOCUS w kontenerze pozyskiwania zestawu narzędzi FinOps dla raportów Power BI, aby działały zgodnie z oczekiwaniami.

Manifesty eksportowe mogą ulec zmianie wraz z wersjami interfejsu API. Oto przykład z wersją 2023-07-01-previewinterfejsu 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": ###
    }
  ]
}

Centra FinOps używają następujących właściwości:

  • exportConfig.resourceId aby zidentyfikować zakres.
  • exportConfig.type aby zidentyfikować typ zestawu danych.
  • exportConfig.dataVersion aby zidentyfikować wersję zestawu danych.
  • runInfo.startDate w celu zidentyfikowania wyeksportowanego miesiąca.

Centra FinOps obsługują następujące typy zestawów danych, wersje i wersje interfejsu API:

  • FocusCost: 1.0, 1.0-preview(v1)
  • Arkusz cenowy: 2023-05-01
  • Szczegóły rezerwacji: 2023-03-01
  • Rekomendacje dotyczące rezerwacji: 2023-05-01
  • Transakcje rezerwacji: 2023-05-01
  • Wersje interfejsu API: 2023-07-01-preview

Koncentratory FinOps w wersji 0.4-0.5

Poniższe informacje opisują sposób przetwarzania danych w centrach FinOps w wersji 0.4 i 0.5.

Konfiguracja zakresu w wersji 0.4-0.5

  1. Wyzwalacz config_SettingsUpdated jest uruchamiany po zaktualizowaniu pliku settings.json .
  2. Potok config_ConfigureExports tworzy nowe eksporty dla wszystkich dodanych nowych zakresów.

Importowanie danych w wersji 0.4-0.5

W przypadku zakresów zarządzanych:

  1. Wyzwalacze config_DailySchedule i config_MonthlySchedule są uruchamiane zgodnie z ich harmonogramami, aby rozpocząć pozyskiwanie danych.
  2. Potok config_ExportData pobiera odpowiednie eksporty dla uruchomionego harmonogramu.
  3. Potok config_RunExports wykonuje każdy z wybranych eksportów.
  4. Usługa Cost Management eksportuje nieprzetworzone szczegóły kosztów do kontenera msexports . Aby uzyskać więcej informacji, zobacz About export in v04-05 (Informacje o eksportach w wersji 04-05).

Po zakończeniu eksportowania dla zakresów zarządzanych i niezarządzanych:

  1. Potok msexports_ExecuteETL uruchamia proces extract-transform-load (ETL) w momencie dodawania plików do przechowywania.
  2. Potok msexports_ETL_ingestion przekształca dane w standardowy schemat i zapisuje surowe dane w formacie Parquet do kontenera ingestion. Aby uzyskać więcej informacji, zobacz About ingestion in v04-05 (Informacje o pozyskiwaniu w wersji 04-05).
  3. Usługa Power BI odczytuje dane kosztów z kontenera pozyskiwania.

Informacje o przetwarzaniu danych w wersji 0.4-0.5

Centra FinOps opierają się na określonej ścieżce folderu w kontenerze pozyskiwania:

ingestion/{dataset}/{yyyy}/{mm}/{scope-id}
  • ingestion to kontener, w którym potok danych zapisuje dane.
  • {dataset} to wyeksportowany typ zestawu danych.
  • {month} to rok i miesiąc wyeksportowanych danych sformatowanych jako yyyyMM.
  • {scope-id} oczekuje się, że będzie w pełni kwalifikowanym identyfikatorem zasobu tego zakresu, z którego pochodzą dane.

Jeśli musisz używać hubów do monitorowania danych spoza platformy Azure, przekonwertuj dane na fokus i umieść je w kontenerze ingestji. Ten proces nie został jawnie przetestowany w najnowszej wersji. Jeśli wystąpią jakiekolwiek problemy, utwórz problem.

Informacje o eksportach w wersji 0.4-0.5

Centra FinOps używają eksportów usługi Cost Management w celu uzyskania danych kosztów. Usługa Cost Management kontroluje strukturę folderów dla wyeksportowanych danych w kontenerze msexports . Typowa ścieżka wygląda następująco:

{container}/{path}/{date-range}/{export-name}/{export-time}/{guid}/{file}

Od wersji 0.4 centra FinOps nie korzystają ze ścieżek plików. Centra wykorzystują plik manifestu do identyfikowania zakresu, zestawu danych, miesiąca itd. Jedyną ważną częścią ścieżki dla hubów jest kontener, który musi być msexports.

Uwaga

Nie eksportuj danych do kontenera zbierania danych. Wyeksportowane pliki CSV muszą zostać opublikowane w kontenerze msexports, aby zostały przetworzone przez silnik koncentratorów.

Aby zaimportować dane niestandardowe, zapisz pliki parquet wyrównane z FOCUS w kontenerze pozyskiwania zestawu narzędzi FinOps dla raportów Power BI, aby działały zgodnie z oczekiwaniami.

Manifesty eksportowe mogą ulec zmianie wraz z wersjami interfejsu API. Oto przykład z wersją 2023-07-01-previewinterfejsu 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": ###
    }
  ]
}

Centra FinOps używają następujących właściwości:

  • exportConfig.resourceId aby zidentyfikować zakres.
  • exportConfig.type aby zidentyfikować typ zestawu danych.
  • exportConfig.dataVersion aby zidentyfikować wersję zestawu danych.
  • runInfo.startDate w celu zidentyfikowania wyeksportowanego miesiąca.

Centra FinOps obsługują następujące typy zestawów danych, wersje i wersje interfejsu API:

  • FocusCost: 1.0, 1.0-preview(v1)
  • Arkusz cenowy: 2023-05-01
  • Szczegóły rezerwacji: 2023-03-01
  • Rekomendacje dotyczące rezerwacji: 2023-05-01
  • Transakcje rezerwacji: 2023-05-01
  • Wersje interfejsu API: 2023-07-01-preview

Centra FinOps w wersji 0.2-0.3

Poniższe kroki przedstawiają proces eksportowania i przetwarzania danych kosztów przy użyciu centrów FinOps w wersji 0.2-0.3:

  1. Usługa Cost Management eksportuje nieprzetworzone szczegóły kosztów do kontenera msexports .
  2. Potok msexports_ExecuteETL uruchamia proces extract-transform-load (ETL) w momencie dodawania plików do przechowywania.
  3. Potok msexports_ETL_ingestion zapisuje wyeksportowane dane w formacie Parquet w kontenerze ingestion.
  4. Usługa Power BI odczytuje dane kosztów z kontenera pozyskiwania.

Huby FinOps 0.2-0.3 używają ścieżki eksportu, żeby określić wyeksportowany zakres i miesiąc. Ten punkt jest ważny, ponieważ aktualizacje ścieżki mogą przerywać przepływy danych. Aby uniknąć tego problemu, zalecamy aktualizację do centrów FinOps w wersji 0.4. Oczekiwana ścieżka powinna naśladować:

msexports/{scope-id}/{export-name}/{date-range}/{export-time}/{guid}/{file}
  • msexports jest kontenerem określonym w eksporcie.
  • {scope-id} to ścieżka folderu określona w eksporcie.

    Usługa Hubs 0.3 i starsze używają jej do identyfikowania zakresu, z którego pochodzą dane. Zalecamy użycie identyfikatora zakresu, ale można użyć dowolnej wartości. Przykładowe identyfikatory zakresów obejmują:

    Typ zakresu Przykładowa wartość
    Subskrypcja /subscriptions/###
    Grupa zasobów /subscriptions/###/resourceGroups/###
    Konto billingowe /providers/Microsoft.Billing/billingAccounts/###
    Profil rozliczeniowy /providers/Microsoft.Billing/billingAccounts/###/billingProfiles/###
  • {export-name} to nazwa eksportu.

    Centra ignorują ten folder.

  • {date-range} to eksportowane dane zakresu dat.

    Hubs w wersji 0.3 i wcześniejszych używają tego do identyfikowania miesiąca. Format dla tego folderu to yyyyMMdd-yyyyMMdd. Zamiast tego usługa Hubs 0.4 używa manifestu.

  • {export-time} to sygnatura czasowa uruchomienia eksportu.

    Centra ignorują to. Format dla tego folderu to yyyyMMddHHmm.

  • {guid} jest unikatowym identyfikatorem GUID i nie zawsze jest obecny.

    Centra ignorują to. Usługa Cost Management nie zawsze zawiera ten folder. Niezależnie od tego, czy jest on uwzględniony, zależy od wersji interfejsu API użytej do utworzenia eksportu.

  • {file} jest albo manifestem, albo wyeksportowanymi danymi.

    Wersja 0.3 i starsze ignorują pliki manifestu i monitorują tylko pliki *.csv . W przyszłej wersji koncentratory będą monitorować manifest.


Koncentratory FinOps w wersji 0.1

W poniższych krokach opisano proces eksportowania i przetwarzania danych kosztów przy użyciu centrów FinOps w wersji 0.1:

  1. Usługa Cost Management eksportuje nieprzetworzone szczegóły kosztów do kontenera msexports .
  2. Potok msexports_transform zapisuje nieprzetworzone dane w formacie parquet w kontenerze ingestion.
  3. Usługa Power BI odczytuje dane kosztów z kontenera pozyskiwania.

Prześlij opinię

Daj nam znać, jak nam idzie, zostawiając krótką opinię. Te recenzje służą do ulepszania i rozszerzania narzędzi i zasobów FinOps.

Jeśli szukasz czegoś konkretnego, zagłosuj na istniejący lub utwórz nowy pomysł. Podziel się pomysłami z innymi osobami, aby uzyskać więcej głosów. Skupiamy się na pomysłach z największą większością głosów.