Share via


Dışarı Aktarmalar ile büyük miktarda veri kümelerini düzenli olarak alma

Bu makale, Maliyet Yönetimi'nden dışarı aktarma işlemleriyle büyük miktarlarda veriyi düzenli olarak dışarı aktarmanıza yardımcı olur. Dışarı aktarma, toplu olmayan maliyet verilerini almak için önerilen yoldur. Özellikle kullanım dosyaları Maliyet Ayrıntıları API'sini kullanarak güvenilir bir şekilde çağrılamayacak ve indirilemeyecek kadar büyük olduğunda. Dışarı aktarılan veriler, seçtiğiniz Azure Depolama hesabına yerleştirilir. Buradan, verileri kendi sistemlerinize yükleyip gereken şekilde analiz edebilirsiniz. Dışarı aktarmaları Azure portalında yapılandırmak için bkz. Verileri dışarı aktarma.

Belirli kapsamlardaki dışarı aktarmaları otomatikleştirmek istiyorsanız sonraki bölümde yer alan örnek API isteğiyle çalışmaya başlamanız faydalı olabilir. Genel ortam yapılandırmanızın bir parçası olarak otomatik dışarı aktarmalar oluşturmak için Dışarı Aktarmalar API’sini kullanabilirsiniz. Otomatik dışarı aktarmalar, ihtiyaç duyduğunuz verilere sahip olmanızı sağlar. Azure kullanımınızı genişlettikçe kendi kuruluşunuzun sistemlerinde kullanabilirsiniz.

Ortak dışarı aktarma yapılandırmaları

İlk dışarı aktarmanızı oluşturmadan önce, bunu sağlamak için gereken senaryoyu ve yapılandırma seçeneklerini dikkate alın. Aşağıdaki dışarı aktarma seçeneklerini göz önünde bulundurun:

  • Yinelenme: Dışarı aktarma işlerinin ne sıklıkla çalıştırıldığını ve bir dosyanın Azure Depolama hesabınıza yerleştirilme zamanını belirler. Günlük, Haftalık ve Aylık arasında seçim yapın. Yinelenmenizi, kuruluşunuzun şirket içindeki sistemi tarafından kullanılan veri içeri aktarma işleriyle eşleşecek şekilde yapılandırmayı deneyin.
  • Yinelenme Süresi: Dışarı aktarmanın ne kadar süre boyunca geçerli kalacağını belirler. Dosyalar yalnızca yinelenme süresi boyunca dışarı aktarılır.
  • Zaman Dilimi: Belirli bir çalıştırma üzerinde dışarı aktarma tarafından oluşturulan veri miktarını belirler. Yaygın seçenekler MonthToDate ve WeekToDate’tir.
  • StartDate: Dışarı aktarma zamanlamasının başlamasını istediğiniz zamanı yapılandırır. Dışarı aktarma ilk önce StartDate tarihinde, daha sonra Yinelenmenize göre oluşturulur.
  • Tür - Üç dışarı aktarma türü vardır:
    • ActualCost - Belirli bir döneme ait toplam kullanımı ve maliyetleri, faturanıza yansıtıldığı şekilde gösterir.
    • AmortizedCost - Belirli bir döneme ait toplam kullanımı ve maliyetleri, amortismanların uygun rezervasyon satın alma maliyetlerine uygulanmış şekilde gösterir.
    • Kullanım - 20 Temmuz 2020’den önce oluşturulan tüm dışarı aktarmalar Kullanım türündedir. Tüm zamanlanmış dışarı aktarmalarınızı ActualCost veya AmortizedCost olarak güncelleştirin.
  • Sütunlar: Dışarı aktarma dosyanıza dahil etmek istediğiniz veri alanlarını tanımlar. Bunlar, Maliyet Ayrıntıları API'sindeki kullanılabilir alanlarla karşılık gelir.
  • Bölümleme - Büyük bir veri kümeniz varsa ve birden çok dosyaya bölünmesini istiyorsanız seçeneği true olarak ayarlayın. Bu, veri alımını çok daha hızlı ve kolay hale getirir. Bölümleme hakkında daha fazla bilgi için bkz . Büyük veri kümeleri için dosya bölümleme.

Bir abonelik için günlük ay başından bugüne kadar dışarı aktarması oluşturma

İstek URL’si: 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"
          ]
        }
      }
    }
}

Büyük Azure depolama bloblarını kopyalama

Azure kullanım ayrıntılarınızın Azure Depolama hesaplarınıza dışarı aktarmalarını blob olarak zamanlamak için Maliyet Yönetimi'ni kullanabilirsiniz. Sonuçta elde edilen blob boyutları gigabaytların üzerinde olabilir. Maliyet Yönetimi ekibi, büyük Azure depolama bloblarını kopyalamayı test etmek için Azure Depolama ekibiyle birlikte çalıştı. Sonuçlar aşağıdaki bölümlerde belgelenmiştir. Depolama bloblarını bir Azure bölgesinden diğerine kopyalarken benzer sonuçlar elde edebilirsiniz.

Ekip, performansını test etmek için BLOB'ları ABD Batı bölgesindeki depolama hesaplarından aynı ve diğer bölgelere aktarmıştır. Ekip, Güney Doğu Asya bölgesindeki depolama hesaplarına göre aynı bölgede saniyede 2 GB ile saniyede 150 MB arasında değişen hızları ölçtü.

Test yapılandırması

Ekip, blob aktarım hızlarını ölçmek için NuGet aracılığıyla Azure Veri Taşıma Kitaplığı'nın (DLM) en son sürümüne (v2.0.1) başvuran basit bir .NET konsol uygulaması oluşturdu. DLM, Azure Depolama ekibi tarafından sağlanan ve aktarım hizmetlerine programlı erişim sağlayan bir SDK'dır. Ardından birden çok bölgede Standart V2 depolama hesapları oluşturdular ve kaynak bölge olarak Batı ABD'yi kullandılar. Depolama hesaplarını her birinin on adet 2 GB blok blobu tuttuğu kapsayıcılarla doldurdular. CopyMethod.ServiceSideSyncCopy seçeneğiyle DLM'nin TransferManager.CopyDirectoryAsync() yöntemini kullanarak kapsayıcıları diğer depolama hesaplarına kopyaladılar. Testler, 12 çekirdek ve 1 GbE ağ ile Windows 10 çalıştıran bir bilgisayarda gerçekleştirilir.

Kullanılan uygulama ayarları:

  • TransferManager.Configurations.ParallelOperations = Environment.ProcessorCount * 32. Ekip, genel aktarım hızı üzerinde en fazla etkiye sahip olan ayarı buldu. Çekirdek sayısının 32 katı bir değer, test istemcisi için en iyi aktarım hızını sağladı.
  • ServicePointManager.Default Bağlan ionLimit = int. MaxValue. Bunu en yüksek değere ayarlamak, aktarım paralelliğinin tam denetimini yukarıdaki ParallelOperations ayarına etkili bir şekilde geçirir.
  • TransferManager.Configurations.BlockSize = 4.194.304. 4 MB ile aktarım hızları üzerinde bir etkisi vardı ve test için en iyi olduğunu kanıtladı.

Daha fazla bilgi ve örnek kod için İlgili içerik bölümündeki bağlantılara bakın.

Test sonuçları

Test numarası Bölgeye Bloblar Saat (sn) MB/sn Açıklamalar
1 WestUS 2 GB x 10 10 2,000
2 WestUS2 2 GB x 10 33 600
3 EastUS 2 GB x 10 67 300
4 EastUS 2 GB x 10 x 4 99 200 8 depolama hesabı kullanan 4 paralel aktarım: Aktarım başına 4 Batı - 4 Doğu ortalaması
6 EastUS 2 GB x 10 x 4 92 870 1 depolama hesabından diğerine 4 paralel aktarım
5 EastUS 2G x 10 x 8 148 135 8 depolama hesabı kullanılarak 8 paralel aktarım: Aktarım başına 4 Batı - 4x2 Doğu ortalaması
7 SE Asya 2 GB x 10 133 150
8 SE Asya 2 GB x 10 x 4 444 180 1 depolama hesabından diğerine 4 paralel aktarım

Eşitleme aktarım özellikleri

DML ile kullanılan hizmet tarafı eşitleme aktarımının kullanımıyla ilgili özelliklerinden bazıları şunlardır:

  • DML tek bir blobu veya dizini aktarabilir. Dizin aktarımı için blob ön ekinde eşleştirmek için bir arama düzeni kullanabilirsiniz.
  • Blok blobu aktarımları paralel olarak gerçekleşir. Aktarım işleminin sonuna doğru her şey tamam. Tek tek blob blokları paralel olarak aktarılır.
  • Aktarım istemcide zaman uyumsuz olarak yürütülür. Aktarım durumu, bir TransferContext nesnesinde tanımlanabilen bir yönteme geri çağırma yoluyla düzenli aralıklarla kullanılabilir.
  • Aktarım, ilerlemesi sırasında denetim noktaları oluşturur ve bir TransferCheckpoint nesnesini kullanıma sunar. nesnesi, TransferContext nesnesi aracılığıyla en son denetim noktasını temsil eder. TransferCheckpoint bir aktarım iptal edilmeden/durdurulmadan önce kaydedilirse, aktarım yedi güne kadar denetim noktasından sürdürülebilir. Aktarım yalnızca en son kontrol noktalarından değil, herhangi bir denetim noktasından sürdürülebilir.
  • İstemci aktarma işlemi sonlandırılırsa ve denetim noktası özelliği uygulanmadan yeniden başlatılırsa.
    • Blob aktarımları tamamlanmadan önce aktarım yeniden başlatılır.
    • Bazı bloblar tamamlandıktan sonra aktarım yalnızca tamamlanmamış bloblar için yeniden başlatılır.
  • İstemci yürütmesinin duraklatılması aktarımları duraklatır.
  • Blob aktarımı özelliği, istemciyi geçici hatalardan soyutlar. Örneğin, depolama hesabı azaltma normalde aktarımın başarısız olmasına neden olmaz, ancak aktarımı yavaşlatır.
  • Hizmet tarafı aktarımları CPU ve bellek, bazı ağ bant genişliği ve bağlantılar için düşük istemci kaynağı kullanımına sahiptir.

Zaman uyumsuz aktarım özellikleri

CopyMethod.ServiceSideAsyncCopy seçeneğiyle TransferManager.CopyDirectoryAsync() yöntemini çağırabilirsiniz. İstemci perspektifinden eşitleme aktarım mekanizmasına benzer ancak aşağıdaki işlem farklılıklarıyla çalışır:

  • Aktarım hızları eşdeğer eşitleme aktarımından çok daha yavaştır (genellikle 10 MB/sn veya daha az).
  • İstemci işlemi sonlandırılırsa bile aktarım devam eder.
  • Denetim noktaları destekleniyor olsa da, TransferCheckpoint kullanarak aktarımı sürdürme işlemi denetim noktası zamanında değil, aktarımın geçerli durumunda devam eder.

Test özeti

Azure blob depolama, hizmet tarafı eşitleme aktarım özelliğiyle yüksek küresel aktarım hızlarını destekler. .NET uygulamalarında bu özelliği kullanmak, Veri Taşıma Kitaplığı'nı kullanmak kolaydır. Maliyet Yönetimi dışarı aktarmalarının yüzlerce gigabayt veriyi bir saatten daha kısa bir süre içinde bir depolama hesabına güvenilir bir şekilde kopyalaması mümkündür.