Bagikan melalui


Cara data diproses di hub FinOps

Hub FinOps melakukan banyak aktivitas pemrosesan data untuk membersihkan, menormalkan, dan mengoptimalkan data. Bagian berikut menunjukkan bagaimana data mengalir dari Cost Management ke instans hub.


Penyiapan cakupan

Cakupan adalah sebuah tingkat dalam hierarki sumber daya cloud dan akun yang memberikan akses ke data biaya, penggunaan, dan karbon. Untuk hub FinOps, kami biasanya merekomendasikan penggunaan akun penagihan Perjanjian Enterprise (EA) atau profil penagihan Perjanjian Pelanggan Microsoft (MCA), namun cakupan cloud apa pun cukup untuk analisis dasar. Kekhawatiran utama adalah apakah harga dan data reservasi diperlukan, karena Cost Management hanya mengekspos data untuk akun penagihan EA dan profil penagihan MCA.

Hub FinOps mendukung konfigurasi cakupan dengan mengonfigurasi ekspor Cost Management secara manual atau dengan memberikan akses hub FinOps untuk mengelola cakupan atas nama Anda. Cakupan terkelola dikonfigurasi dalam config/settings.json di penyimpanan hub. Informasi ini menjelaskan apa yang terjadi ketika cakupan terkelola baru ditambahkan ke dalam file ini. Cakupan yang tidak dikelola, di mana ekspor Cost Management dikonfigurasi secara manual, tidak memerlukan penyiapan lain.

Diagram yang menunjukkan proses pengaturan cakupan.

  1. Pemicu config_SettingsUpdated berjalan saat file settings.json diperbarui.
  2. Alur config_ConfigureExports membuat ekspor baru untuk cakupan baru apa pun yang ditambahkan.

Penyerapan data

Diagram berikut menggambarkan proses penyerapan data end-to-end dalam hub FinOps:

Diagram yang menggambarkan proses penyerapan data.

  1. (Opsional) Jika menggunakan ekspor terkelola:
    1. Pemicu config_DailySchedule dan config_MonthlySchedule berjalan pada jadwal masing-masing untuk memulai penyerapan data.
    2. Alur config_StartExportProcess mendapatkan ekspor yang berlaku untuk jadwal yang sedang berjalan.
    3. Alur config_RunExportJobs menjalankan masing-masing ekspor yang dipilih.
  2. Cost Management mengekspor detail biaya mentah ke kontainer msexports . Pelajari selengkapnya.
  3. Alur msexports_ExecuteETL mengantrekan alur extract-transform-load (ETL) saat file ditambahkan ke kontainer msexports .
  4. Alur msexports_ETL_ingestion mengubah data ke format parquet dan memindahkannya ke kontainer ingestion menggunakan struktur file yang dapat diskalakan. Pelajari selengkapnya.
  5. (Opsional) Jika menggunakan Azure Data Explorer:
    1. Alur ingestion_ExecuteETL mengantrekan alur penyerapan Data Explorer saat file manifest.json ditambahkan ke kontainer penyerapan .
      • Jika menyerap himpunan data kustom di luar ekspor Cost Management, buat file manifest.json kosong di folder penyerapan target setelah semua file lain siap (jangan tambahkan file ini saat file masih diunggah). File manifest.json tidak diurai dan dapat kosong. Satu-satunya tujuan adalah untuk menunjukkan bahwa semua file untuk pekerjaan pemrosesan ini telah ditambahkan.
      • Jika kluster tidak berjalan, alur akan memulainya. Azure Data Explorer dapat memakan waktu 15 menit atau lebih untuk memulai.
    2. Alur ingestion_ETL_dataExplorer memasukkan data ke dalam tabel {dataset}_raw di Data Explorer.
      • Nama himpunan data adalah folder pertama dalam kontainer penyerapan .
      • Semua tabel mentah ada di database Penyerapan di Data Explorer.
    3. Saat data diserap ke dalam tabel mentah di Data Explorer, kebijakan pembaruan menyalin data ke dalam tabel yang {dataset}_final_v1_0 sesuai menggunakan {dataset}_transform_v1_0() fungsi untuk menormalkan semua data agar selaras dengan FOCUS 1.0.
    4. Setelah penyerapan, alur ingestion_ETL_dataExplorer melakukan beberapa pembersihan, termasuk membersihkan data dalam tabel akhir yang melewati periode retensi data.
      • Pada 0,7, Data Explorer menerapkan retensi data dalam tabel mentah sementara retensi data dalam tabel akhir diterapkan oleh alur penyerapan. Jika penyerapan data berhenti, data historis tidak dihapus menyeluruh.
      • Retensi data dapat dikonfigurasi selama penyebaran templat atau secara manual dalam file config/settings.json di penyimpanan.
  6. Laporan dan alat lain seperti Power BI membaca data dari Data Explorer atau kontainer penyerapan .
    • Data di Data Explorer dapat dibaca dari database Hub .
      • {dataset}() Gunakan fungsi untuk menggunakan skema terbaru.
        • Fungsi ini berguna untuk eksplorasi cepat, tetapi dapat memperkenalkan perubahan yang merusak saat instance hub FinOps diperbarui.
      • {dataset}_v1_0() Gunakan fungsi untuk menggunakan skema FOCUS 1.0.
        • Skema fungsi versi tidak boleh berubah dari waktu ke waktu tetapi nilai dapat berubah jika sumber data mengubah nilai tersebut.
      • Hindari menggunakan database Ingestion untuk query. Meskipun tidak dilarang secara eksplisit, database Penyerapan harus dianggap sebagai area internal untuk penahapan dan persiapan data.
    • Data dalam penyimpanan dapat dibaca dari ingestion/<dataset>/<year>/<month>/<scope-path>.
      • Data harus dibaca secara rekursif dari direktori himpunan data dan dapat mencakup lebih banyak jika diperlukan untuk spesifikasi.
      • File di setiap folder himpunan data mungkin memiliki skema yang berbeda berdasarkan sumber data dan jenis akun. Bersiaplah untuk mengubah data jika menyerap di sistem lain, seperti Microsoft Fabric.
      • Membaca dari penyimpanan tidak disarankan karena alasan performa. Data Explorer direkomendasikan saat melaporkan biaya lebih dari $ 1 juta.

Tentang penyerapan Data Explorer

Saat data diserap ke dalam Data Explorer, {dataset}_transform_v1_0() fungsi menerapkan aturan transformasi dalam database Ingestion. Setiap himpunan data memiliki sekumpulan aturan transformasi yang berbeda yang tercakup di bagian berikut.

Untuk daftar perubahan yang diminta, ide yang sedang dipertimbangkan, dan pertanyaan terbuka tentang himpunan data Cost Management yang mendasar, lihat masalah #1111. Tinggalkan komentar tentang masalah tersebut jika Anda menemukan peluang untuk mengatasi masalah apa pun atau untuk menyuarakan dukungan Anda untuk salah satu masalah tertentu.

Transformasi data biaya

Himpunan data yang didukung:

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

Himpunan data berikut diperhitungkan dalam desain, tetapi tidak didukung secara asli. Untuk menyerap himpunan data ini, buat alur data (atau proses eksternal) yang mendorong file parket ke ingestion/Costs/yyyy/mm/{scope-path} folder di penyimpanan. {scope-path} bisa menjadi jalur unik apa pun, seperti aws/123 atau gcp/projects/foo. Satu-satunya persyaratan adalah memastikan setiap cakupan berada di folder terpisah. Setelah menyalin konten eksternal, buat juga file manifest.json untuk memicu penyerapan Data Explorer.

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

Mengubah:

  • v0.7+:
    • Selaraskan nama kolom FOCUS 1.0-preview dengan FOCUS 1.0.
      • Termasuk mengonversi versi pratinjau FOCUS 1.0 menjadi versi 1.0.
    • Tambahkan x_IngestionTime untuk menunjukkan kapan baris terakhir diperbarui.
    • Tambahkan x_SourceChanges untuk mengidentifikasi kapan data dalam baris diubah oleh hub.
    • Perbarui ProviderName dan PublisherName jika belum ditentukan.
    • Tambahkan x_SourceName, x_SourceProvider, x_SourceType, dan x_SourceVersion untuk mengidentifikasi himpunan data asli yang diserap.
    • Isi nilai ListCost, ListUnitPrice, ContractedCost, dan ContractedUnitPrice yang hilang berdasarkan lembar harga.
      • Proses ini mengharuskan harga diekspor terlebih dahulu sebelum biaya. Harga tidak tersedia pada hari pertama bulan jika biaya dimasukkan sebelum harga tersedia untuk bulan tersebut.
    • Perbaiki ContractedCost ketika pengaturan tidak tepat karena bug di Cost Management.
    • Ubah ResourceName dan x_ResourceGroupName menjadi huruf kecil untuk mengatasi masalah konsistensi casing yang merusak pengelompokan dan pemfilteran.
    • Tambahkan x_BillingAccountAgreement berdasarkan jenis akun.
  • v0.8+:
    • Perbaiki nilai apa pun ResourceType yang menggunakan ID jenis sumber daya internal (misalnya, microsoft.compute/virtualmachines).
  • v0.9+:
    • BillingAccountId Huruf kecil untuk memastikan gabungan harga cocok dengan semua baris.
    • CommitmentDiscountId Huruf kecil untuk menghindari baris duplikat saat menggabungkan data.
    • Tambahkan pemeriksaan baru x_SourceChanges untuk ListCostLessThanContractedCost dan ContractedCostLessThanEffectiveCost.
  • v0.10+:
    • Perbaiki x_EffectiveUnitPrice ketika dihitung dan ada kesalahan pembulatan dibandingkan dengan x_BilledUnitPrice atau ContractedUnitPrice.
    • Hitung PricingQuantity dan ConsumedQuantity ketika ada biaya tetapi tidak ada kuantitas.
    • Atur ContractedCost ke EffectiveCost saat belum diatur.
    • Atur ListCost ke ContractedCost saat belum diatur.
    • Hapus "-2" di x_InvoiceSectionId kolom.
    • Hapus "Tidak Ditetapkan" di kolom x_InvoiceSectionName.
    • Dikoreksi x_EffectiveUnitPrice ketika terjadi kesalahan pembulatan dalam perhitungan.
    • Tambahkan pemeriksaan baru x_SourceChanges untuk MissingConsumedQuantity, MissingPricingQuantity, dan XEffectiveUnitPriceRoundingError.
  • v0.11+:
    • Ubah BillingPeriodStart dan BillingPeriodEnd menjadi yang pertama dalam sebulan.
  • v12+:
    • Konversikan focus 1.0-preview dan 1.0 data ke FOCUS 1.2.
      • Diganti namanya x_InvoiceId menjadi InvoiceId.
      • Diganti namanya x_PricingCurrency menjadi PricingCurrency.
      • Diganti namanya x_SkuMeterName menjadi SkuMeter.
      • Diubah x_SkuDetails menjadi SkuPriceDetails:
        • Menambahkan CoreCount parameter untuk jumlah inti untuk SKU berdasarkan x_SkuDetails.VCPUs, x_SkuDetails.VCores dan x_SkuDetails.vCores.
        • Menambahkan InstanceType kunci untuk ukuran SKU berdasarkan x_SkuDetails.ServiceType dan x_SkuDetails.ServerSku.
        • Menambahkan kunci lisensi OperatingSystem untuk sistem operasi VM berdasarkan pada x_SkuDetails.ImageType.
        • Awali semua kunci lain dengan x_.
    • Menerapkan kolom berikut saat tidak diatur oleh Cost Management:
      • CapacityReservationId
      • CapacityReservationStatus
      • CommitmentDiscountQuantity
      • CommitmentDiscountUnit
      • x_CommitmentDiscountNormalizedRatio
    • Ditambahkan x_AmortizationClass untuk memfilter pembelian yang diamortisasi dan menghindari menghitung ListCost dan ContractedCost secara ganda untuk perhitungan penghematan.
    • Ditambahkan x_CommitmentDiscountUtilizationPotential dan x_CommitmentDiscountUtilizationAmount untuk menghitung pemanfaatan diskon komitmen.
    • Ditambahkan x_SkuCoreCount dan x_ConsumedCoreHours untuk jumlah inti dan jam inti untuk SKU berdasarkan x_SkuDetails.VCPUs, x_SkuDetails.VCores dan x_SkuDetails.vCores.
    • Ditambahkan x_SkuInstanceType untuk ukuran SKU berdasarkan x_SkuDetails.ServiceType dan x_SkuDetails.ServerSku.
    • Ditambahkan x_SkuOperatingSystem untuk sistem operasi VM berdasarkan x_SkuDetails.ImageType.
    • Menambahkan kolom Azure Hybrid Benefit:
      • x_SkuLicenseQuantity
      • x_SkuLicenseStatus
      • x_SkuLicenseType
      • x_SkuLicenseUnit
    • Menambahkan kolom diskon dan penghematan:
      • x_NegotiatedDiscountSavings
      • x_CommitmentDiscountSavings
      • x_TotalSavings
      • x_NegotiatedDiscountPercent
      • x_CommitmentDiscountPercent
      • x_TotalDiscountPercent
    • Ditambahkan x_SourceValues untuk melacak perubahan data selama penyerapan.

Transformasi Data Harga

Himpunan data yang didukung:

  • Lembar Harga Microsoft: 2023-05-01 (EA dan MCA)

Mengubah:

  • v0.7+
    • Sesuaikan nama kolom dengan FOCUS 1.0.
      • Termasuk memberlakukan konsistensi nama kolom EA dan MCA.
      • Tidak mengubah nilai yang mendasarinya, yang mungkin berbeda antara EA dan MCA.
    • Konversikan x_SkuTerm durasi ISO ke jumlah bulan tertentu agar sesuai dengan detail biaya.
      • Kami menunggu FOCUS untuk membuat penentuan cara menentukan durasi sebelum mengubah nilai ini ke ISO atau format lain.
    • Ganti ContractedUnitPrice untuk penggunaan paket penghematan dengan penggantinya yang setara untuk penggunaan berdasarkan permintaan.
    • Atur ListUnitPrice untuk penggunaan paket penghematan yang diatur ke setara sesuai permintaan.
    • Tambahkan SkuPriceIdv2 sebagai nilai SkuPriceId yang lebih akurat daripada yang ada saat ini dalam detail biaya.
    • Tambahkan x_IngestionTime untuk menunjukkan kapan baris terakhir diperbarui.
    • Tambahkan x_CommitmentDiscountSpendEligibility dan x_CommitmentDiscountUsageEligibility.
    • Perluas x_PricingUnitDescription ke PricingUnit dan x_PricingBlockSize.
    • Tambahkan x_BillingAccountAgreement berdasarkan jenis akun.
    • Ubah x_EffectivePeriodEnd menjadi tanggal akhir eksklusif.
    • Tambahkan x_EffectiveUnitPriceDiscount, x_ContractedUnitPriceDiscount, dan x_TotalUnitPriceDiscount untuk meringkas diskon yang tersedia per SKU.
    • Tambahkan x_EffectiveUnitPriceDiscountPercent, x_ContractedUnitPriceDiscountPercent, dan x_TotalUnitPriceDiscountPercent untuk meringkas persentase diskon per SKU.
    • Tambahkan x_SourceName, x_SourceProvider, x_SourceType, dan x_SourceVersion untuk mengidentifikasi himpunan data asli yang diserap.
  • v0.9+:
    • BillingAccountId Huruf kecil untuk memastikan gabungan biaya cocok dengan semua baris.
  • v12+:
    • Sesuaikan nama kolom dengan FOCUS 1.2:
      • Diganti namanya x_PricingCurrency menjadi PricingCurrency.
      • Diganti namanya x_SkuMeterName menjadi SkuMeter.
    • Menerapkan kolom berikut saat tidak diatur oleh Cost Management:
      • CommitmentDiscountUnit

Transformasi data untuk rekomendasi

Himpunan data yang didukung:

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

Mengubah:

  • v0.7+:
    • Sesuaikan nama kolom dengan FOCUS 1.0.
      • Termasuk memberlakukan konsistensi nama kolom EA dan MCA.
      • Tidak mengubah nilai yang mendasarinya, yang mungkin berbeda antara EA dan MCA.
    • Tambahkan x_SourceName, x_SourceProvider, x_SourceType, dan x_SourceVersion untuk mengidentifikasi himpunan data asli yang diserap.

Perubahan data transaksi

Himpunan data yang didukung:

  • Microsoft ReservationTransactions: 2023-05-01 (EA dan MCA)

Mengubah:

  • v0.7+:
    • Sesuaikan nama kolom dengan FOCUS 1.0.
      • Termasuk memberlakukan konsistensi nama kolom EA dan MCA.
      • Tidak mengubah nilai yang mendasarinya, yang mungkin berbeda antara EA dan MCA.
    • Tambahkan x_SourceName, x_SourceProvider, x_SourceType, dan x_SourceVersion untuk mengidentifikasi himpunan data asli yang diserap.
  • v12+:
    • Sesuaikan nama kolom dengan FOCUS 1.2:
      • Diganti namanya x_InvoiceId menjadi InvoiceId.

Transformasi data penggunaan diskon komitmen

Himpunan data yang didukung:

  • Microsoft ReservationDetails: 2023-03-01 (EA dan MCA)

Mengubah:

  1. Sesuaikan nama kolom dengan FOCUS 1.0.
    • Termasuk memberlakukan konsistensi nama kolom EA dan MCA.
    • Tidak mengubah nilai yang mendasarinya, yang mungkin berbeda antara EA dan MCA.
  2. Tambahkan ResourceType kolom dengan nama tampilan jenis sumber daya.
  3. Tambahkan ServiceName, ServiceCategory, dan x_ServiceModel kolom.
  4. Ganti "NA" dengan null untuk x_CommitmentDiscountNormalizedGroup.
  5. Tambahkan x_CommitmentDiscountQuantity berdasarkan FOCUS 1.1.

Tentang kontainer penyerapan

Hub FinOps mengandalkan jalur folder dan format nama file tertentu dalam kontainer penyimpanan ingesti :

ingestion/{dataset}/{date-folder-path}/{scope-id-path}/{ingestion-id}__{original-file-name}.parquet
  • ingestion adalah kontainer tempat alur data menyimpan data.
  • {dataset} adalah jenis himpunan data yang diekspor. Jika memasukkan data ke Azure Data Explorer, basis data Ingestion harus memiliki tabel "_raw" yang cocok dan peka huruf besar/kecil (misalnya, "Costs_raw"). Hub FinOps mendukung himpunan data berikut dalam rilis ini:
    • CommitmentDiscountUsage - Ekspor detail reservasi Cost Management.
    • Biaya - DATA biaya dan penggunaan FOCUS.
    • Harga - Ekspor lembar harga Manajemen Biaya.
    • Rekomendasi - Ekspor rekomendasi pengelolaan biaya untuk reservasi.
    • Transaksi - Ekspor transaksi reservasi pada Cost Management.
    • Untuk menyerap himpunan data kustom, buat tabel yang {dataset}_raw cocok dan pemetaan penyerapan parket di database Penyerapan .
  • {date-folder-path} dapat berupa satu atau beberapa folder yang menunjukkan berapa banyak himpunan data yang diserap yang harus dipertahankan. Contoh:
    • all (atau tempat penampung apa pun) untuk tidak melacak riwayat himpunan data. Setiap penyerapan menggantikan data sebelumnya. Tidak didukung dalam laporan Power BI berbasis penyimpanan.
    • {yyyy} sebagai tahun empat digit dari himpunan data yang diekspor untuk hanya mempertahankan penyerapan terbaru per tahun. Tidak didukung dalam laporan Power BI berbasis penyimpanan.
    • {yyyy}/{mm} sebagai tahun empat digit dan bulan dengan dua digit dari dataset yang diekspor untuk mempertahankan pengambilan data terbaru setiap bulan.
    • {yyyy}/{mm}/{dd} sebagai tahun empat digit, bulan dua digit, dan hari dua digit dari tanggal dalam himpunan data yang diekspor untuk mempertahankan pengingesan terbaru per hari. Tidak didukung dalam laporan Power BI berbasis penyimpanan.
  • {scope-id-path} adalah ID sumber daya yang berkualifikasi penuh dari cakupan data. Jika menyerap data non-Azure, sebaiknya gunakan hierarki logis berdasarkan cakupan data (misalnya, aws/{account-id}, gcp/{project-name}, oci/{component-id}/{component-id}).
  • {ingestion-id} adalah ID unik untuk himpunan data yang diserap. ID ini dapat berupa GUID, tanda waktu, atau nilai apa pun selama konsisten di semua file untuk himpunan data yang diserap. Nilai ini digunakan untuk menghapus data yang sebelumnya diserap di jalur folder yang sama.
  • {original-file-name} dimaksudkan untuk menjadi nama file asli atau pengidentifikasi lain untuk menunjukkan dari mana data dalam file berasal. Nilai ini hanya untuk tujuan pemecahan masalah Anda.

Jalur folder lengkap dan ID proses masuk keduanya digunakan untuk mencegah duplikasi data dalam penyimpanan atau di Azure Data Explorer. Nama file asli ditambahkan ke extent Azure Data Explorer untuk keperluan pemecahan masalah, tetapi tidak dilacak atau digunakan oleh hub FinOps.

Jika Anda perlu menggunakan hub untuk memantau data non-Azure, konversikan data ke FOCUS dan letakkan ke dalam kontainer penyerapan menggunakan panduan ini. Perhatikan dukungan untuk data non-Azure belum diuji secara eksplisit dalam rilis terbaru. Jika Anda mengalami masalah, buat masalah.


Tentang ekspor

Hub FinOps memanfaatkan ekspor Cost Management untuk mendapatkan data biaya. Cost Management mengontrol struktur folder untuk data yang diekspor dalam kontainer penyimpanan msexports . Jalur umum terlihat seperti:

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

Hub FinOps menggunakan file manifes untuk mengidentifikasi cakupan, himpunan data, bulan, dll. Satu-satunya bagian penting dari jalur untuk hub adalah kontainer, yang harus msexports.

Jangan mengekspor data ke kontainer penyerapan . CSV yang diekspor harus diterbitkan ke kontainer msexports untuk diproses oleh mesin hub.

Untuk menyerap data kustom, simpan file parket dalam kontainer penyerapan untuk laporan Power BI toolkit FinOps agar berfungsi seperti yang diharapkan. Setelah semua file parket ditambahkan, tambahkan file manifest.json kosong untuk memicu penyerapan.

Untuk mengimpor file-file CSV dari hasil ekspor Cost Management, simpan file-file tersebut dalam folder tertentu di dalam kontainer msexports. Setelah semua file ditambahkan, tambahkan file manifest.json berdasarkan templat di bawah ini. Buat perubahan berikut untuk memastikan keberhasilan penyerapan:

  1. Ubah <export-name> ke nilai unik dalam cakupan untuk himpunan data yang Anda serap.
    • Ini hanya digunakan untuk rekomendasi untuk membedakan berbagai jenis rekomendasi yang diserap yang tidak dapat diidentifikasi dari manifes ekspor saja. Untuk rekomendasi reservasi, idealnya termasuk layanan, cakupan (tunggal/bersama), dan periode lookback.
  2. Ubah <dataset> dan <version> ke tipe dan versi ekspor Cost Management. Lihat daftar di bawah ini untuk himpunan data yang didukung.
  3. Ubah <scope> ke ID sumber daya Azure untuk cakupan asal data.
  4. Ubah <guid> menjadi GUID yang unik.
  5. Ubah <yyyy-MM> ke tahun dan bulan himpunan data.
  6. Ubah <path-to-file> ke jalur folder lengkap di bawah kontainer (jangan sertakan "msexports").
  7. Ubah <file-name> ke nama file pertama yang diunggah ke penyimpanan.
  8. Jika Anda memiliki lebih dari satu file CSV, salin objek blob untuk setiap file yang Anda unggah dan perbarui nama 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"
    }
  ]
}

Hub FinOps mendukung jenis himpunan data, versi, dan versi API berikut:

  • FocusCost: 1.0r2, 1.0, 1.0-preview(v1)
  • Lembar Harga: 2023-05-01
  • DetailReservasi: 2023-03-01
  • RekomendasiReservasi: 2023-05-01
  • Transaksi Reservasi: 2023-05-01
  • Versi API: 2023-07-01-preview

Hub FinOps v0.6

Bagian berikut menjelaskan proses data di hub FinOps 0.6.

Pengaturan cakupan di v0.6

Langkah-langkah berikut terjadi saat cakupan terkelola baru ditambahkan ke instans hub. Area yang tidak dikelola (di mana ekspor Cost Management dikonfigurasi secara manual) tidak memerlukan konfigurasi di hub.

  1. Pemicu config_SettingsUpdated berjalan saat file settings.json diperbarui.
  2. Alur config_ConfigureExports membuat ekspor baru untuk cakupan baru apa pun yang ditambahkan.

Penyerapan data di v0.6

Penyerapan data dapat dipecah menjadi dua bagian:

  1. Ekspor mendorong data ke penyimpanan.
  2. Hub memproses dan menyerap data.

Untuk cakupan terkelola, hub melakukan langkah-langkah berikut:

  1. Pemicu config_DailySchedule dan config_MonthlySchedule berjalan pada jadwal masing-masing untuk memulai penyerapan data.
  2. Alur config_StartExportProcess mendapatkan ekspor yang berlaku untuk jadwal yang sedang berjalan.
  3. Alur config_RunExportJobs menjalankan masing-masing ekspor yang dipilih.
  4. Cost Management mengekspor detail biaya mentah ke kontainer msexports . Pelajari selengkapnya.
  5. Alur msexports_ExecuteETL mengantrekan alur extract-transform-load (ETL) saat file ditambahkan ke kontainer msexports .
  6. Alur msexports_ETL_ingestion mengubah data ke format parquet dan memindahkannya ke kontainer ingestion menggunakan struktur file yang dapat diskalakan. Pelajari selengkapnya.
  7. Power BI atau alat lain membaca data dari kontainer penyerapan .

Setelah ekspor dijalankan, baik terkelola atau tidak dikelola, hub melakukan langkah-langkah berikut:

  1. Alur msexports_ExecuteETL memulai proses extract-transform-load (ETL) saat file ditambahkan ke penyimpanan.
  2. Alur msexports_ETL_ingestion mengubah data ke format parquet dan memindahkannya ke kontainer ingestion menggunakan struktur file yang dapat diskalakan. Pelajari selengkapnya.
  3. Power BI atau alat lain membaca data dari kontainer penyerapan .

Tentang penyerapan di v0.6

Hub FinOps mengandalkan jalur folder dan format nama file tertentu dalam kontainer penyerapan :

ingestion/{dataset}/{date-folder-path}/{scope-id-path}/{ingestion-id}__{original-file-name}.parquet
  • ingestion adalah kontainer tempat alur data menyimpan data.
  • {dataset} adalah jenis himpunan data yang diekspor.
  • {date-folder-path} dapat berupa satu atau beberapa folder yang menunjukkan berapa banyak himpunan data yang diserap yang harus dipertahankan. Contoh:
    • all (atau tempat penampung apa pun) untuk tidak melacak riwayat himpunan data. Setiap penyerapan menggantikan data sebelumnya. Tidak didukung dalam laporan Power BI berbasis penyimpanan.
    • {yyyy} sebagai tahun empat digit dari himpunan data yang diekspor untuk hanya mempertahankan penyerapan terbaru per tahun. Tidak didukung dalam laporan Power BI berbasis penyimpanan.
    • {yyyy}/{mm} sebagai tahun empat digit dan bulan dengan dua digit dari dataset yang diekspor untuk mempertahankan pengambilan data terbaru setiap bulan.
    • {yyyy}/{mm}/{dd} sebagai tahun empat digit, bulan dua digit, dan hari dua digit dari tanggal dalam himpunan data yang diekspor untuk mempertahankan pengingesan terbaru per hari. Tidak didukung dalam laporan Power BI berbasis penyimpanan.
  • {scope-id-path} adalah ID sumber daya yang berkualifikasi penuh dari cakupan data. Jika menyerap data non-Azure, sebaiknya gunakan hierarki logis berdasarkan cakupan data (misalnya, "aws/{account-id}", "gcp/{project-name}", "oci/{component-id}/{component-id}").
  • {ingestion-id} adalah ID unik untuk himpunan data yang diserap. ID ini dapat berupa GUID, tanda waktu, atau nilai apa pun selama konsisten di semua file untuk himpunan data yang diserap. Nilai ini digunakan untuk menghapus data yang sebelumnya diserap di jalur folder yang sama.
  • {original-file-name} dimaksudkan untuk menjadi nama file asli atau pengidentifikasi lain untuk menunjukkan dari mana data dalam file berasal. Nilai ini hanya untuk tujuan pemecahan masalah Anda.

Jalur folder lengkap dan ID proses masuk keduanya digunakan untuk mencegah duplikasi data dalam penyimpanan atau di Azure Data Explorer. Nama file asli ditambahkan ke extent Azure Data Explorer untuk keperluan pemecahan masalah, tetapi tidak dilacak atau digunakan oleh hub FinOps.

Jika Anda perlu menggunakan hub untuk memantau data non-Azure, konversikan data ke FOCUS dan letakkan ke dalam kontainer penyerapan menggunakan panduan ini. Perhatikan dukungan untuk data non-Azure belum diuji secara eksplisit dalam rilis terbaru. Jika Anda mengalami masalah, buat masalah.


Tentang ekspor di v0.6

Hub FinOps menggunakan ekspor dari Cost Management untuk mendapatkan data biaya. Cost Management mengontrol struktur folder untuk data yang diekspor dalam kontainer msexports . Jalur umum terlihat seperti:

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

Sejak versi 0.4, hub FinOps tidak mengandalkan jalur file. Hub menggunakan file manifes untuk mengidentifikasi cakupan, himpunan data, bulan, dll. Satu-satunya bagian penting dari jalur untuk hub adalah kontainer, yang harus msexports.

Peringatan

  • Jangan mengekspor data ke kontainer penyerapan . CSV yang diekspor harus diterbitkan ke kontainer msexports untuk diproses oleh mesin hub.
  • Untuk memasukkan data kustom, simpan file parquet yang selaras dengan FOCUS di dalam kontainer pemasukan agar laporan Power BI toolkit FinOps dapat berfungsi seperti yang diharapkan.

Manifes ekspor dapat berubah dengan versi API. Berikut adalah contoh dengan versi 2023-07-01-previewAPI :

{
  "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": ###
    }
  ]
}

Hub FinOps menggunakan properti berikut:

  • exportConfig.resourceId untuk mengidentifikasi cakupan.
  • exportConfig.type untuk mengidentifikasi jenis himpunan data.
  • exportConfig.dataVersion untuk mengidentifikasi versi himpunan data.
  • runInfo.startDate untuk mengidentifikasi bulan yang diekspor.

Hub FinOps mendukung jenis himpunan data, versi, dan versi API berikut:

  • FocusCost: 1.0, 1.0-preview(v1)
  • Lembar Harga: 2023-05-01
  • DetailReservasi: 2023-03-01
  • RekomendasiReservasi: 2023-05-01
  • Transaksi Reservasi: 2023-05-01
  • Versi API: 2023-07-01-preview

Hub FinOps v0.4-0.5

Informasi berikut menjelaskan bagaimana data diproses di hub FinOps v0.4 dan v0.5.

Pengaturan cakupan di v0.4-0.5

  1. Pemicu config_SettingsUpdated berjalan saat file settings.json diperbarui.
  2. Alur config_ConfigureExports membuat ekspor baru untuk cakupan baru apa pun yang ditambahkan.

Pengambilan data pada v0.4-0.5

Untuk cakupan terkelola:

  1. Pemicu config_DailySchedule dan config_MonthlySchedule berjalan pada jadwal masing-masing untuk memulai penyerapan data.
  2. Alur config_ExportData mengambil data ekspor yang berlaku untuk jadwal berjalan.
  3. Alur config_RunExports menjalankan masing-masing ekspor yang dipilih.
  4. Cost Management mengekspor detail biaya mentah ke kontainer msexports . Untuk informasi selengkapnya, lihat Tentang ekspor di v04-05.

Setelah ekspor selesai, untuk cakupan terkelola dan tidak terkelola:

  1. Alur msexports_ExecuteETL memulai proses extract-transform-load (ETL) saat file ditambahkan ke penyimpanan.
  2. Alur msexports_ETL_ingestion mengonversi data ke skema standar dan menyimpan data mentah dalam format parquet ke kontainer ingestion. Untuk informasi selengkapnya, lihat Tentang penyerapan di v04-05.
  3. Power BI membaca data biaya dari kontainer penyerapan .

Tentang penyerapan di v0.4-0.5

Hub FinOps mengandalkan jalur folder tertentu dalam kontainer penyerapan :

ingestion/{dataset}/{yyyy}/{mm}/{scope-id}
  • ingestion adalah kontainer tempat alur data menyimpan data.
  • {dataset} adalah jenis himpunan data yang diekspor.
  • {month} adalah tahun dan bulan dari data yang diekspor yang diformat sebagai yyyyMM.
  • {scope-id} diharapkan menjadi ID sumber daya yang sudah sepenuhnya ditentukan dari cakupan asal data.

Jika Anda perlu menggunakan hub untuk memantau data non-Azure, konversikan data ke FOCUS dan letakkan ke dalam kontainer penyerapan . Proses ini tidak diuji secara eksplisit dalam rilis terbaru. Jika Anda mengalami masalah, buat masalah.

Tentang ekspor di v0.4-0.5

Hub FinOps menggunakan ekspor dari Cost Management untuk mendapatkan data biaya. Cost Management mengontrol struktur folder untuk data yang diekspor dalam kontainer msexports . Jalur umum terlihat seperti:

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

Sejak versi 0.4, hub FinOps tidak mengandalkan jalur file. Hub menggunakan file manifes untuk mengidentifikasi cakupan, himpunan data, bulan, dan sebagainya. Satu-satunya bagian penting dari rute untuk hub adalah kontainer, yang seharusnya msexports.

Catatan

Jangan mengekspor data ke kontainer penyerapan . CSV yang diekspor harus diterbitkan ke kontainer msexports untuk diproses oleh mesin hub.

Untuk memasukkan data kustom, simpan file parquet yang selaras dengan FOCUS di dalam kontainer pemasukan agar laporan Power BI toolkit FinOps dapat berfungsi seperti yang diharapkan.

Manifes ekspor dapat berubah dengan versi API. Berikut adalah contoh dengan versi 2023-07-01-previewAPI :

{
  "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": ###
    }
  ]
}

Hub FinOps menggunakan properti berikut:

  • exportConfig.resourceId untuk mengidentifikasi cakupan.
  • exportConfig.type untuk mengidentifikasi jenis himpunan data.
  • exportConfig.dataVersion untuk mengidentifikasi versi himpunan data.
  • runInfo.startDate untuk mengidentifikasi bulan yang diekspor.

Hub FinOps mendukung jenis himpunan data, versi, dan versi API berikut:

  • FocusCost: 1.0, 1.0-preview(v1)
  • Lembar Harga: 2023-05-01
  • DetailReservasi: 2023-03-01
  • RekomendasiReservasi: 2023-05-01
  • Transaksi Reservasi: 2023-05-01
  • Versi API: 2023-07-01-preview

Hub FinOps v0.2-0.3

Langkah-langkah berikut menguraikan proses untuk mengekspor dan memproses data biaya menggunakan hub FinOps versi 0.2-0.3:

  1. Cost Management mengekspor detail biaya mentah ke kontainer msexports .
  2. Alur msexports_ExecuteETL memulai proses extract-transform-load (ETL) saat file ditambahkan ke penyimpanan.
  3. Alur msexports_ETL_ingestion menyimpan data yang diekspor dalam format parquet dalam kontainer ingestion.
  4. Power BI membaca data biaya dari kontainer penyerapan .

Hub FinOps 0.2-0.3 menggunakan jalur ekspor untuk menentukan cakupan dan bulan yang diekspor. Poin ini penting karena pembaruan pada jalur dapat merusak alur data. Untuk menghindari masalah ini, sebaiknya perbarui ke hub FinOps 0.4. Jalur yang diharapkan harus meniluki:

msexports/{scope-id}/{export-name}/{date-range}/{export-time}/{guid}/{file}
  • msexports adalah kontainer yang ditentukan pada ekspor.
  • {scope-id} adalah jalur folder yang ditentukan pada ekspor tersebut.

    Hub 0.3 dan yang lebih lama menggunakan ini untuk mengidentifikasi cakupan mana data berasal. Sebaiknya gunakan ID cakupan tetapi nilai apa pun dapat digunakan. Contoh ID cakupan meliputi:

    Jenis cakupan Contoh nilai
    Langganan /subscriptions/###
    Grup sumber daya /subscriptions/###/resourceGroups/###
    Akun tagihan /providers/Microsoft.Billing/billingAccounts/###
    Profil tagihan /providers/Microsoft.Billing/billingAccounts/###/billingProfiles/###
  • {export-name} adalah nama ekspor.

    Hub mengabaikan folder ini.

  • {date-range} adalah data rentang tanggal yang sedang diekspor.

    Hub 0.3 dan yang lebih lama menggunakan ini untuk mengidentifikasi bulan. Format untuk folder ini adalah yyyyMMdd-yyyyMMdd. Hubs 0.4 menggunakan manifes sebagai pengganti.

  • {export-time} adalah tanda waktu ketika ekspor dijalankan.

    Hub mengabaikan ini. Format untuk folder ini adalah yyyyMMddHHmm.

  • {guid} adalah GUID unik dan tidak selalu hadir.

    Hub mengabaikan ini. Cost Management tidak selalu menyertakan folder ini. Apakah disertakan atau tidak tergantung pada versi API yang digunakan untuk membuat ekspor.

  • {file} adalah manifes atau data yang diekspor.

    Versi 0.3 dan yang lebih lama mengabaikan file manifes dan hanya memantau *.csv file. Dalam rilis mendatang, hub akan memantau manifes.


Hub FinOps v0.1

Langkah-langkah berikut menguraikan proses untuk mengekspor dan memproses data biaya menggunakan hub FinOps versi 0.1:

  1. Cost Management mengekspor detail biaya mentah ke kontainer msexports .
  2. Alur msexports_transform menyimpan data mentah dalam format parquet ke kontainer penyerapan .
  3. Power BI membaca data biaya dari kontainer penyerapan .

Berikan umpan balik

Beri tahu kami bagaimana kinerja kami melalui ulasan singkat. Kami menggunakan ulasan ini untuk meningkatkan dan memperluas alat dan sumber daya FinOps.

Jika Anda mencari sesuatu yang spesifik, pilih yang sudah ada atau buat ide baru. Bagikan ide dengan orang lain untuk mendapatkan lebih banyak suara. Kami fokus pada ide-ide dengan suara terbanyak.