Copy-activiteit in Azure Data Factory en Azure Synapse Analytics
VAN TOEPASSING OP:
Azure Data Factory
Azure Synapse Analytics
In Azure Data Factory en Synapse-pijplijnen kunt u de Copy-activiteit gebruiken om gegevens te kopiëren tussen gegevensopslagexemplaars die zich on-premises en in de cloud bevinden. Nadat u de gegevens hebt kopieert, kunt u andere activiteiten gebruiken om deze verder te transformeren en te analyseren. U kunt ook de Copy-activiteit om transformatie- en analyseresultaten te publiceren voor business intelligence (BI) en toepassingsverbruik.
De Copy-activiteit wordt uitgevoerd in een integration runtime. U kunt verschillende typen integratieruntimes gebruiken voor verschillende scenario's voor het kopiëren van gegevens:
- Wanneer u gegevens kopieert tussen twee gegevensopslagexemplaars die openbaar toegankelijk zijn via internet vanaf elk IP-adres, kunt u de Azure Integration Runtime gebruiken voor de kopieeractiviteit. Deze integratieruntime is veilig, betrouwbaar, schaalbaar en wereldwijd beschikbaar.
- Wanneer u gegevens kopieert naar en van gegevensopslagexemplaars die zich on-premises of in een netwerk met toegangsbeheer bevinden (bijvoorbeeld een virtueel Azure-netwerk), moet u een zelf-hostende Integration Runtime instellen.
Aan elke bron- en sinkgegevensopslag moet een integratieruntime worden gekoppeld. Zie Bepalen welke IR moet worden gebruikt voor meer informatie over hoe de Copy-activiteit bepaalt welke integration runtime moet worden gebruikt.
Als u gegevens wilt kopiëren van een bron naar een sink, voert de service die het Copy-activiteit de volgende stappen uit:
- Leest gegevens uit een brongegevensopslag.
- Serialisatie/deserialisatie, compressie/decompressie, kolomtoewijzing, en meer. Deze bewerkingen worden uitgevoerd op basis van de configuratie van de invoergegevensset, uitvoergegevensset en Copy-activiteit.
- Schrijft gegevens naar het sink-/doelgegevensopslag.
Ondersteunde gegevensopslag en indelingen
Notitie
Als een connector is gemarkeerd met preview, kunt u deze proberen en ons feedback geven. Neem contact op met de ondersteuning van Azure als u een afhankelijkheid van preview-connectors wilt opnemen in uw oplossing.
Ondersteunde bestandsindelingen
Azure Data Factory ondersteunt de volgende bestandsindelingen. Raadpleeg elk artikel voor op indeling gebaseerde instellingen.
- Avro-indeling
- Binaire indeling
- Tekstindeling met scheidingstekens
- Excel-indeling
- JSON-indeling
- ORC-indeling
- Parquet-indeling
- XML-indeling
U kunt de Copy-activiteit gebruiken om bestanden te kopiëren tussen twee bestandsgebaseerde gegevensopslag. In dat geval worden de gegevens efficiënt gekopieerd zonder serialisatie of deserialisatie. Daarnaast kunt u ook bestanden van een bepaalde indeling parseren of genereren. U kunt bijvoorbeeld het volgende doen:
- Gegevens kopiëren uit een SQL Server database en schrijven naar Azure Data Lake Storage Gen2 in Parquet-indeling.
- Kopieer bestanden in tekstindeling (CSV) van een on-premises bestandssysteem en schrijf naar Azure Blob Storage in Avro-indeling.
- Kopieer ingepakte bestanden uit een on-premises bestandssysteem, decomprimeren ze on-the-fly en schrijf uitgepakte bestanden naar Azure Data Lake Storage Gen2.
- Kopieer gegevens in de CSV-indeling (Compressed Text) van Gzip uit Azure Blob Storage en schrijf deze naar Azure SQL Database.
- Veel meer activiteiten waarvoor serialisatie/deserialisatie of compressie/decompressie is vereist.
Ondersteunde regio’s
De service waarmee de Copy-activiteit is wereldwijd beschikbaar in de regio's en geografieën die worden vermeld in Azure Integration Runtime-locaties. De wereldwijd beschikbare topologie zorgt voor een efficiënte gegevensver movement, waardoor hops tussen regio's meestal worden vermeden. Zie Producten per regio om de beschikbaarheid van Data Factory, Synapse-werkruimten en gegevensverkeer in een specifieke regio te controleren.
Configuratie
Als u de kopieeractiviteit wilt uitvoeren met een pijplijn, kunt u een van de volgende hulpprogramma's of SDK's gebruiken:
- Het hulpprogramma voor het kopiëren van gegevens
- Azure Portal
- De .NET-SDK
- De Python-SDK
- Azure PowerShell
- De REST-API
- Een Azure Resource Manager-sjabloon
Over het algemeen moet u het Copy-activiteit in Azure Data Factory of Synapse-pijplijnen gebruiken:
- Maak gekoppelde services voor het brongegevensopslag en het sink-gegevensopslag. U vindt de lijst met ondersteunde connectors in de sectie Ondersteunde gegevensopslag en -indelingen van dit artikel. Raadpleeg de sectie Eigenschappen van gekoppelde service in het connectorartikel voor configuratie-informatie en ondersteunde eigenschappen.
- Maak gegevenssets voor de bron en sink. Raadpleeg de secties 'Eigenschappen van gegevensset' in de artikelen over de bron- en sinkconnector voor configuratie-informatie en ondersteunde eigenschappen.
- Maak een pijplijn met de Copy-activiteit. In de volgende sectie vindt u een voorbeeld.
Syntax
De volgende sjabloon van een Copy-activiteit bevat een volledige lijst met ondersteunde eigenschappen. Geef de instellingen op die bij uw scenario passen.
"activities":[
{
"name": "CopyActivityTemplate",
"type": "Copy",
"inputs": [
{
"referenceName": "<source dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<sink dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>",
<properties>
},
"sink": {
"type": "<sink type>"
<properties>
},
"translator":
{
"type": "TabularTranslator",
"columnMappings": "<column mapping>"
},
"dataIntegrationUnits": <number>,
"parallelCopies": <number>,
"enableStaging": true/false,
"stagingSettings": {
<properties>
},
"enableSkipIncompatibleRow": true/false,
"redirectIncompatibleRowSettings": {
<properties>
}
}
}
]
Syntaxisdetails
| Eigenschap | Beschrijving | Vereist? |
|---|---|---|
| type | Stel voor Copy-activiteit in op Copy |
Yes |
| Ingangen | Geef de gegevensset op die u hebt gemaakt en die naar de brongegevens wijst. De Copy-activiteit slechts één invoer ondersteunt. | Yes |
| Uitgangen | Geef de gegevensset op die u hebt gemaakt en die naar de sinkgegevens wijst. De Copy-activiteit ondersteunt slechts één uitvoer. | Yes |
| typeProperties | Geef eigenschappen op om de Copy-activiteit. | Yes |
| source | Geef het brontype voor kopiëren en de bijbehorende eigenschappen op voor het ophalen van gegevens. Zie de sectie 'eigenschappen Copy-activiteit' in het connectorartikel dat wordt vermeld in Ondersteunde gegevensopslag en indelingen voor meer informatie. |
Yes |
| Wastafel | Geef het type kopieer-sink en de bijbehorende eigenschappen op voor het schrijven van gegevens. Zie de sectie 'eigenschappen Copy-activiteit' in het connectorartikel dat wordt vermeld in Ondersteunde gegevensopslag en indelingen voor meer informatie. |
Yes |
| vertalen | Geef expliciete kolomtoewijzingen op van bron naar sink. Deze eigenschap is van toepassing wanneer het standaardgedrag voor kopiëren niet aan uw behoeften voldoet. Zie Schematoewijzing in kopieeractiviteit voor meer informatie. |
No |
| dataIntegrationUnits | Geef een meting op die de hoeveelheid energie vertegenwoordigt die de Azure Integration Runtime gebruikt voor het kopiëren van gegevens. Deze eenheden waren voorheen bekend als Cloud Data Movement Units (DMU). Zie Data Integration Units (Gegevensintegratie-eenheden) voor meer informatie. |
No |
| parallelCopies | Geef de parallellisme op die de Copy-activiteit moet gebruiken bij het lezen van gegevens uit de bron en het schrijven van gegevens naar de sink. Zie Parallel kopiëren voor meer informatie. |
No |
| Behouden | Geef op of metagegevens/ACL's behouden moeten blijven tijdens het kopiëren van gegevens. Zie Preserve metadata (Metagegevens behouden) voor meer informatie. |
No |
| enableStaging stagingSettings |
Geef op of u de tussentijdse gegevens wilt faseeren in Blob Storage in plaats van gegevens rechtstreeks van de bron naar de sink te kopiëren. Zie Gefaseerd kopiëren voor informatie over nuttige scenario's en configuratiedetails. |
No |
| enableSkipIncompatibleRow redirectIncompatibleRowSettings |
Kies hoe u incompatibele rijen wilt verwerken wanneer u gegevens van de bron naar de sink kopieert. Zie Fouttolerantie voor meer informatie. |
No |
Bewaking
U kunt de Copy-activiteit uitvoeren in de Azure Data Factory en Synapse-pijplijnen, zowel visueel als programmatisch. Zie Kopieeractiviteit bewaken voor meer informatie.
Incrementeel kopiëren
Data Factory en Synapse-pijplijnen kunt u incrementeel deltagegevens uit een brongegevensopslag kopiëren naar een sink-gegevensopslag. Zie Zelfstudie: Incrementeel gegevens kopiëren voor meer informatie.
Prestaties en afstemmen
In de controle-ervaring voor kopieeractiviteiten ziet u de statistieken over de kopieerprestaties voor elke uitvoering van uw activiteit. In Copy-activiteit handleiding voor prestaties en schaalbaarheid worden belangrijke factoren beschreven die van invloed zijn op de prestaties van gegevensver movement via de Copy-activiteit. Ook worden de prestatiewaarden vermeld die tijdens het testen zijn waargenomen en wordt besproken hoe u de prestaties van de test kunt Copy-activiteit.
Hervatten na laatste mislukte run
Copy-activiteit biedt ondersteuning voor hervatten van de laatste mislukte run wanneer u grote hoeveelheden bestanden as-is kopieert met binaire indeling tussen bestandsopslag en ervoor kiest om de map-/bestandshiërarchie te behouden van bron naar sink, bijvoorbeeld om gegevens te migreren van Amazon S3 naar Azure Data Lake Storage Gen2. Het is van toepassing op de volgende connectors op basis van bestanden: Amazon S3, Amazon S3 Compatible Storage Azure Blob, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2, Azure Files, File System, FTP, Google Cloud Storage, HDFS, Oracle Cloud Storage en SFTP.
U kunt de kopieeractiviteit op de volgende twee manieren gebruiken:
Opnieuw proberen op activiteitsniveau: U kunt het aantal nieuwe poging instellen voor kopieeractiviteit. Als deze kopieeractiviteit tijdens de uitvoering van de pijplijn mislukt, wordt de volgende automatische nieuwe poging vanaf het foutpunt van de laatste proefversie uitgevoerd.
Opnieuw worden gebruikt na mislukte activiteit: Nadat de uitvoering van de pijplijn is voltooid, kunt u ook een heruitvoering activeren vanuit de mislukte activiteit in de bewakingsweergave van de ADF-gebruikersinterface of programmatisch. Als de mislukte activiteit een kopieeractiviteit is, wordt de pijplijn niet alleen opnieuw uitgevoerd vanuit deze activiteit, maar ook hervat vanaf het storingspunt van de vorige run.
Enkele punten om op te merken:
- Hervatten vindt plaats op bestandsniveau. Als de kopieeractiviteit mislukt bij het kopiëren van een bestand, wordt dit specifieke bestand in de volgende run opnieuw gekopieerd.
- Als u wilt dat hervatten goed werkt, wijzigt u de instellingen voor de kopieeractiviteit tussen de herhalingen niet.
- Wanneer u gegevens kopieert uit Amazon S3, Azure Blob, Azure Data Lake Storage Gen2 en Google Cloud Storage, kan de kopieeractiviteit worden hervat vanuit een willekeurig aantal gekopieerde bestanden. Hoewel voor de rest van connectors op basis van bestanden als bron, ondersteunt de kopieeractiviteit momenteel hervatten vanuit een beperkt aantal bestanden, meestal met het bereik van tienduizenden en varieert afhankelijk van de lengte van de bestandspaden; bestanden die dit aantal overschrijdt, worden opnieuw gekopieerd tijdens het opnieuw proberen.
Voor andere scenario's dan het kopiëren van binaire bestanden begint de kopieeractiviteit opnieuw vanaf het begin.
Metagegevens behouden, samen met gegevens
Tijdens het kopiëren van gegevens van de bron naar de sink kunt u er in scenario's zoals data lake-migratie ook voor kiezen om de metagegevens en ACL's samen met gegevens te behouden met behulp van kopieeractiviteit. Zie Metagegevens behouden voor meer informatie.
Schema- en gegevenstypetoewijzing
Zie Schema- en gegevenstypetoewijzing voor informatie over hoe de Copy-activiteit uw brongegevens toewijst aan uw sink.
Extra kolommen toevoegen tijdens het kopiëren
Naast het kopiëren van gegevens van brongegevensopslag naar sink, kunt u ook configureren om extra gegevenskolommen toe te voegen om naar de sink te kopiëren. Bijvoorbeeld:
- Wanneer u een bestandsbron kopieert, moet u het relatieve bestandspad opslaan als een extra kolom om te traceren uit welk bestand de gegevens afkomstig zijn.
- Dupliceren van de opgegeven bronkolom als een andere kolom.
- Voeg een kolom met ADF-expressie toe om ADF-systeemvariabelen als pijplijnnaam/pijplijn-id te koppelen of om andere dynamische waarden uit de uitvoer van de upstream-activiteit op te slaan.
- Voeg een kolom met statische waarde toe om te voldoen aan uw downstreamverbruiks behoeften.
U vindt de volgende configuratie op het tabblad Bron van kopieeractiviteit. U kunt deze extra kolommen ook zoals gebruikelijk toewijzen in de toewijzing van het kopieeractiviteitschema met behulp van uw gedefinieerde kolomnamen.
Tip
Deze functie werkt met het meest recente gegevenssetmodel. Als u deze optie niet in de gebruikersinterface ziet, maakt u een nieuwe gegevensset.
Als u deze programmatisch wilt configureren, voegt u de additionalColumns eigenschap toe aan de bron van uw kopieeractiviteit:
| Eigenschap | Beschrijving | Vereist |
|---|---|---|
| additionalColumns | Voeg extra gegevenskolommen toe om naar de sink te kopiëren. Elk object onder de additionalColumns matrix vertegenwoordigt een extra kolom. De name definieert de kolomnaam en de value geeft de gegevenswaarde van die kolom aan.Toegestane gegevenswaarden zijn: - $$FILEPATH - een gereserveerde variabele geeft aan dat het relatieve pad van de bronbestanden moet worden opgeslagen naar het mappad dat is opgegeven in de gegevensset. Van toepassing op bron op basis van bestand.- $$COLUMN:<source_column_name> - een gereserveerd variabelepatroon geeft aan dat de opgegeven bronkolom als een andere kolom moet worden gedupliceerd- Expressie - Statische waarde |
No |
Voorbeeld:
"activities":[
{
"name": "CopyWithAdditionalColumns",
"type": "Copy",
"inputs": [...],
"outputs": [...],
"typeProperties": {
"source": {
"type": "<source type>",
"additionalColumns": [
{
"name": "filePath",
"value": "$$FILEPATH"
},
{
"name": "newColName",
"value": "$$COLUMN:SourceColumnA"
},
{
"name": "pipelineName",
"value": {
"value": "@pipeline().Pipeline",
"type": "Expression"
}
},
{
"name": "staticValue",
"value": "sampleValue"
}
],
...
},
"sink": {
"type": "<sink type>"
}
}
}
]
Automatisch sinktabellen maken
Wanneer u gegevens kopieert naar SQL database/Azure Synapse Analytics en de doeltabel niet bestaat, ondersteunt de kopieeractiviteit het automatisch maken ervan op basis van de brongegevens. Het is bedoeld om u snel aan de slag te helpen met het laden van de gegevens en het evalueren SQL database/Azure Synapse Analytics. Nadat de gegevens zijn opgenomen, kunt u het sinktabelschema controleren en aanpassen op basis van uw behoeften.
Deze functie wordt ondersteund bij het kopiëren van gegevens uit een bron naar de volgende sinkgegevensopslag. U vindt de optie in de ADF-ontwerpersinterface –> Copy-activiteit sink –> Table-optie – > Tabel automatisch maken, of via de eigenschap in de nettolading van de tableOption kopieeractiviteitsentabel.
Fouttolerantie
Standaard stopt de Copy-activiteit kopiëren van gegevens en wordt een fout weergegeven wanneer brongegevensrijen niet compatibel zijn met sinkgegevensrijen. Als u de kopie wilt laten slagen, kunt u de configuratie configureren Copy-activiteit niet-compatibele rijen over te slaan en in een logboek op te slaan en alleen de compatibele gegevens te kopiëren. Zie Copy-activiteit fouttolerantie voor meer informatie.
Verificatie van gegevensconsistentie
Wanneer u gegevens verplaatst van de bron naar het doelopslag, biedt de kopieeractiviteit u de mogelijkheid om aanvullende gegevensconsistentieverificatie uit te voeren om ervoor te zorgen dat de gegevens niet alleen met succes worden gekopieerd van de bron- naar de doelopslag, maar ook consistent zijn tussen bron- en doelopslag. Zodra er inconsistente bestanden zijn gevonden tijdens het verplaatsen van gegevens, kunt u de kopieeractiviteit afbreken of doorgaan met het kopiëren van de rest door de fouttolerantie-instelling in te stellen om inconsistente bestanden over te slaan. U kunt de overgeslagen bestandsnamen krijgen door de instelling voor sessielogboek in te stellen in de kopieeractiviteit. Zie Verificatie van gegevensconsistentie in kopieeractiviteit voor meer informatie.
Sessielogboek
U kunt uw gekopieerde bestandsnamen in een logboek opslaan, zodat u er verder zeker van kunt zijn dat de gegevens niet alleen met succes worden gekopieerd van de bron naar het doelopslag, maar ook consistent zijn tussen de bron- en doelopslag door de sessielogboeken van de kopieeractiviteit te controleren. Zie Sessielogboek in kopieeractiviteit voor meer informatie.
Volgende stappen
Zie de volgende quickstarts, zelfstudies en voorbeelden: