Nagy méretű költségadathalmazok ismétlődő lekérése az Exports használatával
Ez a cikk segít rendszeresen nagy mennyiségű adat exportálásában a Cost Managementből származó exportálásokkal. 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 ahhoz, hogy megbízhatóan hívjanak és töltsenek le a Cost Details API használatával. 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 – Az exportálásnak három típusa van:
- 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 igaz értékre a beállítást, ha nagy adatkészlettel rendelkezik, és azt szeretné, hogy több fájlra bontsa. Ez sokkal gyorsabban és egyszerűbben teszi az adatbetöltést. A particionálással kapcsolatos további információkért lásd: Fájlparticionálás nagy adathalmazokhoz.
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-beli használati adatok exportálását az Azure Storage-fiókokba. Az eredményként kapott blobméretek mérete meghaladhatja a gigabájtot. A Cost Management csapata az Azure Storage csapatával együttműködve tesztelte a nagy Méretű Azure Storage-blobok másolását. Az eredményeket az alábbi szakaszokban dokumentáljuk. A tárolóblobok azure-régióból egy másikba másolása hasonló eredményre számíthat.
A teljesítmény teszteléséhez a csapat az USA nyugati régiójában található tárfiókokból ugyanahhoz és más régiókhoz továbbított blobokat. 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. Az ott található tárfiókokat tárolókkal töltik fel, ahol mindegyik tíz 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 12 maggal és 1 GbE hálózattal rendelkező Windows 10 futtató számítógépen végezték el.
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 magok számának 32-szeresét tartalmazó érték biztosította a legjobb átviteli sebességet a tesztügyfél számára.
- ServicePointManager.DefaultConnectionLimit = int. MaxValue. A maximális értékre történő beállítás hatékonyan továbbítja az átviteli párhuzamosság teljes vezérlését a fenti ParallelOperations beállításnak.
- TransferManager.Configurations.BlockSize = 4 194 304. Ez némi hatással volt a 4 MB-os átviteli sebességre, és a teszteléshez a legjobbnak bizonyult.
További információkért és mintakódért tekintse meg a Következő lépések szakaszban található hivatkozásokat.
Teszteredmények
Tesztszám | Régióba | Blobok | Idő (másodperc) | MB/s | Megjegyzések |
---|---|---|---|---|---|
1 | WestUS | 2 GB x 10 | 10 | 2000 | |
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 | 4 párhuzamos átvitel 8 tárfiók használatával: 4 nyugati és 4 keleti átlag átvitelenként |
6 | EastUS | 2 GB x 10 x 4 | 92 | 870 | 4 párhuzamos átvitel 1 tárfiókból egy másikba |
5 | EastUS | 2G x 10 x 8 | 148 | 135 | 8 párhuzamos átvitel 8 tárfiókkal: 4 nyugati és 4x2 keleti átlag átvitelenként |
7 | SE Ázsia | 2 GB x 10 | 133 | 150 | |
8 | SE Á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
Íme néhány, a DML-hez használt szolgáltatásoldali szinkronizálási átvitel jellemzői, amelyek relevánsak a használata szempontjából:
- A DML egyetlen blobot vagy könyvtárat tud átvinni. A címtárátadáshoz használhat keresési mintát a blobelőtagok egyeztetéséhez.
- A blokkblobok átvitele párhuzamosan történik. Minden az átadási folyamat vége felé fejeződik be. Az egyes blobblokkok párhuzamosan lesznek átadva.
- Az átvitel aszinkron módon lesz végrehajtva az ügyfélen. Az átvitel állapota rendszeres időközönként elérhető egy TransferContext objektumban definiálható metódus visszahívásával.
- Az átvitel ellenőrzőpontokat hoz létre a folyamat során, és elérhetővé tesz egy TransferCheckpoint objektumot. Az objektum a Legújabb ellenőrzőpontot jelöli a TransferContext objektumon keresztül. Ha a TransferCheckpointot az átvitel megszakítása/megszakítása előtt menti a rendszer, az átadás 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újabbakból.
- Ha az átadási ügyfélfolyamat le van kapcsolva és újraindul az ellenőrzőpont-funkció implementálása nélkül.
- 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 felfüggeszti 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 okozza az átvitel meghiúsulását, 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 folytatódik az ellenőrzőpont időpontjában, hanem az átvitel aktuális állapotában.
Teszt összefoglalása
Az Azure Blob Storage szolgáltatásoldali szinkronizálási 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álások több száz gigabájtnyi adatot is megbízhatóan másolnak egy tárfiókba kevesebb mint egy óra alatt.
Következő lépések
- Lásd az Microsoft Azure Storage adatáthelyezési kódtár forrását.
- Adatok átvitele az adatáthelyezési kódtárral.
- Tekintse meg az AzureDmlBackup mintaalkalmazás forrásmintáját.
- Nagy átviteli sebesség olvasása Azure Blob Storage.