Copy-activiteit in Azure Data Factory en Azure Synapse Analytics

VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics

Tip

Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .

In Azure Data Factory- en Synapse-pijplijnen kunt u de Copy-activiteit gebruiken om gegevens te kopiëren tussen gegevensarchieven die zich on-premises en in de cloud bevinden. Nadat u de gegevens hebt gekopieerd, kunt u andere activiteiten gebruiken om deze verder te transformeren en te analyseren. U kunt ook de Copy-activiteit gebruiken om transformatie- en analyseresultaten te publiceren voor business intelligence (BI) en toepassingsverbruik.

The role of the Copy activity

De Copy-activiteit wordt uitgevoerd op een integratieruntime. U kunt verschillende typen integratieruntimes gebruiken voor verschillende scenario's voor het kopiëren van gegevens:

  • Wanneer u gegevens kopieert tussen twee gegevensarchieven 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 van en naar gegevensarchieven die zich on-premises of in een netwerk bevinden met toegangsbeheer (bijvoorbeeld een virtueel Azure-netwerk), moet u een zelf-hostende Integration Runtime instellen.

Er moet een integratieruntime worden gekoppeld aan elk bron- en sinkgegevensarchief. Zie Bepalen welke IR moet worden gebruikt voor informatie over hoe de Copy-activiteit bepaalt welke Integration Runtime moet worden gebruikt.

Als u gegevens van een bron naar een sink wilt kopiëren, voert de service die de Copy-activiteit uitvoert de volgende stappen uit:

  1. Leest gegevens uit een brongegevensarchief.
  2. Serialisatie/deserialisatie, compressie/decompressie, kolomtoewijzing, enzovoort. Deze bewerkingen worden uitgevoerd op basis van de configuratie van de invoergegevensset, uitvoergegevensset en Copy-activiteit.
  3. Hiermee schrijft u gegevens naar het sink-/doelgegevensarchief.

Copy activity overview

Notitie

Als een zelf-hostende Integration Runtime wordt gebruikt in een bron- of sinkgegevensarchief binnen een Copy-activiteit, moeten zowel de bron als de sink toegankelijk zijn vanaf de server waarop de integratieruntime wordt gehost, zodat de Copy-activiteit succesvol is.

Ondersteunde gegevensarchieven en -indelingen

Categorie Gegevensopslag Ondersteund als een bron Ondersteund als een sink Ondersteund door Azure IR Ondersteund door zelf-hostende IR
Azure Azure Blob Storage
  Azure AI Search-index
  Azure Cosmos DB voor NoSQL
  Azure Cosmos DB voor MongoDB
  Azure Data Explorer
  Azure Data Lake Storage Gen1
  Azure Data Lake Storage Gen2
  Azure Database for MariaDB
  Azure Database for MySQL
  Azure Database for PostgreSQL
  Azure Databricks Delta Lake
  Azure Files
  Azure SQL-database
  Azure SQL Managed Instance
  Azure Synapse Analytics
  Azure Table storage
Database Amazon RDS voor Oracle
  Amazon RDS voor SQL Server
  Amazon Redshift
  DB2
  Drill
  Google BigQuery
  Greenplum
  HBase
  Hive
  Apache Impala
  Informix
  MariaDB
  Microsoft Access
  MySQL
  Netezza
  Oracle
  Phoenix
  PostgreSQL
  Presto
  SAP Business Warehouse via Open Hub
  SAP Business Warehouse via MDX
  SAP HANA Sink wordt alleen ondersteund met de ODBC-Verbinding maken or en het SAP HANA ODBC-stuurprogramma
  SAP-tabel
  Snowflake
  Spark
  SQL Server
  Sybase
  Teradata
  Vertica
NoSQL Cassandra
  Couchbase (preview)
  MongoDB
  MongoDB Atlas
Bestand Amazon S3
  Amazon S3-compatibele opslag
  Bestandssysteem
  FTP
  Google Cloud Storage
  HDFS
  Oracle Cloud Storage
  SFTP
Algemeen protocol Algemene HTTP
  Algemene OData
  Algemene ODBC
  Algemene REST
Services en apps Amazon Marketplace Web Service
  Concur (preview)
  Dataverse
  Dynamics 365
  Dynamics AX
  Dynamics CRM
  Google AdWords
  HubSpot
  Jira
  Magento (preview)
  Marketo (preview)
  Microsoft 365
  Oracle Eloqua (preview)
  Oracle Responsys (preview)
  Oracle Service Cloud (preview)
  Paypal (preview)
  QuickBooks (preview)
  Salesforce
  Salesforce Service Cloud
  Salesforce Marketing Cloud
  SAP Cloud for Customer (C4C)
  SAP ECC
  ServiceNow
SharePoint Online-lijst
  Shopify (preview)
  Square (preview)
  Webtabel (HTML-tabel)
  Xero
  Zoho (preview)

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.

U kunt de Copy-activiteit gebruiken om bestanden als zodanig te kopiëren tussen twee gegevensarchieven op basis van bestanden. 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, bijvoorbeeld:

  • Kopieer gegevens uit een SQL Server-database en schrijf naar Azure Data Lake Storage Gen2 in Parquet-indeling.
  • Kopieer bestanden in tekstindeling (CSV) vanuit een on-premises bestandssysteem en schrijf naar Azure Blob Storage in Avro-indeling.
  • Kopieer gezipte bestanden van een on-premises bestandssysteem, ontcomprim ze on-the-fly en schrijf geëxtraheerde bestanden naar Azure Data Lake Storage Gen2.
  • Kopieer gegevens in de CSV-indeling (compressed-text) van Azure Blob Storage en schrijf deze naar Azure SQL Database.
  • Nog veel meer activiteiten waarvoor serialisatie/deserialisatie of compressie/decompressie is vereist.

Ondersteunde regio’s

De service waarmee de Copy-activiteit wereldwijd beschikbaar is in de regio's en geografische gebieden die worden vermeld in Azure Integration Runtime-locaties. De wereldwijd beschikbare topologie zorgt voor een efficiënte gegevensverplaatsing die meestal hops tussen regio's vermijdt. Zie Producten per regio om de beschikbaarheid van Data Factory, Synapse-werkruimten en gegevensverplaatsing 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:

Over het algemeen moet u het volgende doen om de Copy-activiteit te gebruiken in Azure Data Factory- of Synapse-pijplijnen:

  1. Maak gekoppelde services voor het brongegevensarchief en het sinkgegevensarchief. U vindt de lijst met ondersteunde connectors in de sectie Ondersteunde gegevensarchieven en indelingen van dit artikel. Raadpleeg de sectie 'Eigenschappen van gekoppelde service' van het connectorartikel voor configuratie-informatie en ondersteunde eigenschappen.
  2. Maak gegevenssets voor de bron en sink. Raadpleeg de secties Gegevensseteigenschappen van de artikelen over de bron- en sinkconnector voor configuratie-informatie en ondersteunde eigenschappen.
  3. Maak een pijplijn met de Copy-activiteit. De volgende sectie bevat een voorbeeld.

Syntaxis

De volgende sjabloon van een Copy-activiteit bevat een volledige lijst met ondersteunde eigenschappen. Geef de waarden op die passen bij uw scenario.

"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

Eigenschappen Beschrijving Vereist?
type Voor een Copy-activiteit ingesteld opCopy Ja
Ingangen Geef de gegevensset op die u hebt gemaakt die verwijst naar de brongegevens. De Copy-activiteit ondersteunt slechts één invoer. Ja
uitvoer Geef de gegevensset op die u hebt gemaakt die verwijst naar de sinkgegevens. De Copy-activiteit ondersteunt slechts één uitvoer. Ja
typeProperties Geef eigenschappen op om de Copy-activiteit te configureren. Ja
source Geef het type kopieerbron en de bijbehorende eigenschappen op voor het ophalen van gegevens.
Zie de sectie 'Copy-activiteit eigenschappen' in het connectorartikel in ondersteunde gegevensarchieven en -indelingen voor meer informatie.
Ja
Wastafel Geef het type kopieersink en de bijbehorende eigenschappen op voor het schrijven van gegevens.
Zie de sectie 'Copy-activiteit eigenschappen' in het connectorartikel in ondersteunde gegevensarchieven en -indelingen voor meer informatie.
Ja
Translator Geef expliciete kolomtoewijzingen op van bron naar sink. Deze eigenschap is van toepassing wanneer het standaard kopieergedrag niet aan uw behoeften voldoet.
Zie Schematoewijzing in kopieeractiviteit voor meer informatie.
Nee
dataIntegrationUnits Geef een meting op die de hoeveelheid energie aangeeft die de Azure Integration Runtime gebruikt voor het kopiëren van gegevens. Deze eenheden werden voorheen DMU (Cloud Data Movement Units) genoemd.
Zie Data-Integratie Eenheden voor meer informatie.
Nee
parallelcopies Geef de parallelle uitvoering 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.
Nee
Behouden Geef op of metagegevens/ACL's moeten worden bewaard tijdens het kopiëren van gegevens.
Zie Metagegevens behouden voor meer informatie.
Nee
enableStaging
fasering Instellingen
Geef op of de tussentijdse gegevens in Blob-opslag moeten worden gefaseerde in plaats van gegevens rechtstreeks van de bron naar de sink te kopiëren.
Zie Gefaseerde kopie voor meer informatie over nuttige scenario's en configuratiedetails.
Nee
enableSkipIncompatibleRow
redirectIncompatibleRow Instellingen
Kies hoe u incompatibele rijen kunt verwerken wanneer u gegevens kopieert van de bron naar de sink.
Zie Fouttolerantie voor meer informatie.
Nee

Controleren

U kunt de Copy-activiteit uitvoeren in de Azure Data Factory- en Synapse-pijplijnen zowel visueel als programmatisch bewaken. Zie Kopieeractiviteit bewaken voor meer informatie.

Incrementele kopie

Met Data Factory- en Synapse-pijplijnen kunt u incrementeel deltagegevens uit een brongegevensarchief kopiëren naar een sinkgegevensarchief. Zie Zelfstudie: Incrementeel gegevens kopiëren voor meer informatie.

Prestaties en afstemmen

In de bewakingservaring voor kopieeractiviteiten ziet u de statistieken van de kopieerprestaties voor elke uitvoering van uw activiteit. In de handleiding Copy-activiteit prestaties en schaalbaarheid worden belangrijke factoren beschreven die van invloed zijn op de prestaties van gegevensverplaatsing via de Copy-activiteit. Ook worden de prestatiewaarden vermeld die tijdens het testen zijn waargenomen en wordt besproken hoe u de prestaties van de Copy-activiteit optimaliseert.

Hervatten vanaf laatste mislukte uitvoering

Copy-activiteit ondersteunt het hervatten van de laatste mislukte uitvoering wanneer u grote grootte van bestanden als zodanig kopieert met binaire indeling tussen op bestanden gebaseerde archieven en ervoor kiest om de map-/bestandshiërarchie van bron naar sink te behouden, bijvoorbeeld om gegevens van Amazon S3 naar Azure Data Lake Storage Gen2 te migreren. Dit is van toepassing op de volgende bestandsconnectors: Amazon S3, Amazon S3 Compatible StorageAzure 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 het hervatten van de kopieeractiviteit op de volgende twee manieren gebruiken:

  • Opnieuw proberen op activiteitsniveau: u kunt het aantal nieuwe pogingen instellen op kopieeractiviteit. Als de uitvoering van deze kopieeractiviteit mislukt tijdens de uitvoering van de pijplijn, wordt de volgende automatische poging gestart vanaf het foutpunt van de laatste proefversie.

  • Opnieuw uitvoeren vanaf mislukte activiteit: nadat de uitvoering van de pijplijn is voltooid, kunt u ook een nieuwe uitvoering 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 wordt ook hervat vanaf het foutpunt van de vorige uitvoering.

    Copy resume

Enkele punten om te noteren:

  • Hervatten vindt plaats op bestandsniveau. Als de kopieeractiviteit mislukt bij het kopiëren van een bestand, wordt dit specifieke bestand in de volgende uitvoering opnieuw gekopieerd.
  • Wijzig de instellingen voor de kopieeractiviteit tussen de nieuwe uitvoeringen niet om het werk goed te laten werken.
  • 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 op bestanden gebaseerde connectors als bron, momenteel kopieeractiviteit cv ondersteunt van een beperkt aantal bestanden, meestal in het bereik van tienduizenden en varieert afhankelijk van de lengte van de bestandspaden; bestanden buiten dit nummer worden opnieuw gekopieerd tijdens opnieuw uitvoeren.

Voor andere scenario's dan het kopiëren van binaire bestanden begint het opnieuw uitvoeren van de kopieeractiviteit vanaf het begin.

Metagegevens samen met gegevens behouden

Tijdens het kopiëren van gegevens van bron naar sink, kunt u in scenario's zoals data lake-migratie ook ervoor kiezen om de metagegevens en ACL's samen met gegevens te behouden met behulp van kopieeractiviteit. Zie Metagegevens behouden voor meer informatie.

Metagegevenstags toevoegen aan een op bestanden gebaseerde sink

Wanneer de sink is gebaseerd op Azure Storage (Azure Data Lake Storage of Azure Blob Storage), kunnen we ervoor kiezen om enkele metagegevens aan de bestanden toe te voegen. Deze metagegevens worden weergegeven als onderdeel van de bestandseigenschappen als sleutel-waardeparen. Voor alle typen sinks op basis van bestanden kunt u metagegevens met dynamische inhoud toevoegen met behulp van de pijplijnparameters, systeemvariabelen, functies en variabelen. Daarnaast kunt u voor een binaire sink op basis van bestanden datum/tijd (van het bronbestand) toevoegen met behulp van het trefwoord $$LASTMODIFIED, evenals aangepaste waarden als metagegevens aan het sinkbestand.

Toewijzing van schema- en gegevenstypen

Zie Schema- en gegevenstypetoewijzing voor informatie over hoe de Copy-activiteit uw brongegevens toe te voegen aan uw sink.

Extra kolommen toevoegen tijdens het kopiëren

Naast het kopiëren van gegevens uit het brongegevensarchief naar sink, kunt u ook configureren dat u extra gegevenskolommen toevoegt om naar sink te kopiëren. Voorbeeld:

  • Wanneer u kopieert van een bron op basis van een bestand, slaat u het relatieve bestandspad op als een extra kolom om te traceren van welk bestand de gegevens afkomstig zijn.
  • Dupliceer de opgegeven bronkolom als een andere kolom.
  • Voeg een kolom met ADF-expressie toe om ADF-systeemvariabelen, zoals pijplijnnaam/pijplijn-id, te koppelen of andere dynamische waarde op te slaan uit de uitvoer van de upstream-activiteit.
  • Voeg een kolom met statische waarde toe om te voldoen aan uw downstreamverbruiksbehoefte.

U vindt de volgende configuratie op het tabblad Bron van kopieeractiviteit. U kunt deze extra kolommen ook toewijzen in de toewijzing van het kopieeractiviteitsschema zoals gebruikelijk met behulp van de gedefinieerde kolomnamen.

Add additional columns in copy activity

Tip

Deze functie werkt met het nieuwste gegevenssetmodel. Als u deze optie niet ziet in de gebruikersinterface, probeert u een nieuwe gegevensset te maken.

Als u deze programmatisch wilt configureren, voegt u de eigenschap toe aan de bron van de additionalColumns kopieeractiviteit:

Eigenschappen Beschrijving Vereist
additionalColumns Voeg extra gegevenskolommen toe om naar sink te kopiëren.

Elk object onder de additionalColumns matrix vertegenwoordigt een extra kolom. De name kolomnaam wordt gedefinieerd en de value gegevenswaarde van die kolom wordt aangegeven.

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. Toepassen op bron op basis van bestanden.
- $$COLUMN:<source_column_name> - Een gereserveerd variabelepatroon geeft aan dat de opgegeven bronkolom moet worden gedupliceerd als een andere kolom
- Expression
- Statische waarde
Nee

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>"
            }
        }
    }
]

Tip

Nadat u extra kolommen hebt geconfigureerd, moet u deze toewijzen aan uw doelsink, op het tabblad Toewijzing.

Automatisch sinktabellen maken

Wanneer u gegevens kopieert naar SQL Database/Azure Synapse Analytics, als de doeltabel niet bestaat, ondersteunt kopieeractiviteit het automatisch maken ervan op basis van de brongegevens. Het is bedoeld om snel aan de slag te gaan met het laden van de gegevens en het evalueren van SQL-database/Azure Synapse Analytics. Na de gegevensopname kunt u het sinktabelschema controleren en aanpassen aan uw behoeften.

Deze functie wordt ondersteund bij het kopiëren van gegevens uit een bron naar de volgende sinkgegevensarchieven. U vindt de optie in de gebruikersinterface van ADF-creatie ->Copy-activiteit sink ->Table-optie ->Automatisch tabel maken of via tableOption de eigenschap in de nettolading van de kopieeractiviteitssink.

Create sink tables

Fouttolerantie

De Copy-activiteit stopt standaard met het kopiëren van gegevens en retourneert een fout wanneer brongegevensrijen niet compatibel zijn met sinkgegevensrijen. Als u het kopiëren wilt voltooien, kunt u de Copy-activiteit configureren om de niet-compatibele rijen over te slaan en te registreren en alleen de compatibele gegevens te kopiëren. Zie Copy-activiteit fouttolerantie voor meer informatie.

Verificatie van gegevensconsistentie

Wanneer u gegevens verplaatst van bron naar doelarchief, biedt kopieeractiviteit een optie om aanvullende verificatie van gegevensconsistentie uit te voeren om ervoor te zorgen dat de gegevens niet alleen van bron naar doelarchief zijn gekopieerd, maar ook gecontroleerd of ze consistent zijn tussen bron- en doelopslag. Zodra inconsistente bestanden zijn gevonden tijdens de gegevensverplaatsing, kunt u de kopieeractiviteit afbreken of doorgaan met het kopiëren van de rest door de instelling voor fouttolerantie in te schakelen om inconsistente bestanden over te slaan. U kunt de overgeslagen bestandsnamen ophalen door de instelling voor sessielogboeken in te schakelen in de kopieeractiviteit. Zie Verificatie van gegevensconsistentie in kopieeractiviteit voor meer informatie.

Sessielogboek

U kunt de gekopieerde bestandsnamen vastleggen, zodat u er zeker van kunt zijn dat de gegevens niet alleen zijn gekopieerd van de bron naar het doelarchief, maar ook consistent zijn tussen de bron- en doelopslag door de logboeken van de kopieeractiviteitssessie te bekijken. Zie Activiteit voor het kopiëren van sessies voor meer informatie.

Zie de volgende quickstarts, zelfstudies en voorbeelden: