Hämta stora mängder kostnadsdata regelbundet med exportfunktionen
Den här artikeln hjälper dig att regelbundet exportera stora mängder data med exporter från Cost Management. Att exportera är det rekommenderade sättet att hämta icke sammansatta kostnadsdata. Särskilt när användningsfilerna är för stora för att anropa och ladda ned på ett tillförlitligt sätt med hjälp av API:et kostnadsinformation . Exporterade data placeras i det Azure Storage-konto som du väljer. Därifrån kan du läsa in data i dina egna system och analysera dem efter behov. Information om hur du konfigurerar exporter i Azure-portalen finns i Exportera data.
Om du vill automatisera exporter i olika omfång är exempel-API:ets begäran i nästa avsnitt en bra utgångspunkt. Du kan använda export-API:et för att skapa automatiska exporter som en del av din allmänna miljökonfiguration. Med automatiska exporter ser du till att du har de data du behöver. Du kan använda dem i din organisations system när du utökar användningen av Azure.
Vanliga exportkonfigurationer
Innan du skapar din första export bör du ta hänsyn till ditt scenario och de konfigurationsalternativ som är nödvändiga för det. Ta följande exportalternativ som exempel:
- Upprepning – Bestäm hur ofta exportjobbet ska köras och när en fil ska placeras i ditt Azure Storage-konto. Välj mellan varje dag, varje vecka och varje månad. Försök att konfigurera upprepningen så att den matchar de dataimportjobb som används av organisationens interna system.
- Upprepningsperiod – Bestäm hur länge exporten ska vara giltig. Filerna exporteras endast under upprepningsperioden.
- Tidsram – Avgör hur mycket data som genereras av exporten på en viss körning. Vanliga alternativ är MonthToDate och WeekToDate.
- StartDate – Konfigurera när du vill att exportschemat ska börja. En export skapas på StartDate och därefter baserat på din upprepning.
- Typ – Det finns tre exporttyper:
- ActualCost – Visar den totala användningen och kostnaderna för den angivna perioden, allt eftersom de ackumuleras och visas på fakturan.
- AmortizedCost – Visar den totala användningen och kostnaderna för den angivna perioden, med amortering tillämpad på de reservationsinköpskostnader som gäller.
- Användning – Alla exporter som skapats före 20 juli 2020 är av typen Användning. Uppdatera alla schemalagda exporter som antingen ActualCost eller AmortizedCost.
- Kolumner – Definierar de datafält som du vill ska ingå i exportfilen. De motsvarar fälten som är tillgängliga i API:et kostnadsinformation .
- Partitionering – Ange alternativet till sant om du har en stor datamängd och vill att den ska delas upp i flera filer. Det gör datainmatning snabbare och enklare. Mer information om partitionering finns i Filpartitionering för stora datamängder.
Skapa en daglig export för perioden hittills under månaden för en prenumeration
URL för begäran: 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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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"
]
}
}
}
}
Kopiera stora Azure Storage-blobar
Du kan använda Cost Management för att schemalägga exporter av din Azure-användningsinformation till dina Azure Storage-konton som blobar. De resulterande blobstorlekarna kan vara över gigabyte i storlek. Cost Management-teamet arbetade med Azure Storage-teamet för att testa kopiering av stora Azure Storage-blobar. Resultaten dokumenteras i följande avsnitt. Du kan förvänta dig liknande resultat när du kopierar lagringsblobar från en Azure-region till en annan.
Teamet genomförde ett prestandatest genom att överföra blobar från lagringskonton som finns i regionen USA, västra till samma region och till andra regioner. Teamet mätte hastigheter som varierade från 2 GB per sekund i samma region till 150 MB per sekund till lagringskonton i regionen Sydostasien.
Testkonfiguration
För att mäta bloböverföringshastigheter skapade teamet ett enkelt .NET-konsolprogram som refererar till den senaste versionen (v2.0.1) av Azure Data Movement Library (DLM) via NuGet. DLM är ett SDK som tillhandahålls av Azure Storage-teamet som ger programmatisk åtkomst till sina överföringstjänster. Sedan skapade de Standard V2-lagringskonton i flera regioner och använder USA, västra som källregion. De fyllde lagringskontona där med containrar, där var och en innehöll tio 2 GB blockblobar. De kopierade containrarna till andra lagringskonton med DLM:s metoden TransferManager.CopyDirectoryAsync() med alternativet CopyMethod.ServiceSideSyncCopy . Tester utfördes på en dator som kör Windows 10 med 12 kärnor och 1 GbE-nätverk.
Programinställningar som används:
- TransferManager.Configurations.ParallelOperations = Environment.ProcessorCount * 32. Teamet fann att inställningen hade störst effekt på det totala dataflödet. Ett värde på 32 gånger så många kärnor som det bästa dataflödet för testklienten.
- ServicePointManager.Default Anslut ionLimit = int. MaxValue. Om du ställer in det på ett maximalt värde överförs den fullständiga kontrollen över överföringsparallellitet till inställningen ParallelOperations som nämnts tidigare.
- TransferManager.Configurations.BlockSize = 4 194 304. Det hade viss effekt på överföringshastigheter med 4 MB, vilket visade sig vara bäst för testning.
Mer information och exempelkod finns i länkar i avsnittet Relaterat innehåll .
Testresultat
Testnummer | Till region | Blobbar | Tid (sek) | MB/s | Kommentarer |
---|---|---|---|---|---|
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 | Fyra parallella överföringar med åtta lagringskonton: Fyra väst till fyra östgenomsnitt per överföring |
6 | EastUS | 2 GB x 10 x 4 | 92 | 870 | Fyra parallella överföringar från ett lagringskonto till ett annat |
5 | EastUS | 2 GB x 10 x 8 | 148 | 135 | Åtta parallella överföringar med åtta lagringskonton: Fyra väst till fyra östgenomsnitt per överföring |
7 | SE Asien | 2 GB x 10 | 133 | 150 | |
8 | SE Asien | 2 GB x 10 x 4 | 444 | 180 | Fyra parallella överföringar från ett lagringskonto till ett annat |
Egenskaper för synkroniseringsöverföring
Här följer några av egenskaperna för den synkroniseringsöverföring på tjänstsidan som används med DML och som är relevant för dess användning:
- DML kan överföra en enskild blob eller en katalog. För katalogöverföring kan du använda ett sökmönster för att matcha blobprefixet.
- Blockbloböverföringar sker parallellt. Alla slutförs mot slutet av överföringsprocessen. Enskilda blobblock överförs parallellt.
- Överföringen körs asynkront på klienten. Överföringsstatusen är tillgänglig regelbundet via ett återanrop till en metod som kan definieras i ett TransferContext-objekt .
- Överföringen skapar kontrollpunkter under dess förlopp och exponerar ett TransferCheckpoint-objekt . Objektet representerar den senaste kontrollpunkten via Objektet TransferContext . Om TransferCheckpoint sparas innan en överföring avbryts/avbryts kan överföringen återupptas från kontrollpunkten i upp till sju dagar. Överföringen kan återupptas från valfri kontrollpunkt, inte bara den senaste.
- Om överföringsklientprocessen avlivas och startas om utan att kontrollpunktsfunktionen implementeras:
- Innan alla bloböverföringar slutförs startas överföringen om.
- När vissa blobar har slutförts startas överföringen bara om för de ofullständiga blobarna.
- Om du pausar klientkörningen pausas överföringarna.
- Funktionen bloböverföring abstraherar klienten från tillfälliga fel. Till exempel orsakar begränsning av lagringskonton normalt inte att en överföring misslyckas men fördröjer överföringen.
- Överföringar på tjänstsidan har låg klientresursanvändning för CPU och minne, viss nätverksbandbredd och anslutningar.
Egenskaper för asynkron överföring
Du kan anropa metoden TransferManager.CopyDirectoryAsync() med alternativet CopyMethod.ServiceSideAsyncCopy . Den fungerar ungefär som synkroniseringsöverföringsmekanismen ur klientperspektiv, men med följande skillnader i drift:
- Överföringshastigheterna är långsammare än motsvarande synkroniseringsöverföring (vanligtvis 10 MB/s eller mindre).
- Överföringen fortsätter även om klientprocessen avslutas.
- Kontrollpunkter stöds, men att återuppta en överföring med en TransferCheckpoint återupptas inte vid kontrollpunktstillfället utan i det aktuella tillståndet för överföringen.
Testsammanfattning
Azure Blob Storage har stöd för höga globala överföringshastigheter med dess synkroniseringsöverföringsfunktion på tjänstsidan. Det är enkelt att använda funktionen i .NET-program med hjälp av Data Movement Library. Det är möjligt för Cost Management-exporter att på ett tillförlitligt sätt kopiera hundratals gigabyte data till ett lagringskonto var som helst på mindre än en timme.
Relaterat innehåll
- Se källan för Microsoft Azure Storage Data Movement Library .
- Överföra data med dataflyttbiblioteket.
- Se exempelprogrammets källexempel för AzureDmlBackup.
- Läs högt dataflöde med Azure Blob Storage.