Handleiding voor prestaties en afstemming van kopieeractiviteiten

Notitie

Dit artikel is van toepassing op versie 1 van Data Factory. Als u de huidige versie van de Data Factory-service gebruikt, raadpleegt u Copy-activiteit handleiding voor prestaties en afstemming voor Data Factory.

Azure Data Factory Kopieeractiviteit biedt een eersteklas veilige, betrouwbare en krachtige oplossing voor het laden van gegevens. Hiermee kunt u elke dag tientallen terabytes aan gegevens kopiëren in een groot aantal cloud- en on-premises gegevensarchieven. Razendsnelle prestaties voor het laden van gegevens zijn essentieel om ervoor te zorgen dat u zich kunt richten op het kernprobleem 'big data': het bouwen van geavanceerde analyseoplossingen en het verkrijgen van diepgaande inzichten uit al die gegevens.

Azure biedt een set hoogwaardige oplossingen voor gegevensopslag en datawarehouse, en Kopieeractiviteit biedt een uiterst geoptimaliseerde ervaring voor het laden van gegevens die eenvoudig te configureren en in te stellen is. Met slechts één kopieeractiviteit kunt u het volgende bereiken:

In dit artikel wordt het volgende beschreven:

Notitie

Als u niet bekend bent met kopieeractiviteit in het algemeen, raadpleegt u Gegevens verplaatsen met kopieeractiviteit voordat u dit artikel leest.

Prestatiereferentie

Ter referentie ziet u in de onderstaande tabel het doorvoernummer voor kopieën in MBps voor de opgegeven bron- en sinkparen op basis van interne tests. Ter vergelijking laat het ook zien hoe verschillende instellingen van cloudgegevensverplaatsingseenheden of schaalbaarheid van Gegevensbeheer Gateway (meerdere gatewayknooppunten) kunnen helpen bij de kopieerprestaties.

Prestatiematrix

Belangrijk

In Azure Data Factory versie 1 zijn de minimale cloudgegevensverplaatsingseenheden voor cloud-naar-cloudkopie twee. Als dit niet is opgegeven, raadpleegt u standaardgegevensverplaatsingseenheden die worden gebruikt in cloudgegevensverplaatsingseenheden.

Punten om op te merken:

  • Doorvoer wordt berekend met behulp van de volgende formule: [grootte van gegevens die worden gelezen uit bron]/[Duur van uitvoering van kopieeractiviteit].
  • De prestatiereferentienummers in de tabel zijn gemeten met behulp van de TPC-H-gegevensset in één uitvoering van de kopieeractiviteit.
  • In Azure-gegevensarchieven bevinden de bron en sink zich in dezelfde Azure-regio.
  • Voor hybride kopie tussen on-premises gegevensarchieven en gegevensarchieven in de cloud werd elk gatewayknooppunt uitgevoerd op een computer die gescheiden was van het on-premises gegevensarchief met de onderstaande specificatie. Wanneer één activiteit werd uitgevoerd op de gateway, verbruikte de kopieerbewerking slechts een klein deel van de CPU, het geheugen of de netwerkbandbreedte van de testmachine. Meer informatie over overwegingen voor Gegevensbeheer Gateway.
    CPU 32 kernen 2,20 GHz Intel Xeon E5-2660 v2
    Geheugen 128 GB
    Netwerk Internetinterface: 10 Gbps; intranetinterface: 40 Gbps

Tip

U kunt een hogere doorvoer bereiken door meer eenheden voor gegevensverplaatsing (DTU's) te gebruiken dan het standaard maximum aantal DKU's, dat is 32 voor een uitvoering van een cloud-naar-cloud-kopieeractiviteit. Met 100 DMU's kunt u bijvoorbeeld gegevens kopiëren van Azure Blob naar Azure Data Lake Store met 1,0 GBps. Zie de sectie Cloudgegevensverplaatsingseenheden voor meer informatie over deze functie en het ondersteunde scenario. Neem contact op met ondersteuning voor Azure om meer dmu's aan te vragen.

Parallel kopiëren

U kunt gegevens uit de bron lezen of gegevens parallel naar de bestemming schrijven in een kopieeractiviteit. Deze functie verbetert de doorvoer van een kopieerbewerking en vermindert de tijd die nodig is om gegevens te verplaatsen.

Deze instelling verschilt van de gelijktijdigheidseigenschap in de definitie van de activiteit. De eigenschap gelijktijdigheid bepaalt het aantal gelijktijdige uitvoeringen van kopieeractiviteiten om gegevens uit verschillende activiteitsvensters te verwerken (1:00 tot 2:00, 2:00 tot 3:00, 3:00 tot 4:00 uur, enzovoort). Deze mogelijkheid is handig wanneer u een historische belasting uitvoert. De mogelijkheid om parallel te kopiëren is van toepassing op één activiteitsuitvoering.

Laten we een voorbeeldscenario bekijken. In het volgende voorbeeld moeten meerdere segmenten uit het verleden worden verwerkt. Data Factory voert voor elk segment een exemplaar van de kopieeractiviteit (een activiteitsuitvoering) uit:

  • Het gegevenssegment van het eerste activiteitsvenster (1:00 tot 2:00 uur) ==> Activiteitsuitvoering 1
  • Het gegevenssegment van het tweede activiteitsvenster (2:00 tot 3:00 uur) ==> Activiteitsuitvoering 2
  • Het gegevenssegment van het tweede activiteitsvenster (3:00 tot 4:00 uur) ==> Activiteitsuitvoering 3

Enzovoort.

In dit voorbeeld, wanneer de gelijktijdigheidswaarde is ingesteld op 2, kopiëren activiteitsuitvoering 1 en activiteit 2gelijktijdig gegevens uit twee activiteitsvensters om de prestaties van gegevensverplaatsing te verbeteren. Als er echter meerdere bestanden zijn gekoppeld aan activiteit 1, kopieert de gegevensverplaatsingsservice bestanden van de bron naar het doelbestand één voor één.

Eenheden voor cloudgegevensverplaatsing

Een cloudgegevensverplaatsingseenheid (DMU) is een meting die de kracht (een combinatie van CPU, geheugen en netwerkresourcetoewijzing) van één eenheid in Data Factory vertegenwoordigt. DMU is van toepassing voor cloud-naar-cloud kopieerbewerkingen, maar niet in een hybride kopie.

De minimale cloudgegevensverplaatsingseenheden voor het uitvoeren van kopieeractiviteiten zijn twee. Als dit niet is opgegeven, bevat de volgende tabel de standaard-DMP's die worden gebruikt in verschillende kopieerscenario's:

Scenario kopiëren Standaard-DTU's die worden bepaald door de service
Gegevens kopiëren tussen opslag op basis van bestanden Tussen 4 en 16 afhankelijk van het aantal en de grootte van de bestanden.
Alle andere kopieerscenario's 4

Als u deze standaardinstelling wilt overschrijven, geeft u als volgt een waarde op voor de eigenschap cloudDataMovementUnits . De toegestane waarden voor de eigenschap cloudDataMovementUnits zijn 2, 4, 8, 16, 32. Het werkelijke aantal cloud-DDU's dat de kopieerbewerking tijdens runtime gebruikt, is gelijk aan of kleiner dan de geconfigureerde waarde, afhankelijk van uw gegevenspatroon. Zie de prestatiereferentie voor informatie over het prestatieverbeteringsniveau dat u mogelijk krijgt wanneer u meer eenheden configureert voor een specifieke kopieerbron en sink.

"activities":[
    {
        "name": "Sample copy activity",
        "description": "",
        "type": "Copy",
        "inputs": [{ "name": "InputDataset" }],
        "outputs": [{ "name": "OutputDataset" }],
        "typeProperties": {
            "source": {
                "type": "BlobSource",
            },
            "sink": {
                "type": "AzureDataLakeStoreSink"
            },
            "cloudDataMovementUnits": 32
        }
    }
]

Notitie

Als u meer cloud-DMU's nodig hebt voor een hogere doorvoer, neemt u contact op met ondersteuning voor Azure. Instelling 8 en hoger werkt momenteel alleen wanneer u meerdere bestanden kopieert van Blob Storage/Data Lake Store/Amazon S3/cloud FTP/cloud SFTP naar Blob Storage/Data Lake Store/Azure SQL Database.

parallelCopies

U kunt de eigenschap parallelCopies gebruiken om de parallelle uitvoering aan te geven die de kopieeractiviteit moet gebruiken. U kunt deze eigenschap beschouwen als het maximum aantal threads binnen Kopieeractiviteit dat parallel kan lezen uit uw bron of naar uw sinkgegevensarchieven kan schrijven.

Voor elke uitvoering van de kopieeractiviteit bepaalt Data Factory het aantal parallelle kopieën dat moet worden gebruikt om gegevens te kopiëren uit het brongegevensarchief en naar het doelgegevensarchief. Het standaardaantal parallelle kopieën dat wordt gebruikt, is afhankelijk van het type bron en sink dat u gebruikt.

Bron en sink Standaardaantal parallelle kopieën, bepaald door service
Gegevens kopiëren tussen opslag op basis van bestanden (Blob-opslag; Data Lake Store; Amazon S3; een on-premises bestandssysteem; een on-premises HDFS) Tussen 1 en 32. Is afhankelijk van de grootte van de bestanden en het aantal DTU's (Cloud Data Movement Units) dat wordt gebruikt om gegevens te kopiëren tussen twee cloudgegevensarchieven, of van de fysieke configuratie van de gatewaycomputer die wordt gebruikt voor een hybride kopie (om gegevens te kopiëren van of naar een on-premises gegevensarchief).
Gegevens kopiëren uit een brongegevensarchief naar Azure Table Storage 4
Alle andere bron- en sinkparen 1

Normaal gesproken moet het standaardgedrag u de beste doorvoer geven. Als u echter de belasting wilt beheren op computers die uw gegevensarchieven hosten of om de kopieerprestaties af te stemmen, kunt u ervoor kiezen om de standaardwaarde te overschrijven en een waarde op te geven voor de eigenschap parallelCopies . De waarde moet tussen 1 en 32 liggen (beide inclusief). Tijdens runtime gebruikt kopieeractiviteit voor de beste prestaties een waarde die kleiner is dan of gelijk is aan de waarde die u hebt ingesteld.

"activities":[
    {
        "name": "Sample copy activity",
        "description": "",
        "type": "Copy",
        "inputs": [{ "name": "InputDataset" }],
        "outputs": [{ "name": "OutputDataset" }],
        "typeProperties": {
            "source": {
                "type": "BlobSource",
            },
            "sink": {
                "type": "AzureDataLakeStoreSink"
            },
            "parallelCopies": 8
        }
    }
]

Aandachtspunten:

  • Wanneer u gegevens kopieert tussen bestandsopslagplaatsen, bepalen de parallelCopies de parallelle uitvoering op bestandsniveau. De segmentering in één bestand zou automatisch en transparant onder plaatsvinden en het is ontworpen om de beste segmentgrootte te gebruiken voor een bepaald type brongegevensarchief om gegevens parallel en orthogonaal naar parallel te ladenCopies. Het werkelijke aantal parallelle kopieën dat de gegevensverplaatsingsservice gebruikt voor de kopieerbewerking tijdens runtime is niet meer dan het aantal bestanden dat u hebt. Als het kopieergedrag mergeFile is, kan de kopieeractiviteit niet profiteren van parallelle uitvoering op bestandsniveau.
  • Wanneer u een waarde opgeeft voor de eigenschap parallelCopies , moet u rekening houden met de belastingsverhoging voor uw bron- en sinkgegevensarchieven, en voor de gateway als het een hybride kopie is. Dit gebeurt met name wanneer u meerdere activiteiten of gelijktijdige uitvoeringen van dezelfde activiteiten hebt die in hetzelfde gegevensarchief worden uitgevoerd. Als u merkt dat het gegevensarchief of de gateway wordt overbelast door de belasting, verlaagt u de waarde parallelCopies om de belasting te verlichten.
  • Wanneer u gegevens kopieert uit winkels die niet op een bestand zijn gebaseerd naar archieven die op bestanden zijn gebaseerd, negeert de gegevensverplaatsingsservice de eigenschap parallelCopies . Zelfs als parallellisme is opgegeven, wordt dit in dit geval niet toegepast.

Notitie

U moet Gegevensbeheer Gateway versie 1.11 of hoger gebruiken om de functie parallelCopies te gebruiken wanneer u een hybride kopie maakt.

Als u deze twee eigenschappen beter wilt gebruiken en de doorvoer van uw gegevensverplaatsing wilt verbeteren, raadpleegt u de voorbeeldgebruiksvoorbeelden. U hoeft parallelCopies niet te configureren om te profiteren van het standaardgedrag. Als u configureert en parallelCopies te klein is, worden meerdere cloud-DPU's mogelijk niet volledig gebruikt.

Invloed op facturering

Het is belangrijk om te onthouden dat er kosten in rekening worden gebracht op basis van de totale tijd van de kopieerbewerking. Als een kopieertaak vroeger één uur duurde met één cloudeenheid en deze nu 15 minuten duurt met vier cloudeenheden, blijft de totale factuur vrijwel hetzelfde. U gebruikt bijvoorbeeld vier cloudeenheden. De eerste cloudeenheid besteedt 10 minuten, de tweede, 10 minuten, de derde, 5 minuten en de vierde, 5 minuten, allemaal in één kopieeractiviteit. Er worden kosten in rekening gebracht voor de totale kopieertijd (gegevensverplaatsing), die 10 + 10 + 5 + 5 = 30 minuten is. Het gebruik van parallelCopies heeft geen invloed op de facturering.

Gefaseerde kopie

Wanneer u gegevens kopieert van een brongegevensarchief naar een sinkgegevensarchief, kunt u blobopslag gebruiken als tijdelijke faseringsopslag. Fasering is vooral handig in de volgende gevallen:

  1. U wilt gegevens uit verschillende gegevensarchieven opnemen in Azure Synapse Analytics via PolyBase. Azure Synapse Analytics maakt gebruik van PolyBase als een mechanisme voor hoge doorvoer om een grote hoeveelheid gegevens in Azure Synapse Analytics te laden. De brongegevens moeten zich echter in Blob Storage bevinden en moeten voldoen aan aanvullende criteria. Wanneer u gegevens laadt uit een ander gegevensarchief dan Blob Storage, kunt u het kopiëren van gegevens activeren via tussentijdse fasering van Blob Storage. In dat geval voert Data Factory de vereiste gegevenstransformaties uit om ervoor te zorgen dat deze voldoet aan de vereisten van PolyBase. Vervolgens wordt PolyBase gebruikt om gegevens in Azure Synapse Analytics te laden. Zie PolyBase gebruiken om gegevens te laden in Azure Synapse Analytics voor meer informatie. Zie 1 TB laden in Azure Synapse Analytics binnen 15 minuten met Azure Data Factory voor een walkthrough met een gebruiksvoorbeeld.
  2. Soms duurt het even om een hybride gegevensverplaatsing uit te voeren (dat wil gezegd, kopiëren tussen een on-premises gegevensarchief en een gegevensarchief in de cloud) via een trage netwerkverbinding. Om de prestaties te verbeteren, kunt u de gegevens on-premises comprimeren, zodat het minder tijd kost om gegevens naar het faseringsgegevensarchief in de cloud te verplaatsen. Vervolgens kunt u de gegevens in het faseringsarchief decomprimeren voordat u deze in het doelgegevensarchief laadt.
  3. U wilt geen andere poorten dan poort 80 en poort 443 in uw firewall openen vanwege het IT-beleid van het bedrijf. Wanneer u bijvoorbeeld gegevens kopieert van een on-premises gegevensarchief naar een Azure SQL Database-sink of een Azure Synapse Analytics-sink, moet u uitgaande TCP-communicatie activeren op poort 1433 voor zowel de Windows-firewall als uw bedrijfsfirewall. Maak in dit scenario gebruik van de gateway om eerst gegevens te kopiëren naar een faseringsexemplaar van Blob Storage via HTTP of HTTPS op poort 443. Laad vervolgens de gegevens in SQL Database of Azure Synapse Analytics vanuit Blob Storage-fasering. In deze stroom hoeft u poort 1433 niet in te schakelen.

Hoe gefaseerd kopiëren werkt

Wanneer u de faseringsfunctie activeert, worden de gegevens eerst gekopieerd van het brongegevensarchief naar het faseringsgegevensarchief (bring your own). Vervolgens worden de gegevens gekopieerd van het faseringsgegevensarchief naar de sinkgegevensopslag. Data Factory beheert de stroom in twee fasen automatisch voor u. Data Factory schoont ook tijdelijke gegevens op uit de faseringsopslag nadat de gegevensverplaatsing is voltooid.

In het scenario voor kopiëren in de cloud (zowel bron- als sinkgegevensarchieven bevinden zich in de cloud), wordt de gateway niet gebruikt. De data factory-service voert de kopieerbewerkingen uit.

Gefaseerde kopie: cloudscenario

In het scenario voor hybride kopiëren (de bron is on-premises en de sink bevindt zich in de cloud), verplaatst de gateway gegevens van het brongegevensarchief naar een faseringsgegevensarchief. De Data Factory-service verplaatst gegevens van het faseringsgegevensarchief naar de sinkgegevensopslag. Het kopiëren van gegevens uit een gegevensarchief in de cloud naar een on-premises gegevensarchief via fasering wordt ook ondersteund met de omgekeerde stroom.

Gefaseerde kopie: hybride scenario

Wanneer u gegevensverplaatsing activeert met behulp van een faseringsarchief, kunt u opgeven of u wilt dat de gegevens worden gecomprimeerd voordat u gegevens verplaatst van het brongegevensarchief naar een tijdelijk gegevensarchief of faseringsarchief, en vervolgens gedecomprimeerd voordat u gegevens verplaatst van een tussentijdse of faseringsgegevensopslag naar het sinkgegevensarchief.

Op dit moment kunt u geen gegevens kopiëren tussen twee on-premises gegevensarchieven met behulp van een faseringsarchief. We verwachten dat deze optie binnenkort beschikbaar is.

Configuratie

Configureer de instelling enableStaging in Kopieeractiviteit om op te geven of u wilt dat de gegevens worden gefaseerd in blobopslag voordat u deze in een doelgegevensarchief laadt. Wanneer u enableStaging instelt op TRUE, geeft u de aanvullende eigenschappen op die in de volgende tabel worden vermeld. Als u nog geen service hebt, moet u ook een Azure Storage- of Shared Access Shared Access Signature-gekoppelde service maken voor fasering.

Eigenschap Beschrijving Standaardwaarde Vereist
enableStaging Geef op of u gegevens wilt kopiëren via een tijdelijke faseringsopslag. False No
linkedServiceName Geef de naam op van een AzureStorage - of AzureStorageSals gekoppelde service, die verwijst naar het exemplaar van Storage dat u gebruikt als een tijdelijke faseringsopslag.

U kunt Storage niet gebruiken met een Shared Access Signature om gegevens te laden in Azure Synapse Analytics via PolyBase. U kunt het in alle andere scenario's gebruiken.
N.v.t. Ja, wanneer enableStaging is ingesteld op TRUE
path Geef het blobopslagpad op dat u de gefaseerde gegevens wilt bevatten. Als u geen pad opgeeft, maakt de service een container voor het opslaan van tijdelijke gegevens.

Geef alleen een pad op als u Opslag gebruikt met een Shared Access Signature of als u wilt dat tijdelijke gegevens zich op een specifieke locatie bevinden.
N.v.t. No
enableCompression Hiermee geeft u op of gegevens moeten worden gecomprimeerd voordat ze naar de bestemming worden gekopieerd. Met deze instelling vermindert u de hoeveelheid gegevens die worden overgedragen. False No

Hier volgt een voorbeelddefinitie van kopieeractiviteit met de eigenschappen die in de voorgaande tabel worden beschreven:

"activities":[
{
    "name": "Sample copy activity",
    "type": "Copy",
    "inputs": [{ "name": "OnpremisesSQLServerInput" }],
    "outputs": [{ "name": "AzureSQLDBOutput" }],
    "typeProperties": {
        "source": {
            "type": "SqlSource",
        },
        "sink": {
            "type": "SqlSink"
        },
        "enableStaging": true,
        "stagingSettings": {
            "linkedServiceName": "MyStagingBlob",
            "path": "stagingcontainer/path",
            "enableCompression": true
        }
    }
}
]

Invloed op facturering

Er worden kosten in rekening gebracht op basis van twee stappen: kopieerduur en kopieertype.

  • Wanneer u fasering gebruikt tijdens een cloudkopie (gegevens kopiëren van een gegevensarchief in de cloud naar een ander cloudgegevensarchief), worden de [som van de duur van de kopie voor stap 1 en stap 2] x [prijs voor cloudkopieereenheid] in rekening gebracht.
  • Wanneer u fasering gebruikt tijdens een hybride kopie (gegevens kopiëren van een on-premises gegevensarchief naar een gegevensarchief in de cloud), worden er kosten in rekening gebracht voor [duur van hybride kopie] x [eenheidsprijs voor hybride kopie] + [duur van cloudkopie] x [prijs voor eenheid voor cloudkopie].

Stappen voor het afstemmen van prestaties

We raden u aan deze stappen uit te voeren om de prestaties van uw Data Factory-service af te stemmen met kopieeractiviteit:

  1. Stel een basislijn in. Test tijdens de ontwikkelingsfase uw pijplijn met behulp van Kopieeractiviteit op basis van een representatief gegevensvoorbeeld. U kunt het Data Factory-segmenteringsmodel gebruiken om de hoeveelheid gegevens te beperken waarmee u werkt.

    Verzamel uitvoeringstijd en prestatiekenmerken met behulp van de app Bewaking en beheer. Kies Beheren bewaken & op de startpagina van uw Data Factory. Kies in de structuurweergave de uitvoergegevensset. Kies in de lijst Activiteitsvensters de uitvoering Kopieeractiviteit. Activiteitsvensters bevatten de duur van de kopieeractiviteit en de grootte van de gekopieerde gegevens. De doorvoer wordt vermeld in Activiteitenvensterverkenner. Zie Azure Data Factory-pijplijnen bewaken en beheren met behulp van de app voor bewaking en beheer voor meer informatie over de app.

    Details uitvoering van activiteit

    Verderop in het artikel kunt u de prestaties en configuratie van uw scenario vergelijken met de prestatieverwijzing van de kopieeractiviteit uit onze tests.

  2. Prestaties vaststellen en optimaliseren. Als de prestaties die u ziet niet aan uw verwachtingen voldoen, moet u prestatieknelpunten identificeren. Optimaliseer vervolgens de prestaties om het effect van knelpunten te verwijderen of te verminderen. Een volledige beschrijving van prestatiediagnose valt buiten het bereik van dit artikel, maar hier volgen enkele veelvoorkomende overwegingen:

  3. Vouw de configuratie uit naar uw hele gegevensset. Wanneer u tevreden bent met de resultaten en prestaties van de uitvoering, kunt u de actieve periode van de definitie en pijplijn uitbreiden om uw volledige gegevensset te omvatten.

Overwegingen voor Gegevensbeheer Gateway

Gateway instellen: u wordt aangeraden een toegewezen computer te gebruiken om Gegevensbeheer Gateway te hosten. Zie Overwegingen voor het gebruik van Gegevensbeheer Gateway.

Gatewaybewaking en omhoog schalen/uitschalen: één logische gateway met een of meer gatewayknooppunten kan gelijktijdig meerdere uitvoeringen van kopieeractiviteiten uitvoeren. U kunt bijna in realtime een momentopname van het resourcegebruik bekijken (CPU, geheugen, netwerk (in/uit), enzovoort) Zie Gateway bewaken in de portal op een gatewaycomputer en het aantal gelijktijdige taken dat wordt uitgevoerd versus limiet in de Azure Portal. Als u veel behoefte hebt aan hybride gegevensverplaatsing met een groot aantal gelijktijdige kopieeractiviteiten of met grote hoeveelheden gegevens die moeten worden gekopieerd, kunt u overwegen om de gateway omhoog of uit te schalen om uw resource beter te gebruiken of om meer resources in te richten om het kopiëren mogelijk te maken.

Overwegingen voor de bron

Algemeen

Zorg ervoor dat het onderliggende gegevensarchief niet wordt overspoeld door andere workloads die erop of erop worden uitgevoerd.

Voor Microsoft gegevensarchieven raadpleegt u onderwerpen over bewaking en afstemming die specifiek zijn voor gegevensarchieven, en helpt u inzicht te krijgen in de prestatiekenmerken van gegevensarchieven, reactietijden te minimaliseren en doorvoer te maximaliseren.

Als u gegevens kopieert van Blob Storage naar Azure Synapse Analytics, kunt u polybase gebruiken om de prestaties te verbeteren. Zie PolyBase gebruiken om gegevens te laden in Azure Synapse Analytics voor meer informatie. Zie Load 1 TB in Azure Synapse Analytics under 15 minutes with Azure Data Factory (1 TB in Azure Synapse Analytics laden met Azure Data Factory) voor een walkthrough met een use case.

Op bestanden gebaseerde gegevensarchieven

(Inclusief Blob Storage, Data Lake Store, Amazon S3, on-premises bestandssystemen en on-premises HDFS)

  • Gemiddelde bestandsgrootte en aantal bestanden: Met kopieeractiviteit worden gegevens per bestand overgedragen. Met dezelfde hoeveelheid gegevens die moeten worden verplaatst, is de totale doorvoer lager als de gegevens uit veel kleine bestanden bestaan in plaats van enkele grote bestanden vanwege de bootstrapfase voor elk bestand. Combineer daarom, indien mogelijk, kleine bestanden in grotere bestanden om een hogere doorvoer te krijgen.
  • Bestandsindeling en compressie: zie de secties Overwegingen voor serialisatie en deserialisatie enOverwegingen voor compressie voor meer manieren om de prestaties te verbeteren.
  • Zie de sectie Overwegingen voor Gegevensbeheer Gateway voor het scenario met het on-premises bestandssysteem, waarin Gegevensbeheer Gateway is vereist.

Relationele gegevensarchieven

(Inclusief SQL Database; Azure Synapse Analytics; Amazon Redshift; SQL Server databases; en Oracle-, MySQL-, DB2-, Teradata-, Sybase- en PostgreSQL-databases, enzovoort)

  • Gegevenspatroon: uw tabelschema is van invloed op de kopieerdoorvoer. Een grote rijgrootte biedt u betere prestaties dan een kleine rijgrootte om dezelfde hoeveelheid gegevens te kopiëren. De reden hiervoor is dat de database efficiënter minder batches met gegevens kan ophalen die minder rijen bevatten.
  • Query of opgeslagen procedure: optimaliseer de logica van de query of opgeslagen procedure die u opgeeft in de bron kopieeractiviteit om gegevens efficiënter op te halen.
  • Voor on-premises relationele databases, zoals SQL Server en Oracle, waarvoor het gebruik van Gegevensbeheer Gateway is vereist, raadpleegt u de sectie Overwegingen voor Gegevensbeheer Gateway.

Overwegingen voor de sink

Algemeen

Zorg ervoor dat het onderliggende gegevensarchief niet wordt overspoeld door andere workloads die erop of erop worden uitgevoerd.

Raadpleeg voor Microsoft gegevensarchieven onderwerpen over bewaking en afstemming die specifiek zijn voor gegevensarchieven. Deze onderwerpen kunnen u helpen bij het begrijpen van de prestatiekenmerken van gegevensopslag en het minimaliseren van reactietijden en het maximaliseren van doorvoer.

Als u gegevens kopieert van Blob Storage naar Azure Synapse Analytics, kunt u polybase gebruiken om de prestaties te verbeteren. Zie PolyBase gebruiken om gegevens te laden in Azure Synapse Analytics voor meer informatie. Zie Load 1 TB in Azure Synapse Analytics under 15 minutes with Azure Data Factory (1 TB in Azure Synapse Analytics laden met Azure Data Factory) voor een walkthrough met een use case.

Op bestanden gebaseerde gegevensarchieven

(Inclusief Blob Storage, Data Lake Store, Amazon S3, on-premises bestandssystemen en on-premises HDFS)

  • Kopieergedrag: als u gegevens kopieert uit een ander gegevensarchief op basis van bestanden, heeft kopieeractiviteit drie opties via de eigenschap copyBehavior . De hiërarchie blijft behouden, de hiërarchie wordt platgemaakt of bestanden worden samengevoegd. Het behouden of afvlakken van de hiërarchie heeft weinig of geen overhead voor prestaties, maar het samenvoegen van bestanden zorgt ervoor dat de overhead voor prestaties toeneemt.
  • Bestandsindeling en compressie: zie de secties Overwegingen voor serialisatie en deserialisatie en Overwegingen voor compressie voor meer manieren om de prestaties te verbeteren.
  • Blob Storage: Blob Storage ondersteunt momenteel alleen blok-blobs voor geoptimaliseerde gegevensoverdracht en doorvoer.
  • Zie de sectie Overwegingen voor Gegevensbeheer Gateway voor scenario's met on-premises bestandssystemen waarvoor het gebruik van Gegevensbeheer Gateway is vereist.

Relationele gegevensarchieven

(Omvat SQL Database, Azure Synapse Analytics, SQL Server-databases en Oracle-databases)

  • Kopieergedrag: Afhankelijk van de eigenschappen die u hebt ingesteld voor sqlSink, worden gegevens met kopieeractiviteit op verschillende manieren naar de doeldatabase geschreven.
    • De service voor gegevensverplaatsing maakt standaard gebruik van de API voor bulksgewijs kopiëren om gegevens in te voegen in de toevoegmodus, wat de beste prestaties biedt.
    • Als u een opgeslagen procedure in de sink configureert, worden de gegevens rij voor rij toegepast in plaats van als bulksgewijs laden. De prestaties zijn aanzienlijk lager. Als uw gegevensset groot is, kunt u, indien van toepassing, overschakelen naar de eigenschap sqlWriterCleanupScript .
    • Als u de eigenschap sqlWriterCleanupScript configureert voor elke kopieeractiviteit die wordt uitgevoerd, activeert de service het script en gebruikt u vervolgens de API voor bulksgewijs kopiëren om de gegevens in te voegen. Als u bijvoorbeeld de hele tabel wilt overschrijven met de meest recente gegevens, kunt u een script opgeven om eerst alle records te verwijderen voordat u de nieuwe gegevens bulksgewijs uit de bron laadt.
  • Gegevenspatroon en batchgrootte:
    • Uw tabelschema is van invloed op de kopieerdoorvoer. Als u dezelfde hoeveelheid gegevens wilt kopiëren, biedt een grote rijgrootte u betere prestaties dan een kleine rijgrootte, omdat de database efficiënter minder batches gegevens kan doorvoeren.
    • Kopieeractiviteit voegt gegevens in een reeks batches in. U kunt het aantal rijen in een batch instellen met behulp van de eigenschap writeBatchSize . Als uw gegevens kleine rijen bevatten, kunt u de eigenschap writeBatchSize instellen met een hogere waarde om te profiteren van lagere batchoverhead en hogere doorvoer. Als de rijgrootte van uw gegevens groot is, moet u voorzichtig zijn wanneer u writeBatchSize verhoogt. Een hoge waarde kan leiden tot een kopieerfout die wordt veroorzaakt door overbelasting van de database.
  • Zie de sectie Overwegingen voorGegevensbeheer Gateway voor on-premises relationele databases, zoals SQL Server en Oracle, waarvoor het gebruik van Gegevensbeheer Gateway is vereist.

NoSQL-archieven

(Inclusief Table Storage en Azure Cosmos DB )

  • Voor Table Storage:
    • Partitie: het schrijven van gegevens naar interleaved partities vermindert de prestaties aanzienlijk. Sorteer uw brongegevens op partitiesleutel zodat de gegevens efficiënt in de ene partitie na de andere worden ingevoegd, of pas de logica aan om de gegevens naar één partitie te schrijven.
  • Voor Azure Cosmos DB:
    • Batchgrootte: de eigenschap writeBatchSize stelt het aantal parallelle aanvragen voor de Azure Cosmos DB-service in om documenten te maken. U kunt betere prestaties verwachten wanneer u writeBatchSize verhoogt, omdat er meer parallelle aanvragen naar Azure Cosmos DB worden verzonden. Let echter op beperking wanneer u naar Azure Cosmos DB schrijft (het foutbericht is 'Aanvraagsnelheid is groot'). Verschillende factoren kunnen beperking veroorzaken, waaronder de grootte van het document, het aantal termen in de documenten en het indexeringsbeleid van de doelverzameling. Als u een hogere kopieerdoorvoer wilt bereiken, kunt u overwegen een betere verzameling te gebruiken, bijvoorbeeld S3.

Overwegingen voor serialisatie en deserialisatie

Serialisatie en deserialisatie kunnen optreden wanneer uw invoergegevensset of uitvoergegevensset een bestand is. Zie Ondersteunde bestandsindelingen en compressie-indelingen met meer informatie over ondersteunde bestandsindelingen per kopieeractiviteit.

Kopieergedrag:

  • Bestanden kopiëren tussen op bestanden gebaseerde gegevensarchieven:
    • Wanneer invoer- en uitvoergegevenssets beide dezelfde of geen bestandsindelingsinstellingen hebben, voert de service voor gegevensverplaatsing een binaire kopie uit zonder serialisatie of deserialisatie. U ziet een hogere doorvoer in vergelijking met het scenario, waarin de instellingen voor de bron- en sinkbestandsindeling van elkaar verschillen.
    • Wanneer invoer- en uitvoergegevenssets beide een tekstindeling hebben en alleen het coderingstype verschillend is, voert de gegevensverplaatsingsservice alleen coderingsconversie uit. Er wordt geen serialisatie en deserialisatie gebruikt, wat leidt tot enige prestatieoverhead in vergelijking met een binaire kopie.
    • Wanneer invoer- en uitvoergegevenssets beide verschillende bestandsindelingen of verschillende configuraties hebben, zoals scheidingstekens, verwijdert de gegevensverplaatsingsservice brongegevens om deze te streamen, te transformeren en vervolgens te serialiseren naar de uitvoerindeling die u hebt aangegeven. Deze bewerking resulteert in een veel grotere overhead voor prestaties in vergelijking met andere scenario's.
  • Wanneer u bestanden kopieert naar/van een gegevensarchief dat niet op bestanden is gebaseerd (bijvoorbeeld van een archief op basis van een bestand naar een relationeel archief), is de serialisatie- of deserialisatiestap vereist. Deze stap resulteert in aanzienlijke overhead voor prestaties.

Bestandsindeling: De bestandsindeling die u kiest, kan van invloed zijn op de kopieerprestaties. Avro is bijvoorbeeld een compacte binaire indeling waarin metagegevens met gegevens worden opgeslagen. Het biedt brede ondersteuning in het Hadoop-ecosysteem voor verwerking en query's. Avro is echter duurder voor serialisatie en deserialisatie, wat resulteert in een lagere kopieerdoorvoer in vergelijking met tekstindeling. Maak uw keuze van de bestandsindeling in de hele verwerkingsstroom holistisch. Begin met in welke vorm de gegevens worden opgeslagen, brongegevens worden opgeslagen of uit externe systemen worden geëxtraheerd; de beste indeling voor opslag, analytische verwerking en query's; en in welke indeling de gegevens moeten worden geëxporteerd naar datamarts voor rapportage- en visualisatiehulpprogramma's. Soms is een bestandsindeling die suboptimaal is voor lees- en schrijfprestaties een goede keuze wanneer u rekening houdt met het algehele analytische proces.

Overwegingen voor compressie

Wanneer uw invoer- of uitvoergegevensset een bestand is, kunt u kopieeractiviteit instellen om compressie of decompressie uit te voeren tijdens het schrijven van gegevens naar de bestemming. Wanneer u compressie kiest, maakt u een afweging tussen invoer/uitvoer (I/O) en CPU. Het comprimeren van de gegevens kost extra in rekenresources. Maar in ruil daarvoor vermindert het de netwerk-I/O en opslag. Afhankelijk van uw gegevens ziet u mogelijk een toename in de algehele kopieerdoorvoer.

Codec: Kopieeractiviteit ondersteunt de compressietypen gzip, bzip2 en Deflate. Azure HDInsight kan alle drie de typen gebruiken voor verwerking. Elke compressiecodec heeft voordelen. Bzip2 heeft bijvoorbeeld de laagste doorvoer voor kopieën, maar u krijgt de beste Hive-queryprestaties met bzip2 omdat u deze kunt splitsen voor verwerking. Gzip is de meest evenwichtige optie en wordt het vaakst gebruikt. Kies de codec die het beste past bij uw end-to-end-scenario.

Niveau: U kunt kiezen uit twee opties voor elke compressiecodec: snelste gecomprimeerd en optimaal gecomprimeerd. De snelste gecomprimeerde optie comprimeert de gegevens zo snel mogelijk, zelfs als het resulterende bestand niet optimaal is gecomprimeerd. De optimaal gecomprimeerde optie besteedt meer tijd aan compressie en levert een minimale hoeveelheid gegevens op. U kunt beide opties testen om te zien wat in uw geval betere algehele prestaties biedt.

Een overweging: als u een grote hoeveelheid gegevens wilt kopiëren tussen een on-premises archief en de cloud, kunt u overwegen om tussentijdse blobopslag met compressie te gebruiken. Het gebruik van tussentijdse opslag is handig wanneer de bandbreedte van uw bedrijfsnetwerk en uw Azure-services de beperkende factor is en u wilt dat de invoergegevensset en de uitvoergegevensset beide niet-gecomprimeerd zijn. Meer specifiek kunt u één kopieeractiviteit opsplitsen in twee kopieeractiviteiten. Met de eerste kopieeractiviteit wordt in gecomprimeerde vorm gekopieerd van de bron naar een tijdelijke blob of faseringsblob. De tweede kopieeractiviteit kopieert de gecomprimeerde gegevens uit de fasering en decomprimeert vervolgens terwijl deze naar de sink wordt geschreven.

Overwegingen voor kolomtoewijzing

U kunt de eigenschap columnMappings in Kopieeractiviteit instellen om alle of een subset van de invoerkolommen toe te wijzen aan de uitvoerkolommen. Nadat de gegevensverplaatsingsservice de gegevens uit de bron heeft gelezen, moet deze kolomtoewijzing uitvoeren op de gegevens voordat de gegevens naar de sink worden geschreven. Deze extra verwerking vermindert de kopieerdoorvoer.

Als er query's kunnen worden uitgevoerd op uw brongegevensarchief, bijvoorbeeld als het een relationeel archief is zoals SQL Database of SQL Server, of als het een NoSQL-archief is zoals Table Storage of Azure Cosmos DB, kunt u overwegen om de logica voor kolomfiltering en het opnieuw ordenen naar de queryeigenschap te pushen in plaats van kolomtoewijzing te gebruiken. Op deze manier vindt de projectie plaats terwijl de service voor gegevensverplaatsing gegevens leest uit het brongegevensarchief, waar het veel efficiënter is.

Andere overwegingen

Als de grootte van de gegevens die u wilt kopiëren groot is, kunt u uw bedrijfslogica aanpassen om de gegevens verder te partitioneren met behulp van het segmenteringsmechanisme in Data Factory. Plan vervolgens de kopieeractiviteit om vaker uit te voeren om de gegevensgrootte voor elke kopieeractiviteit te verkleinen.

Wees voorzichtig met het aantal gegevenssets en kopieeractiviteiten waarvoor Data Factory tegelijkertijd verbinding moet maken met hetzelfde gegevensarchief. Veel gelijktijdige kopieertaken kunnen een gegevensarchief beperken en leiden tot verminderde prestaties, interne nieuwe pogingen kopiëren en in sommige gevallen uitvoeringsfouten.

Voorbeeldscenario: Kopiëren van een SQL Server-database naar Blob Storage

Scenario: Een pijplijn is gebouwd om gegevens uit een SQL Server-database in CSV-indeling naar Blob Storage te kopiëren. Als u de kopieertaak sneller wilt uitvoeren, moeten de CSV-bestanden worden gecomprimeerd in bzip2-indeling.

Testen en analyseren: de doorvoer van kopieeractiviteit is minder dan 2 MBps, wat veel langzamer is dan de prestatiebenchmark.

Prestatieanalyse en afstemming: om het prestatieprobleem op te lossen, gaan we kijken hoe de gegevens worden verwerkt en verplaatst.

  1. Gegevens lezen: Gateway opent een verbinding met SQL Server en verzendt de query. SQL Server reageert door de gegevensstroom via het intranet naar gateway te verzenden.
  2. Gegevens serialiseren en comprimeren: Gateway serialiseert de gegevensstroom naar CSV-indeling en comprimeert de gegevens naar een bzip2-stream.
  3. Gegevens schrijven: de gateway uploadt de bzip2-stroom naar Blob Storage via internet.

Zoals u ziet, worden de gegevens op een sequentiële streaming-manier verwerkt en verplaatst: SQL Server > LAN > Gateway > WAN > Blob Storage. De algehele prestaties worden beperkt door de minimale doorvoer in de pijplijn.

Gegevensstroom

Een of meer van de volgende factoren kunnen het prestatieknelpunt veroorzaken:

  • Bron: SQL Server zelf heeft een lage doorvoer vanwege zware belastingen.
  • Gegevensbeheer Gateway:
    • LAN: de gateway bevindt zich ver van de SQL Server computer en heeft een verbinding met lage bandbreedte.
    • Gateway: gateway heeft de belastingsbeperkingen bereikt om de volgende bewerkingen uit te voeren:
      • Serialisatie: het serialiseren van de gegevensstroom naar CSV-indeling heeft een trage doorvoer.
      • Compressie: u hebt een codec voor langzame compressie gekozen (bijvoorbeeld bzip2, wat 2,8 MBps is met Core i7).
    • WAN: de bandbreedte tussen het bedrijfsnetwerk en uw Azure-services is laag (bijvoorbeeld T1 = 1.544 kbps; T2 = 6.312 kbps).
  • Sink: Blob Storage heeft een lage doorvoer. (Dit scenario is onwaarschijnlijk omdat de SLA minimaal 60 MBps garandeert.)

In dit geval kan bzip2-gegevenscompressie de hele pijplijn vertragen. Als u overschakelt naar een gzip-compressiecodec, kan dit knelpunt mogelijk worden versoepeld.

Voorbeeldscenario's: parallel kopiëren gebruiken

Scenario I: Kopieer bestanden van 1000 1 MB van het on-premises bestandssysteem naar blobopslag.

Analyse en prestaties afstemmen: Als u bijvoorbeeld een gateway hebt geïnstalleerd op een quad-corecomputer, gebruikt Data Factory 16 parallelle kopieën om bestanden gelijktijdig van het bestandssysteem naar de Blob-opslag te verplaatsen. Deze parallelle uitvoering moet leiden tot een hoge doorvoer. U kunt ook expliciet het aantal parallelle kopieën opgeven. Wanneer u veel kleine bestanden kopieert, helpen parallelle kopieën de doorvoer aanzienlijk doordat resources effectiever worden gebruikt.

Scenario 1

Scenario II: Kopieer 20 blobs van elk 500 MB van Blob Storage naar Data Lake Store Analytics en stem vervolgens de prestaties af.

Analyse en prestaties afstemmen: In dit scenario kopieert Data Factory de gegevens van Blob Storage naar Data Lake Store met behulp van één kopie (parallelCopies ingesteld op 1) en gegevensverplaatsingseenheden met één cloud. De doorvoer die u ziet, komt in de buurt van de doorvoer die wordt beschreven in de sectie Prestatiereferentie.

Scenario 2

Scenario III: De grootte van afzonderlijke bestanden is groter dan tientallen MB's en het totale volume is groot.

Analyse en prestatieverloop: het verhogen van parallelCopies leidt niet tot betere kopieerprestaties vanwege de resourcebeperkingen van een DMU met één cloud. In plaats daarvan moet u meer cloud-DMU's opgeven om meer resources te krijgen om de gegevensverplaatsing uit te voeren. Geef geen waarde op voor de eigenschap parallelCopies . Data Factory verwerkt het parallellisme voor u. Als u in dit geval cloudDataMovementUnits instelt op 4, treedt er een doorvoer van ongeveer vier keer op.

Scenario 3

Referentie

Hier volgen prestatiecontrole- en afstemmingsverwijzingen voor enkele van de ondersteunde gegevensarchieven: