Bagikan melalui


Mengambil himpunan data berbiaya besar secara berulang dengan ekspor

Artikel ini membantu Anda mengekspor data dalam jumlah besar secara teratur dengan ekspor dari Cost Management. Mengekspor adalah cara yang disarankan untuk mengambil data biaya yang tidak diregregasi. Khususnya, ketika file penggunaan terlalu besar untuk dihubungi dan diunduh dengan andal menggunakan API Detail Biaya. Data yang diekspor ditempatkan di akun Azure Storage yang Anda pilih. Dari sana, Anda dapat memuatnya ke dalam sistem Anda sendiri dan menganalisisnya sesuai kebutuhan. Untuk mengonfigurasi ekspor di portal Microsoft Azure, lihat Mengekspor data.

Jika Anda ingin mengotomatiskan ekspor di berbagai cakupan, permintaan API sampel di bagian berikutnya adalah titik awal yang baik. Anda dapat menggunakan API Ekspor untuk membuat ekspor otomatis sebagai bagian dari konfigurasi lingkungan umum Anda. Ekspor otomatis membantu memastikan bahwa Anda memiliki data yang Anda butuhkan. Anda dapat menggunakan sistem organisasi Anda sendiri saat meluaskan penggunaan Azure Anda.

Konfigurasi ekspor umum

Sebelum Anda membuat ekspor pertama, pertimbangkan skenario Anda dan opsi konfigurasi yang perlu diaktifkan. Pertimbangkan opsi ekspor berikut:

  • Pengulangan - Menentukan seberapa sering pekerjaan ekspor berjalan dan kapan file dimasukkan ke akun Azure Storage Anda. Pilih antara Harian, Mingguan, dan Bulanan. Coba konfigurasikan pengulangan agar sesuai dengan pekerjaan impor data yang digunakan oleh sistem internal organisasi Anda.
  • Periode Pengulangan - Menentukan berapa lama Ekspor tetap berlaku. File hanya diekspor selama periode pengulangan.
  • Jangka Waktu - Menentukan jumlah data yang dihasilkan oleh ekspor pada eksekusi tertentu. Opsi umum adalah MonthToDate dan WeekToDate.
  • StartDate - Mengonfigurasi kapan Anda ingin jadwal ekspor dimulai. Ekspor dibuat pada StartDate dan kemudian berdasarkan Pengulangan Anda.
  • Jenis - Ada tiga jenis ekspor:
    • ActualCost - Menampilkan total penggunaan dan biaya untuk periode yang ditentukan, karena terakumulasi dan menunjukkan tagihan Anda.
    • AmortizedCost - Menampilkan total penggunaan dan biaya untuk periode yang ditentukan, dengan amortisasi diaplikasikan pada biaya pembelian reservasi yang berlaku.
    • Penggunaan - Semua ekspor yang dibuat sebelum 20 Juli 2020 adalah jenis Penggunaan. Perbarui semua ekspor terjadwal Anda sebagai ActualCost atau AmortizedCost.
  • Kolom – Menentukan bidang data yang ingin Anda sertakan dalam file ekspor Anda. Kolom ini sesuai dengan bidang yang tersedia di API Detail Biaya.
  • Partisi - Atur opsi ke true jika Anda memiliki himpunan data besar dan ingin memecahnya menjadi beberapa file. Ini membuat penyerapan data lebih cepat dan lebih mudah. Untuk mengetahui informasi selengkapnya tentang pamartisian, lihat Pemartisian file untuk himpunan data besar.

Membuat ekspor harian setiap bulan hingga tanggal saat ini untuk langganan

URL Permintaan: PUT https://management.azure.com/{scope}/providers/Microsoft.CostManagement/exports/{exportName}?api-version=2020-06-01

{
  "properties": {
    "schedule": {
      "status": "Active",
      "recurrence": "Daily",
      "recurrencePeriod": {
        "from": "2020-06-01T00:00:00Z",
        "to": "2020-10-31T00:00:00Z"
      }
    },
    "format": "Csv",
    "deliveryInfo": {
      "destination": {
        "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/Microsoft.Storage/storageAccounts/{yourStorageAccount} ",
        "container": "{yourContainer}",
        "rootFolderPath": "{yourDirectory}"
      }
    },
    "definition": {
      "type": "ActualCost",
      "timeframe": "MonthToDate",
      "dataSet": {
        "granularity": "Daily",
        "configuration": {
          "columns": [
            "Date",
            "MeterId",
            "ResourceId",
            "ResourceLocation",
            "Quantity"
          ]
        }
      }
    }
}

Menyalin blob penyimpanan Azure yang besar

Anda dapat menggunakan Cost Management untuk menjadwalkan ekspor detail penggunaan Azure Anda ke akun Azure Storage Anda sebagai blob. Ukuran blob yang dihasilkan ukurannya bisa lebih dari gigabyte. Tim Cost Management bekerja sama dengan tim Azure Storage untuk menguji penyalinan blob penyimpanan Azure yang besar. Hasilnya didokumentasikan di bagian berikut. Anda dapat mengharapkan hasil yang sama saat menyalin blob penyimpanan dari satu wilayah Azure ke wilayah lainnya.

Tim melakukan pengujian performa dengan mentransfer blob dari akun penyimpanan yang terletak di wilayah AS Barat ke wilayah yang sama dan ke wilayah lain. Tim mengukur kecepatan yang berkisar antara 2 GB per detik di wilayah yang sama hingga 150 MB per detik ke akun penyimpanan di wilayah Asia Tenggara.

Konfigurasi pengujian

Untuk mengukur kecepatan transfer blob, tim membuat aplikasi konsol .NET sederhana yang merujuk versi terbaru (v2.0.1) dari Azure Data Movement Library (DLM) melalui NuGet. DLM adalah SDK yang disediakan oleh tim Azure Storage yang memfasilitasi akses terprogram ke layanan transfer mereka. Kemudian mereka membuat akun penyimpanan Standard V2 di beberapa wilayah dan menggunakan US Barat sebagai wilayah sumber. Mereka mengisi akun penyimpanan di sana dengan kontainer, di mana masing-masing memegang sepuluh blob blok 2-GB. Mereka menyalin kontainer ke akun penyimpanan lain menggunakan metode TransferManager.CopyDirectoryAsync() DLM dengan opsi CopyMethod.ServiceSideSyncCopy. Pengujian dilakukan pada komputer yang menjalankan Windows 10 dengan 12 core dan jaringan 1-GbE.

Pengaturan Aplikasi yang digunakan:

  • TransferManager.Configurations.ParallelOperations = Environment.ProcessorCount * 32. Tim menemukan pengaturan untuk memiliki efek paling besar pada throughput keseluruhan. Nilai 32 kali jumlah inti memberikan throughput terbaik untuk klien pengujian.
  • ServicePointManager.DefaultConnectionLimit = int.MaxValue. Mengaturnya ke nilai maksimum secara efektif meneruskan kontrol penuh paralelisme transfer ke pengaturan ParallelOperations yang disebutkan sebelumnya.
  • TransferManager.Configurations.BlockSize = 4,194,304. Pengaturan ini memiliki beberapa efek pada tingkat transfer dengan 4 MB, yang terbukti paling baik untuk pengujian.

Untuk informasi selengkapnya dan kode sampel, lihat tautan di bagian Konten terkait.

Hasil pengujian

Nomor uji Ke wilayah Blob Waktu (detik) MB/d Komentar
1 WestUS 2 GB x 10 10 2.000
2 WestUS2 2 GB x 10 33 600
3 USTimur 2 GB x 10 67 300
4 USTimur 2 GB x 10 x 4 99 200 Empat transfer paralel menggunakan delapan akun penyimpanan: Empat Barat hingga empat rata-rata Timur per transfer
6 USTimur 2 GB x 10 x 4 92 870 Empat transfer paralel dari satu akun penyimpanan ke akun penyimpanan lainnya
5 USTimur 2 GB x 10 x 8 148 135 Delapan transfer paralel menggunakan delapan akun penyimpanan: Empat Barat hingga empat rata-rata Timur per transfer
7 SE Asia 2 GB x 10 133 150
8 SE Asia 2 GB x 10 x 4 444 180 Empat transfer paralel dari satu akun penyimpanan ke akun penyimpanan lainnya

Karakteristik transfer sinkronisasi

Berikut adalah beberapa karakteristik transfer sinkronisasi sisi layanan yang digunakan dengan DML yang relevan dengan penggunaannya:

  • DML dapat mentransfer satu blob atau direktori. Untuk transfer direktori, Anda dapat menggunakan pola pencarian untuk mencocokkan pada prefiks blob.
  • Transfer blob blok terjadi secara paralel. Semuanya lengkap menjelang akhir proses transfer. Blok blob individu ditransfer secara paralel.
  • Transfer dieksekusi secara asinkron pada klien. Status transfer tersedia secara berkala melalui panggilan balik ke metode yang dapat didefinisikan dalam objek TransferContext.
  • Transfer membuat titik pemeriksaan selama kemajuannya dan mengekspos objek TransferCheckpoint. Objek mewakili titik pemeriksaan terbaru melalui objek TransferContext. Jika TransferCheckpoint disimpan sebelum transfer dibatalkan/dibatalkan, transfer dapat dilanjutkan dari pos pemeriksaan hingga tujuh hari. Transfer dapat dilanjutkan dari titik pemeriksaan apa pun, bukan hanya yang terbaru.
  • Jika proses klien transfer dimatikan dan dimulai ulang tanpa menerapkan fitur titik pemeriksaan:
    • Sebelum transfer blob selesai, transfer dimulai ulang.
    • Setelah beberapa blob selesai, transfer dimulai ulang hanya untuk blob yang tidak lengkap.
  • Menjeda eksekusi klien akan menjeda transfer.
  • Fitur transfer blob mengabstraksi klien dari kegagalan sementara. Misalnya, pembatasan akun penyimpanan biasanya tidak menyebabkan transfer gagal tetapi memperlambat transfer.
  • Transfer sisi layanan memiliki penggunaan sumber daya klien yang rendah untuk CPU dan memori, beberapa bandwidth jaringan, dan koneksi.

Karakteristik transfer asinkron

Anda dapat memanggil metode TransferManager.CopyDirectoryAsync() dengan opsi CopyMethod.ServiceSideAsyncCopy. Metode ini beroperasi mirip dengan mekanisme transfer sinkronisasi dari perspektif klien tetapi dengan perbedaan operasi berikut:

  • Laju transfer lebih lambat daripada transfer sinkronisasi yang setara (biasanya 10 MB/dtk atau kurang).
  • Transfer berlanjut bahkan jika proses klien berakhir.
  • Meskipun titik pemeriksaan didukung, melanjutkan transfer menggunakan TransferCheckpoint tidak dilanjutkan pada waktu titik pemeriksaan tetapi pada status transfer saat ini.

Ringkasan pengujian

Penyimpanan blob Azure mendukung tingkat transfer global yang tinggi dengan fitur transfer sinkronisasi sisi layanannya. Menggunakan fitur dalam aplikasi .NET mudah menggunakan Pustaka Pergerakan Data. Dimungkinkan bagi ekspor Cost Management untuk menyalin ratusan gigabyte data ke akun penyimpanan di mana saja dalam waktu kurang dari satu jam.