Gegevens kopiëren van FTP-server met behulp van Azure Data Factory of 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 dit artikel wordt beschreven hoe u gegevens kopieert van de FTP-server. Lees de inleidende artikelen voor Azure Data Factory en Synapse Analytics voor meer informatie.

Ondersteunde mogelijkheden

Deze FTP-connector wordt ondersteund voor de volgende mogelijkheden:

Ondersteunde mogelijkheden IR
Copy-activiteit (bron/-) ① ②
Activiteit Lookup ① ②
GetMetadata-activiteit ① ②
Activiteit verwijderen ① ②

(1) Azure Integration Runtime (2) Zelf-hostende Integration Runtime

Deze FTP-connector ondersteunt met name:

De FTP-connector ondersteunt FTP-server die wordt uitgevoerd in de passieve modus. De actieve modus wordt niet ondersteund.

Vereisten

Als uw gegevensarchief zich in een on-premises netwerk, een virtueel Azure-netwerk of een virtuele particuliere cloud van Amazon bevindt, moet u een zelf-hostende Integration Runtime configureren om er verbinding mee te maken.

Als uw gegevensarchief een beheerde cloudgegevensservice is, kunt u De Azure Integration Runtime gebruiken. Als de toegang is beperkt tot IP-adressen die zijn goedgekeurd in de firewallregels, kunt u IP-adressen van Azure Integration Runtime toevoegen aan de acceptatielijst.

U kunt ook de beheerde functie voor integratieruntime voor virtuele netwerken in Azure Data Factory gebruiken om toegang te krijgen tot het on-premises netwerk zonder een zelf-hostende Integration Runtime te installeren en te configureren.

Zie Strategieën voor gegevenstoegang voor meer informatie over de netwerkbeveiligingsmechanismen en -opties die door Data Factory worden ondersteund.

Aan de slag

Als u de kopieeractiviteit wilt uitvoeren met een pijplijn, kunt u een van de volgende hulpprogramma's of SDK's gebruiken:

Een gekoppelde service maken op een FTP-server met behulp van de gebruikersinterface

Gebruik de volgende stappen om een gekoppelde service te maken naar een FTP-server in de gebruikersinterface van Azure Portal.

  1. Blader naar het tabblad Beheren in uw Azure Data Factory- of Synapse-werkruimte en selecteer Gekoppelde services en klik vervolgens op Nieuw:

  2. Zoek naar FTP en selecteer de FTP-connector.

    Screenshot of the FTP connector.

  3. Configureer de servicedetails, test de verbinding en maak de nieuwe gekoppelde service.

    Screenshot of linked service configuration for an FTP server.

configuratiedetails Verbinding maken or

De volgende secties bevatten details over eigenschappen die worden gebruikt om entiteiten te definiëren die specifiek zijn voor FTP.

Eigenschappen van gekoppelde service

De volgende eigenschappen worden ondersteund voor de gekoppelde FTP-service:

Eigenschappen Beschrijving Vereist
type De eigenschap type moet worden ingesteld op: FtpServer. Ja
host Geef de naam of het IP-adres van de FTP-server op. Ja
poort Geef de poort op waarop de FTP-server luistert.
Toegestane waarden zijn: geheel getal, standaardwaarde is 21.
Nee
enableSsl Geef op of FTP moet worden gebruikt via een SSL/TLS-kanaal.
Toegestane waarden zijn: true (standaard), false.
Nee
enableServerCertificateValidation Geef op of server-TLS/SSL-certificaatvalidatie moet worden ingeschakeld wanneer u FTP via SSL/TLS-kanaal gebruikt.
Toegestane waarden zijn: true (standaard), false.
Nee
authenticationType Geef het verificatietype op.
Toegestane waarden zijn: Basic, Anonymous
Ja
gebruikersnaam Geef de gebruiker op die toegang heeft tot de FTP-server. Nee
password Geef het wachtwoord op voor de gebruiker (userName). Markeer dit veld als SecureString om het veilig op te slaan of verwijs naar een geheim dat is opgeslagen in Azure Key Vault. Nee
connectVia De Integration Runtime die moet worden gebruikt om verbinding te maken met het gegevensarchief. Meer informatie vindt u in de sectie Vereisten . Als dit niet is opgegeven, wordt de standaard Azure Integration Runtime gebruikt. Nr.

Notitie

De FTP-connector ondersteunt toegang tot FTP-server zonder versleuteling of expliciete SSL/TLS-versleuteling; het biedt geen ondersteuning voor impliciete SSL/TLS-versleuteling.

Voorbeeld 1: anonieme verificatie gebruiken

{
    "name": "FTPLinkedService",
    "properties": {
        "type": "FtpServer",
        "typeProperties": {
            "host": "<ftp server>",
            "port": 21,
            "enableSsl": true,
            "enableServerCertificateValidation": true,
            "authenticationType": "Anonymous"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Voorbeeld 2: basisverificatie gebruiken

{
    "name": "FTPLinkedService",
    "properties": {
        "type": "FtpServer",
        "typeProperties": {
            "host": "<ftp server>",
            "port": 21,
            "enableSsl": true,
            "enableServerCertificateValidation": true,
            "authenticationType": "Basic",
            "userName": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Eigenschappen van gegevensset

Zie het artikel Gegevenssets voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van gegevenssets .

Azure Data Factory ondersteunt de volgende bestandsindelingen. Raadpleeg elk artikel voor op indeling gebaseerde instellingen.

De volgende eigenschappen worden ondersteund voor FTP onder location instellingen in op indeling gebaseerde gegevensset:

Eigenschappen Beschrijving Vereist
type De eigenschap type onder location in de gegevensset moet worden ingesteld op FtpServerLocation. Ja
folderPath Het pad naar de map. Als u jokertekens wilt gebruiken om de map te filteren, slaat u deze instelling over en geeft u deze op in de instellingen van de activiteitsbron. Nee
fileName De bestandsnaam onder het opgegeven folderPath. Als u jokertekens wilt gebruiken om bestanden te filteren, slaat u deze instelling over en geeft u deze op in de instellingen van de activiteitsbron. Nee

Voorbeeld:

{
    "name": "DelimitedTextDataset",
    "properties": {
        "type": "DelimitedText",
        "linkedServiceName": {
            "referenceName": "<FTP linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, auto retrieved during authoring > ],
        "typeProperties": {
            "location": {
                "type": "FtpServerLocation",
                "folderPath": "root/folder/subfolder"
            },
            "columnDelimiter": ",",
            "quoteChar": "\"",
            "firstRowAsHeader": true,
            "compressionCodec": "gzip"
        }
    }
}

Eigenschappen van de kopieeractiviteit

Zie het artikel Pijplijnen voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van activiteiten. Deze sectie bevat een lijst met eigenschappen die worden ondersteund door ftp-bron.

FTP als bron

Azure Data Factory ondersteunt de volgende bestandsindelingen. Raadpleeg elk artikel voor op indeling gebaseerde instellingen.

De volgende eigenschappen worden ondersteund voor FTP onder storeSettings instellingen in de op indeling gebaseerde kopieerbron:

Eigenschappen Beschrijving Vereist
type De eigenschap type onder storeSettings moet worden ingesteld op FtpRead Instellingen. Ja
Zoek de bestanden die u wilt kopiëren:
OPTIE 1: statisch pad
Kopieer vanuit het opgegeven map-/bestandspad dat is opgegeven in de gegevensset. Als u alle bestanden uit een map wilt kopiëren, moet u ook opgeven wildcardFileName als *.
OPTIE 2: jokerteken
- jokertekenFolderPath
Het pad naar de map met jokertekens om bronmappen te filteren.
Toegestane jokertekens zijn: * (komt overeen met nul of meer tekens) en ? (komt overeen met nul of één teken); gebruik ^ deze optie om te ontsnappen als de naam van de map een jokerteken heeft of dit escape-teken bevat.
Bekijk meer voorbeelden in voorbeelden van mappen en bestandsfilters.
Nee
OPTIE 2: jokerteken
- wildcardFileName
De bestandsnaam met jokertekens onder het opgegeven folderPath/wildcardFolderPath om bronbestanden te filteren.
Toegestane jokertekens zijn: * (komt overeen met nul of meer tekens) en ? (komt overeen met nul of één teken); gebruik ^ deze optie om te ontsnappen als uw werkelijke bestandsnaam jokertekens of dit escapeteken bevat. Bekijk meer voorbeelden in voorbeelden van mappen en bestandsfilters.
Ja
OPTIE 3: een lijst met bestanden
- fileListPath
Geeft aan om een bepaalde bestandsset te kopiëren. Wijs een tekstbestand aan met een lijst met bestanden die u wilt kopiëren, één bestand per regel. Dit is het relatieve pad naar het pad dat is geconfigureerd in de gegevensset.
Wanneer u deze optie gebruikt, geeft u geen bestandsnaam op in de gegevensset. Bekijk meer voorbeelden in voorbeelden van de lijst met bestanden.
Nee
Aanvullende instellingen:
Recursieve Hiermee wordt aangegeven of de gegevens recursief worden gelezen uit de submappen of alleen uit de opgegeven map. Houd er rekening mee dat wanneer recursief is ingesteld op true en de sink een archief op basis van bestanden is, een lege map of submap niet wordt gekopieerd of gemaakt in de sink.
Toegestane waarden zijn waar (standaard) en onwaar.
Deze eigenschap is niet van toepassing wanneer u configureert fileListPath.
Nee
deleteFilesAfterCompletion Geeft aan of de binaire bestanden worden verwijderd uit het bronarchief nadat ze naar het doelarchief zijn verplaatst. Het verwijderen van bestanden is per bestand, dus wanneer de kopieeractiviteit mislukt, ziet u dat sommige bestanden al naar het doel zijn gekopieerd en uit de bron zijn verwijderd, terwijl anderen nog steeds in het bronarchief blijven.
Deze eigenschap is alleen geldig in het scenario voor het kopiëren van binaire bestanden. De standaardwaarde: false.
Nee
useBinaryTransfer Geef op of u de binaire overdrachtsmodus wilt gebruiken. De waarden zijn waar voor de binaire modus (standaard) en onwaar voor ASCII. Nee
enablePartitionDiscovery Geef voor bestanden die zijn gepartitioneerd op of de partities van het bestandspad moeten worden geparseerd en als extra bronkolommen moeten worden toegevoegd.
Toegestane waarden zijn onwaar (standaard) en waar.
Nee
partitionRootPath Wanneer partitiedetectie is ingeschakeld, geeft u het absolute hoofdpad op om gepartitioneerde mappen als gegevenskolommen te lezen.

Als deze niet is opgegeven, is dit standaard het volgende:
- Wanneer u bestandspad gebruikt in de gegevensset of lijst met bestanden op de bron, is het pad naar de partitiehoofdmap dat is geconfigureerd in de gegevensset.
- Wanneer u het filter voor jokertekens gebruikt, is partitiehoofdpad het subpad vóór het eerste jokerteken.

Stel dat u het pad in de gegevensset configureert als 'root/folder/year=2020/month=08/day=27':
- Als u partitiehoofdpad opgeeft als root/folder/year=2020, genereert de kopieeractiviteit twee kolommen month en day met de waarde '08' en '27', naast de kolommen in de bestanden.
- Als het hoofdpad van de partitie niet is opgegeven, wordt er geen extra kolom gegenereerd.
Nee
maxConcurrent Verbinding maken ions De bovengrens van gelijktijdige verbindingen die tijdens de uitvoering van de activiteit tot stand zijn gebracht met het gegevensarchief. Geef alleen een waarde op wanneer u gelijktijdige verbindingen wilt beperken. Nee
disableChunking Bij het kopiëren van gegevens van FTP probeert de service eerst de bestandsgrootte op te halen, vervolgens het bestand te verdelen in meerdere onderdelen en deze parallel te lezen. Geef op of de FTP-server ondersteuning biedt voor het ophalen van de bestandsgrootte of het lezen van een bepaalde offset.
Toegestane waarden zijn onwaar (standaard), waar.
Nee

Voorbeeld:

"activities":[
    {
        "name": "CopyFromFTP",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Delimited text input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "DelimitedTextSource",
                "formatSettings":{
                    "type": "DelimitedTextReadSettings",
                    "skipLineCount": 10
                },
                "storeSettings":{
                    "type": "FtpReadSettings",
                    "recursive": true,
                    "wildcardFolderPath": "myfolder*A",
                    "wildcardFileName": "*.csv",
                    "disableChunking": false
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Voorbeelden van map- en bestandsfilters

In deze sectie wordt het resulterende gedrag van het mappad en de bestandsnaam met jokertekenfilters beschreven.

folderPath fileName Recursieve Structuur van bronmap en filterresultaat (bestanden vetgedrukt worden opgehaald)
Folder* (leeg, standaard gebruiken) false MapA
    Bestand1.csv
    Bestand2.json
    Submap1
        Bestand3.csv
        File4.json
        File5.csv
AnotherFolderB
    File6.csv
Folder* (leeg, standaard gebruiken) true MapA
    Bestand1.csv
    Bestand2.json
    Submap1
        Bestand3.csv
        File4.json
        File5.csv
AnotherFolderB
    File6.csv
Folder* *.csv false MapA
    Bestand1.csv
    Bestand2.json
    Submap1
        Bestand3.csv
        File4.json
        File5.csv
AnotherFolderB
    File6.csv
Folder* *.csv true MapA
    Bestand1.csv
    Bestand2.json
    Submap1
        Bestand3.csv
        File4.json
        File5.csv
AnotherFolderB
    File6.csv

Voorbeelden van bestandslijsten

In deze sectie wordt het resulterende gedrag beschreven van het gebruik van bestandslijstpad in bron van kopieeractiviteit.

Ervan uitgaande dat u de volgende bronmapstructuur hebt en de bestanden vetgedrukt wilt kopiëren:

Voorbeeldbronstructuur Inhoud in FileListToCopy.txt Configuratie
Root
    MapA
        Bestand1.csv
        Bestand2.json
        Submap1
            Bestand3.csv
            File4.json
            File5.csv
    Metagegevens
        FileListToCopy.txt
Bestand1.csv
Submap1/File3.csv
Submap1/File5.csv
In gegevensset:
- Mappad: root/FolderA

In bron van kopieeractiviteit:
- Pad naar bestandslijst: root/Metadata/FileListToCopy.txt

Het bestandslijstpad verwijst naar een tekstbestand in hetzelfde gegevensarchief met een lijst met bestanden die u wilt kopiëren, één bestand per regel met het relatieve pad naar het pad dat is geconfigureerd in de gegevensset.

Eigenschappen van opzoekactiviteit

Als u meer wilt weten over de eigenschappen, controleert u de lookup-activiteit.

Eigenschappen van GetMetadata-activiteit

Als u meer wilt weten over de eigenschappen, controleert u de Activiteit GetMetadata

Activiteitseigenschappen verwijderen

Als u meer wilt weten over de eigenschappen, controleert u De activiteit Verwijderen

Verouderde modellen

Notitie

De volgende modellen worden nog steeds ondersteund voor compatibiliteit met eerdere versies. U wordt aangeraden het nieuwe model te gebruiken dat in de bovenstaande secties wordt genoemd en de ontwerpgebruikersinterface is overgeschakeld naar het genereren van het nieuwe model.

Verouderd gegevenssetmodel

Eigenschappen Beschrijving Vereist
type De typeeigenschap van de gegevensset moet worden ingesteld op: FileShare Ja
folderPath Pad naar de map. Jokertekenfilters worden ondersteund, toegestane jokertekens zijn: * (komt overeen met nul of meer tekens) en ? (komt overeen met nul of één teken); gebruik ^ dit om te escapen als uw werkelijke mapnaam jokertekens of dit escapeteken bevat.

Voorbeelden: rootfolder/submap/, zie meer voorbeelden in voorbeelden van map- en bestandsfilters.
Ja
fileName Naam of jokertekenfilter voor de bestanden onder het opgegeven folderPath. Als u geen waarde voor deze eigenschap opgeeft, verwijst de gegevensset naar alle bestanden in de map.

Voor filter zijn toegestane jokertekens: * (komt overeen met nul of meer tekens) en ? (komt overeen met nul of één teken).
- Voorbeeld 1: "fileName": "*.csv"
- Voorbeeld 2: "fileName": "???20180427.txt"
Gebruik ^ deze optie om te ontsnappen als uw werkelijke bestandsnaam een jokerteken of dit escapeteken bevat.
Nee
indeling Als u bestanden wilt kopiëren tussen bestandsarchieven (binaire kopie), slaat u de indelingssectie over in definities van invoer- en uitvoergegevenssets.

Als u bestanden met een specifieke indeling wilt parseren, worden de volgende bestandstypen ondersteund: TextFormat, JsonFormat, AvroFormat, OrcFormat, ParquetFormat. Stel de typeeigenschap onder opmaak in op een van deze waarden. Zie de secties Text Format, Json Format, Avro Format, Orc Format en Parquet Format voor meer informatie.
Nee (alleen voor binair kopieerscenario)
compressie Geef het type en het compressieniveau voor de gegevens op. Zie Ondersteunde bestandsindelingen en compressiecodecs voor meer informatie.
Ondersteunde typen zijn: GZip, Deflate, BZip2 en ZipDeflate.
Ondersteunde niveaus zijn: Optimaal en Snelst.
Nee
useBinaryTransfer Geef op of u de binaire overdrachtsmodus wilt gebruiken. De waarden zijn waar voor de binaire modus (standaard) en onwaar voor ASCII. Nee

Tip

Als u alle bestanden onder een map wilt kopiëren, geeft u alleen folderPath op.
Als u één bestand met een bepaalde naam wilt kopiëren, geeft u folderPath op met maponderdeel en fileName met bestandsnaam.
Als u een subset van bestanden onder een map wilt kopiëren, geeft u folderPath op met maponderdeel en fileName met jokertekenfilter.

Notitie

Als u de eigenschap 'fileFilter' voor het bestandsfilter gebruikte, wordt deze nog steeds ondersteund terwijl u wordt aangeraden de nieuwe filterfunctie te gebruiken die in de toekomst wordt toegevoegd aan FileName.

Voorbeeld:

{
    "name": "FTPDataset",
    "properties": {
        "type": "FileShare",
        "linkedServiceName":{
            "referenceName": "<FTP linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "folderPath": "folder/subfolder/",
            "fileName": "myfile.csv.gz",
            "format": {
                "type": "TextFormat",
                "columnDelimiter": ",",
                "rowDelimiter": "\n"
            },
            "compression": {
                "type": "GZip",
                "level": "Optimal"
            }
        }
    }
}

Bronmodel van verouderde kopieeractiviteit

Eigenschappen Beschrijving Vereist
type De typeeigenschap van de bron van de kopieeractiviteit moet worden ingesteld op: FileSystemSource Ja
Recursieve Geeft aan of de gegevens recursief worden gelezen uit de submappen of alleen uit de opgegeven map. Houd er rekening mee dat wanneer recursief is ingesteld op true en sink een archief op basis van bestanden is, wordt lege map/submap niet gekopieerd/gemaakt bij sink.
Toegestane waarden zijn: true (standaard), false
Nee
maxConcurrent Verbinding maken ions De bovengrens van gelijktijdige verbindingen die tijdens de uitvoering van de activiteit tot stand zijn gebracht met het gegevensarchief. Geef alleen een waarde op wanneer u gelijktijdige verbindingen wilt beperken. Nee

Voorbeeld:

"activities":[
    {
        "name": "CopyFromFTP",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<FTP input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "FileSystemSource",
                "recursive": true
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Zie ondersteunde gegevensarchieven voor een lijst met gegevensarchieven die worden ondersteund als bronnen en sinks door de kopieeractiviteit.