Prestaties van De Azure Integration Runtime optimaliseren

Gegevensstromen worden uitgevoerd op Spark-clusters die tijdens runtime worden gesponnen. De configuratie voor het gebruikte cluster wordt gedefinieerd in de Integration Runtime (IR) van de activiteit. Er zijn drie prestatieoverwegingen die u moet maken bij het definiëren van uw Integration Runtime: clustertype, clustergrootte en time to live.

Zie Integration Runtime voor meer informatie over het maken van een Integration Runtime.

De eenvoudigste manier om aan de slag te gaan met integratieruntimes voor gegevensstromen is door kleine, middelgrote of grote opties te kiezen in de berekeningsgroottekiezer. Zie de toewijzingen voor clusterconfiguraties voor deze grootten hieronder.

Grootte van cluster

Gegevensstromen verdelen de gegevensverwerking over verschillende kernen in een Spark-cluster om gelijktijdig bewerkingen uit te voeren. Een Spark-cluster met meer kernen verhoogt het aantal kernen in de rekenomgeving. Meer kernen vergroten de verwerkingskracht van de gegevensstroom. Het vergroten van de grootte van het cluster is vaak een eenvoudige manier om de verwerkingstijd te verminderen.

De standaardclustergrootte is vier stuurprogrammakernen en vier werkkernen (klein). Naarmate u meer gegevens verwerkt, worden grotere clusters aanbevolen. Hieronder ziet u de mogelijke opties voor het aanpassen van de grootte:

Werkrolkernen Stuurprogrammakernen Totaal aantal kernen Opmerkingen
4 4 8 Klein
8 8 16 Gemiddeld
16 16 32 Groot
32 16 48
64 16 80
128 16 144
256 16 272

Gegevensstromen zijn geprijsd voor vcore-uren, wat betekent dat zowel de clustergrootte als de uitvoeringstijd hiervan in rekening worden gebracht. Wanneer u omhoog schaalt, nemen de kosten van uw cluster per minuut toe, maar de totale tijd neemt af.

Tip

Er is een plafond voor hoeveel de grootte van een cluster van invloed is op de prestaties van een gegevensstroom. Afhankelijk van de grootte van uw gegevens is er een punt waar het vergroten van de grootte van een cluster stopt met het verbeteren van de prestaties. Als u bijvoorbeeld meer kernen hebt dan partities met gegevens, kunt u geen extra kernen toevoegen. Een best practice is om klein te beginnen en omhoog te schalen om te voldoen aan uw prestatiebehoeften.

Aangepaste willekeurige partitie

De gegevensstroom verdeelt de gegevens in partities en transformeert deze met behulp van verschillende processen. Als de gegevensgrootte in een partitie groter is dan het proces in het geheugen kan bevatten, mislukt het proces met OOM-fouten (onvoldoende geheugen). Als de gegevensstroom enorme hoeveelheden gegevens bevat met joins/aggregaties, kunt u proberen partities in willekeurige volgorde te wijzigen. U kunt deze instellen van 50 tot 2000, om OOM-fouten te voorkomen. Aangepaste eigenschappen berekenen in gegevensstroomruntime is een manier om uw rekenvereisten te beheren. De naam van de eigenschap is Shuffle-partities en het is een geheel getal. Deze aanpassing mag alleen worden gebruikt in bekende scenario's, anders kan dit onnodige gegevensstroomfouten veroorzaken.

Zorg er tijdens het vergroten van de willekeurige partities voor dat gegevens goed worden verdeeld. Een ruw getal is om ongeveer 1,5 GB aan gegevens per partitie te hebben. Als gegevens scheef zijn, is het verhogen van de 'Shuffle-partities' niet handig. Als u bijvoorbeeld 500 GB aan gegevens hebt, moet een waarde tussen 400 en 500 werken. De standaardlimiet voor shuffle-partities is 200 en dat aantal is geschikt voor ongeveer 300 GB aan gegevens.

  1. Selecteer in de ADF-portal onder Beheren een aangepaste integratieruntime en ga naar de bewerkingsmodus.
  2. Ga onder het tabblad Uitvoeringstijd van de gegevensstroom naar de sectie Aangepaste eigenschappen berekenen.
  3. Selecteer Willekeurige partities onder eigenschapsnaam , invoerwaarde van uw keuze, zoals 250, 500 enzovoort.

U kunt hetzelfde doen door het JSON-bestand van runtime te bewerken door een matrix met eigenschapsnaam en -waarde toe te voegen na een bestaande eigenschap, zoals opschoningseigenschap .

Time to live

Standaard draait elke gegevensstroomactiviteit een nieuw Spark-cluster op basis van de Azure IR-configuratie. Het duurt enkele minuten voordat de opstarttijd van het koude cluster is voltooid en de gegevensverwerking kan pas worden gestart als deze is voltooid. Als uw pijplijnen meerdere opeenvolgende gegevensstromen bevatten, kunt u een TTL-waarde (Time to Live) inschakelen. Als u een time to live-waarde opgeeft, blijft een cluster gedurende een bepaalde periode actief nadat de uitvoering is voltooid. Als een nieuwe taak de IR tijdens de TTL-tijd gaat gebruiken, wordt het bestaande cluster opnieuw gebruikt en wordt de opstarttijd aanzienlijk verminderd. Nadat de tweede taak is voltooid, blijft het cluster weer actief voor de TTL-tijd.

Als de meeste gegevensstromen echter parallel worden uitgevoerd, wordt het afgeraden TTL in te schakelen voor de IR die u voor deze activiteiten gebruikt. Slechts één taak kan tegelijk op één cluster worden uitgevoerd. Als er een beschikbaar cluster is, maar er twee gegevensstromen worden gestart, wordt slechts één cluster gebruikt. De tweede taak krijgt een eigen geïsoleerd cluster.

Notitie

Time to Live is niet beschikbaar bij het gebruik van de integratieruntime voor automatisch oplossen (standaardinstelling).

Zie andere Gegevensstroom artikelen met betrekking tot prestaties: