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/-) | (1) (2) |
Activiteit Lookup | (1) (2) |
GetMetadata-activiteit | (1) (2) |
Activiteit verwijderen | (1) (2) |
(1) Azure Integration Runtime (2) Zelf-hostende Integration Runtime
Deze FTP-connector ondersteunt met name:
- Bestanden kopiëren met basis- of anonieme verificatie.
- Bestanden als zodanig kopiëren of parseren met de ondersteunde bestandsindelingen en compressiecodecs.
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:
- 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
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.
Blader naar het tabblad Beheren in uw Azure Data Factory- of Synapse-werkruimte en selecteer Gekoppelde services en klik vervolgens op Nieuw:
Zoek naar FTP en selecteer de FTP-connector.
Configureer de servicedetails, test de verbinding en maak de nieuwe gekoppelde service.
Configuratiedetails van connector
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.
- Avro-indeling
- Binaire indeling
- Tekstindeling met scheidingstekens
- Excel-indeling
- JSON-indeling
- ORC-indeling
- Parquet-indeling
- XML-indeling
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.
- Avro-indeling
- Binaire indeling
- Tekstindeling met scheidingstekens
- Excel-indeling
- JSON-indeling
- ORC-indeling
- Parquet-indeling
- XML-indeling
De volgende eigenschappen worden ondersteund voor FTP onder storeSettings
instellingen in de op indeling gebaseerde kopieerbron:
Eigenschappen | Beschrijving | Vereist |
---|---|---|
type | De typeeigenschap onder storeSettings moet worden ingesteld op FtpReadSettings. |
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: | ||
recursief | 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 |
maxConcurrentConnections | 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 | recursief | Structuur van bronmap en filterresultaat (bestanden vetgedrukt worden opgehaald) |
---|---|---|---|
Folder* |
(leeg, standaard gebruiken) | false | MapA File1.csv File2.json Submap1 File3.csv File4.json File5.csv AnotherFolderB File6.csv |
Folder* |
(leeg, standaard gebruiken) | true | MapA File1.csv File2.json Submap1 File3.csv File4.json File5.csv AnotherFolderB File6.csv |
Folder* |
*.csv |
false | MapA File1.csv File2.json Submap1 File3.csv File4.json File5.csv AnotherFolderB File6.csv |
Folder* |
*.csv |
true | MapA File1.csv File2.json Submap1 File3.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 |
---|---|---|
wortel MapA File1.csv File2.json Submap1 File3.csv File4.json File5.csv Metagegevens FileListToCopy.txt |
File1.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 |
recursief | 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 |
maxConcurrentConnections | 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>"
}
}
}
]
Gerelateerde inhoud
Zie ondersteunde gegevensarchieven voor een lijst met gegevensarchieven die worden ondersteund als bronnen en sinks door de kopieeractiviteit.