Gegevenssets met grote kosten regelmatig ophalen met exports
Dit artikel helpt u regelmatig grote hoeveelheden gegevens te exporteren vanuit Cost Management. Exporteren is de aanbevolen manier om niet-samengevoegde kostengegevens op te halen, Vooral wanneer gebruiksbestanden te groot zijn om betrouwbaar aan te roepen en te downloaden met behulp van de COST Details-API . Geëxporteerde gegevens worden in het Azure Storage-account van uw keuze geplaatst. Van daaruit kunt u ze in uw eigen systemen laden en naar behoefte analyseren. Zie Gegevens exporteren om exports in Azure Portal te configureren.
Als u exports met verschillende bereiken wilt automatiseren, is het voorbeeld van een API-aanvraag in de volgende sectie een goed uitgangspunt. U kunt de Exports-API gebruiken om automatische exports te maken als onderdeel van uw algemene omgevingsconfiguratie. Automatische exports helpen te verzekeren dat u over de gegevens beschikt die u nodig hebt. U kunt ze gebruiken in de systemen van uw eigen organisatie naarmate u uw Azure-gebruik uitbreidt.
Algemene exportconfiguraties
Voordat u uw eerste export maakt, overweegt u uw scenario en de configuratieopties die u nodig hebt om het mogelijk te maken. Overweeg de volgende exportopties:
- Terugkeerpatroon: Bepaalt hoe vaak de exporttaak wordt uitgevoerd en wanneer een bestand in uw Azure Storage-account wordt geplaatst. Kies tussen Dagelijks, Wekelijks en Maandelijks. Probeer uw terugkeerpatroon zodanig te configureren dat het overeenkomt met de gegevensimporttaken die worden gebruikt door het interne systeem van uw organisatie.
- Terugkeerperiode: Bepaalt hoelang de export geldig blijft. Bestanden worden alleen geëxporteerd tijdens de terugkeerperiode.
- Tijdsbestek : bepaalt de hoeveelheid gegevens die door de export worden gegenereerd op een bepaalde uitvoering. Algemene opties zijn MonthToDate en WeekToDate.
- StartDate: Hiermee configureert u wanneer u wilt dat het exportschema begint. Een export wordt gemaakt op de StartDate en wordt daarna gebaseerd op uw Terugkeerpatroon.
- Type : er zijn drie exporttypen:
- ActualCost: Toont het totale gebruik en de totale kosten voor de opgegeven periode naarmate ze worden gemaakt en weergegeven op uw factuur.
- AmortizedCost: Toont het totale gebruik en de totale kosten voor de opgegeven periode, waarbij afschrijving wordt toegepast op de toepasselijke aankoopkosten van reserveringen.
- Gebruik: Alle exports die vóór 20 juli 2020 zijn gemaakt, zijn van het type Gebruik. Werk al uw geplande exports bij als ActualCost of AmortizedCost.
- Kolommen: Definieert de gegevensvelden die u in uw exportbestand wilt opnemen. Ze komen overeen met de velden die beschikbaar zijn in de API kostendetails .
- Partitioneren : stel de optie in op True als u een grote gegevensset hebt en deze wilt opsplitsen in meerdere bestanden. Het maakt gegevensopname sneller en eenvoudiger. Zie Bestandspartitionering voor grote gegevenssets voor meer informatie over partitioneren.
Een dagelijkse export van maand tot heden maken voor een abonnement
Aanvraag-URL: 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"
]
}
}
}
}
Grote Azure Storage-blobs kopiëren
U kunt Cost Management gebruiken om exports van uw Azure-gebruiksgegevens in uw Azure Storage-accounts als blobs te plannen. De resulterende blobgrootten kunnen groter zijn dan gigabytes. Het Cost Management-team werkte samen met het Azure Storage-team om het kopiëren van grote Azure Storage-blobs te testen. De resultaten worden beschreven in de volgende secties. U kunt verwachten dat u vergelijkbare resultaten krijgt als u opslagblobs van de ene Azure-regio naar de andere kopieert.
Het team heeft een prestatietest uitgevoerd door blobs over te zetten van opslagaccounts in de regio US - west naar dezelfde regio en naar andere regio's. Het team heeft snelheden gemeten die variëren van 2 GB per seconde in dezelfde regio tot 150 MB per seconde naar opslagaccounts in de regio Azië - zuidoost.
Testconfiguratie
Om de snelheid van bloboverdracht te meten, heeft het team een eenvoudige .NET-consoletoepassing gemaakt die verwijst naar de nieuwste versie (v2.0.1) van de Azure Data Movement Library (DLM) via NuGet. DLM is een SDK die wordt geleverd door het Azure Storage-team waarmee programmatische toegang tot hun overdrachtsservices mogelijk is. Vervolgens hebben ze Standard V2-opslagaccounts in meerdere regio's gemaakt en de VS - west als bronregio gebruikt. Ze hebben de opslagaccounts daar gevuld met containers, waarbij elk tien blok-blobs van 2 GB bevat. Ze hebben de containers gekopieerd naar andere opslagaccounts met behulp van de methode TransferManager.CopyDirectoryAsync() van DLM met de optie CopyMethod.ServiceSideSyncCopy. Er zijn tests uitgevoerd op een computer met Windows 10 met 12 kernen en 1 GbE-netwerk.
Gebruikte toepassingsinstellingen:
- TransferManager.Configurations.ParallelOperations = Environment.ProcessorCount * 32. Het team heeft de instelling gevonden die het meeste effect heeft op de totale doorvoer. Een waarde van 32 keer het aantal kernen dat de beste doorvoer voor de testclient heeft geleverd.
- ServicePointManager.Default Verbinding maken ionLimit = int. MaxValue. Als u deze instelt op een maximale waarde, wordt de overdracht parallellisme volledig beheerd door de eerder genoemde instelling ParallelOperations .
- TransferManager.Configurations.BlockSize = 4.194.304. Het had een effect op overdrachtssnelheden met 4 MB, wat het beste bleek voor testen.
Zie koppelingen in de sectie Gerelateerde inhoud voor meer informatie en voorbeeldcode.
Testresultaten
Testnummer | Naar regio | Blobs | Tijd (seconden) | MB/s | Opmerkingen |
---|---|---|---|---|---|
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 | Vier parallelle overdrachten met acht opslagaccounts: Gemiddelden van vier west naar vier oost per overdracht |
6 | EastUS | 2 GB x 10 x 4 | 92 | 870 | Vier parallelle overdrachten van het ene opslagaccount naar het andere |
5 | EastUS | 2 GB x 10 x 8 | 148 | 135 | Acht parallelle overdrachten met acht opslagaccounts: gemiddelden van vier west naar vier oost per overdracht |
7 | SE Azië | 2 GB x 10 | 133 | 150 | |
8 | SE Azië | 2 GB x 10 x 4 | 444 | 180 | Vier parallelle overdrachten van het ene opslagaccount naar het andere |
Kenmerken van synchronisatieoverdracht
Hier volgen enkele van de kenmerken van de synchronisatieoverdracht aan de servicezijde die wordt gebruikt met DML die relevant is voor het gebruik ervan:
- DML kan één blob of een map overdragen. Voor mapoverdracht kunt u een zoekpatroon gebruiken om overeen te komen met het blobvoorvoegsel.
- Blok-bloboverdrachten worden parallel uitgevoerd. Alle voltooid aan het einde van het overdrachtsproces. Afzonderlijke blobblokken worden parallel overgedragen.
- De overdracht wordt asynchroon uitgevoerd op de client. De overdrachtsstatus is periodiek beschikbaar via een callback naar een methode die kan worden gedefinieerd in een TransferContext-object .
- Tijdens de voortgang worden controlepunten gemaakt en wordt een TransferCheckpoint-object weergegeven. Het object vertegenwoordigt het meest recente controlepunt via het Object TransferContext . Als de TransferCheckpoint wordt opgeslagen voordat een overdracht wordt geannuleerd/afgebroken, kan de overdracht gedurende maximaal zeven dagen worden hervat vanaf het controlepunt. De overdracht kan worden hervat vanaf elk controlepunt, niet alleen de meest recente.
- Als het overdrachtsclientproces wordt beëindigd en opnieuw wordt gestart zonder de controlepuntfunctie te implementeren:
- Voordat eventuele bloboverdrachten zijn voltooid, wordt de overdracht opnieuw gestart.
- Nadat sommige blobs zijn voltooid, wordt de overdracht alleen opnieuw gestart voor de onvolledige blobs.
- Als u de uitvoering van de client onderbreekt, worden de overdrachten onderbroken.
- Met de functie voor bloboverdracht wordt de client geabstraheerd van tijdelijke fouten. Beperking van opslagaccounts veroorzaakt bijvoorbeeld niet normaal gesproken een overdracht, maar vertraagt de overdracht.
- Overdrachten aan de servicezijde hebben weinig clientresourcegebruik voor CPU en geheugen, bepaalde netwerkbandbreedte en verbindingen.
Asynchrone overdrachtskenmerken
U kunt de methode TransferManager.CopyDirectoryAsync() aanroepen met de optie CopyMethod.ServiceSideAsyncCopy . Het werkt vergelijkbaar met het mechanisme voor synchronisatieoverdracht vanuit het perspectief van de client, maar met de volgende verschillen in werking:
- Overdrachtssnelheden zijn langzamer dan de equivalente synchronisatieoverdracht (meestal 10 MB/s of minder).
- De overdracht wordt voortgezet, zelfs als het clientproces wordt beëindigd.
- Hoewel controlepunten worden ondersteund, wordt het hervatten van een overdracht met behulp van een TransferCheckpoint niet hervat op het tijdstip van het controlepunt, maar op de huidige status van de overdracht.
Testoverzicht
Azure Blob Storage ondersteunt hoge wereldwijde overdrachtssnelheden met de functie voor synchronisatieoverdracht aan de servicezijde. Het gebruik van de functie in .NET-toepassingen is eenvoudig met behulp van de gegevensverplaatsingsbibliotheek. Het is mogelijk dat Cost Management exporteert om honderden gigabytes aan gegevens betrouwbaar te kopiëren naar een opslagaccount binnen een uur.
Gerelateerde inhoud
- Zie de bron van de Microsoft Azure Storage-gegevensverplaatsingsbibliotheek .
- Gegevens overdragen met de gegevensverplaatsingsbibliotheek.
- Zie het voorbeeld van de voorbeeldtoepassing AzureDmlBackup.
- Lees hoge doorvoer met Azure Blob Storage.