Nagy méretű költségadathalmazok ismétlődő lekérése az Exports használatával

Ez a cikk segít a nagy mennyiségű adat rendszeres exportálásában a Cost Managementből való exportálással. Az exportálás az ajánlott módszer a nem összesített költségadatok lekérésére. Különösen akkor, ha a használati fájlok túl nagyok a Cost Details API megbízható hívásához és letöltéséhez . Az exportált adatok a kiválasztott Azure Storage-fiókba lesznek helyezve. Ezt követően betöltheti az adatokat a saját rendszereibe, és igény szerint elemezheti őket. Az Exports az Azure Portalon való konfigurálásához lásd az adatok exportálását ismertető szakaszt.

Ha az exportálást különböző hatókörökben szeretné automatizálni, a következő szakaszban található minta API-kérelem jó kiindulási pont lehet. Az Exports API-val az általános környezeti konfiguráció részeként hozhat létre automatikus exportálást. Az automatikus exportálással biztosíthatja, hogy a szükséges adatok rendelkezésére álljanak. Az Azure használatának bővítésével párhuzamosan ezt a saját szervezeti rendszerében is használhatja.

Az exportálások gyakori konfigurációi

Az első exportálás létrehozása előtt állapítsa meg, milyen az adott forgatókönyv, és milyen konfigurációs beállításokkal valósulhat meg. Fontolja meg a következő exportálási beállítások alkalmazását:

  • Ismétlődés – Meghatározza az exportálási feladat futtatásának gyakoriságát és a fájlok Azure Storage-fiókba való helyezésének idejét. Napi, heti és havi ütemezés választható. Próbálja meg úgy konfigurálni az ismétlődést, hogy az megfelelő legyen a szervezet belső rendszere által használt adatimportálási feladatokhoz.
  • Ismétlődési időtartam – Meghatározza az exportálás érvényességének időtartamát. A fájlokat a rendszer csak az ismétlődési időtartamban exportálja.
  • Időkeret – Meghatározza az egy adott futtatás során az exportálás által előállított adatok mennyiségét. Gyakran használt lehetőség az Ebben a hónapban és az Ez a hét.
  • Kezdő dátum – Konfigurálja az exportálás ütemezésének kezdetét. Az exportálás létrehozása a Kezdő dátum értékeként megadott napon történik, majd ezt követően az Ismétlődés alapján.
  • Típus – Három exportálási típus létezik:
    • Tényleges költség – Egy meghatározott időszak alatt keletkező és a számlán megjelenő összes használatot és költséget mutatja.
    • Amortizált költség – Egy meghatározott időszak alatt keletkező és a számlán megjelenő összes használatot és költséget mutatja a vonatkozó foglalásvásárlási költségekre alkalmazott amortizációval együtt.
    • Használat – A 2020. július 20. előtt létrehozott valamennyi exportálás Használat típusú. Frissítse az összes ütemezett exportálást Tényleges költség vagy Amortizált költség típusúra.
  • Oszlopok – Meghatározza, hogy milyen adatmezőket tartalmazzon az exportált fájl. Ezek megfelelnek a Cost Details API-ban elérhető mezőknek .
  • Particionálás – Állítsa a beállítást igaz értékre, ha nagy adatkészlettel rendelkezik, és azt szeretné, hogy több fájlra bontsa. Ez sokkal gyorsabb és egyszerűbb adatbetöltést tesz lehetővé. A particionálással kapcsolatos további információkért lásd a nagy adathalmazok fájlparticionálását ismertető témakört.

Napi tárgyhavi exportálás létrehozása egy előfizetéshez

Kérés URL-címe: 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"
          ]
        }
      }
    }
}

Nagyméretű Azure Storage-blobok másolása

A Cost Management használatával blobokként ütemezheti az Azure-használati adatok exportálását az Azure Storage-fiókokba. Az eredményként kapott blobméretek több mint gigabájt méretűek lehetnek. A Cost Management csapata az Azure Storage csapatával együttműködve tesztelte a nagyméretű Azure Storage-blobok másolását. Az eredményeket a következő szakaszokban dokumentáljuk. Hasonló eredményekre számíthat, amikor a tárblobokat az egyik Azure-régióból a másikba másolja.

A teljesítmény teszteléséhez a csapat az USA nyugati régiójában lévő tárfiókokból adott át blobokat ugyanarra és más régiókra. A csapat az ugyanabban a régióban másodpercenként 2 GB és másodpercenként 150 MB közötti sebességet mért a délkelet-ázsiai régió tárfiókjaiig.

Konfiguráció tesztelése

A blobátviteli sebesség méréséhez a csapat létrehozott egy egyszerű .NET-konzolalkalmazást, amely az Azure Data Movement Library (DLM) legújabb (2.0.1-es) verziójára hivatkozik a NuGeten keresztül. A DLM az Azure Storage csapata által biztosított SDK, amely programozott hozzáférést biztosít az átviteli szolgáltatásaikhoz. Ezután standard V2-tárfiókokat hoztak létre több régióban, és az USA nyugati régióját használják forrásrégióként. A tárfiókokat tárolókkal töltik fel, ahol mindegyik 10 2 GB-os blokkblobot tartott. A tárolókat más tárfiókokba másolták a DLM TransferManager.CopyDirectoryAsync() metódusával a CopyMethod.ServiceSideSyncCopy beállítással. A teszteket Egy Windows 10 rendszerű számítógépen végezték el 12 maggal és 1 GbE hálózattal.

Használt alkalmazásbeállítások:

  • TransferManager.Configurations.ParallelOperations = Environment.ProcessorCount * 32. A csapat úgy találta, hogy a beállítás a legnagyobb hatással van az általános átviteli sebességre. A tesztügyfél számára a legjobb átviteli sebességet a magok számának 32-szeresének megfelelő érték biztosította.
  • ServicePointManager.Default Csatlakozás ionLimit = int. MaxValue. Ha maximális értékre állítja, akkor a párhuzamosság átvitele teljes mértékben szabályozható a fenti ParallelOperations beállítással.
  • TransferManager.Configurations.BlockSize = 4 194 304. Ez némi hatással volt a 4 MB-os átviteli sebességre, ami teszteléshez bizonyult a legjobbnak.

További információkért és mintakódért tekintse meg a Kapcsolódó tartalom szakaszban található hivatkozásokat.

Teszteredmények

Tesztszám Régióhoz Blobok Idő (másodperc) MB/s Megjegyzések
0 USA nyugati régiója 2 GB x 10 10 2000
2 USA 2. nyugati régiója 2 GB x 10 33 600
3 USA keleti régiója 2 GB x 10 67 300
4 USA keleti régiója 2 GB x 10 x 4 99 200 4 párhuzamos átvitel 8 tárfiók használatával: 4 nyugati és 4 keleti átlag átvitelenként
6 USA keleti régiója 2 GB x 10 x 4 92 870 4 párhuzamos átvitel 1 tárfiókból egy másikba
5 USA keleti régiója 2G x 10 x 8 148 135 8 párhuzamos átvitel 8 tárfiókkal: 4 nyugati és 4x2 keleti átlag átvitelenként
7 Standard kiadás Ázsia 2 GB x 10 133 150
8 Standard kiadás Ázsia 2 GB x 10 x 4 444 180 4 párhuzamos átvitel 1 tárfiókból egy másikba

Szinkronizálásátviteli jellemzők

Az alábbiakban a DML-vel használt szolgáltatásoldali szinkronizálási átvitel néhány olyan jellemzőjét tekintjük át, amelyek a használat szempontjából relevánsak:

  • A DML egyetlen blobot vagy könyvtárat képes átvinni. A címtárátadáshoz keresési mintával egyezhet a blobelőtagon.
  • A blobátvitelek párhuzamosan történnek. Minden az átadási folyamat vége felé fejeződik be. Az egyes blobblokkok párhuzamosan lesznek átadva.
  • Az átvitel aszinkron módon történik az ügyfélen. Az átvitel állapota rendszeres időközönként elérhető egy TransferContext objektumban definiálható metódusra való visszahívással.
  • Az átvitel ellenőrzőpontokat hoz létre a folyamat során, és elérhetővé tesz egy TransferCheckpoint-objektumot . Az objektum a TransferContext objektumon keresztül a legújabb ellenőrzőpontot jelöli. Ha a TransferCheckpoint az átvitel lemondása/megszakítása előtt van mentve, az átvitel akár hét napig is folytatható az ellenőrzőpontról. Az átvitel bármely ellenőrzőpontról folytatható, nem csak a legújabb helyről.
  • Ha az átviteli ügyfélfolyamat az ellenőrzőpont-funkció implementálása nélkül le van ölték és újraindult.
    • A blobátvitelek befejezése előtt az átvitel újraindul.
    • Néhány blob befejezése után az átvitel csak a hiányos blobok esetében indul újra.
  • Az ügyfél végrehajtásának felfüggesztése szünetelteti az átviteleket.
  • A blobátviteli funkció elvonja az ügyfelet az átmeneti hibáktól. A tárfiók szabályozása például általában nem okoz sikertelen átvitelt, de lelassítja az átvitelt.
  • A szolgáltatásoldali átvitelek alacsony ügyfélerőforrás-használattal rendelkeznek a processzor és a memória, néhány hálózati sávszélesség és kapcsolatok esetében.

Az aszinkron átvitel jellemzői

A TransferManager.CopyDirectoryAsync() metódust a CopyMethod.ServiceSideAsyncCopy beállítással hívhatja meg. Az ügyfél szempontjából a szinkronizálásátviteli mechanizmushoz hasonlóan működik, de a működésben az alábbi különbségekkel:

  • Az átviteli sebesség sokkal lassabb, mint az egyenértékű szinkronizálási átvitel (általában 10 MB/s vagy kisebb).
  • Az átvitel akkor is folytatódik, ha az ügyfélfolyamat leáll.
  • Bár az ellenőrzőpontok támogatottak, az átvitel TransferCheckpoint használatával történő folytatása nem az ellenőrzőpont idején, hanem az átvitel aktuális állapotában folytatódik.

Teszt összefoglalása

Az Azure Blob Storage szolgáltatásoldali szinkronizálási átviteli funkciójával támogatja a magas globális átviteli sebességet. A .NET-alkalmazásokban a funkció használata egyszerű az adatáthelyezési kódtár használatával. A Cost Management exportált példányai több száz gigabájtnyi adatot másolnak megbízhatóan egy tárfiókba kevesebb mint egy óra alatt.