Kopiera data från FTP-servern med Hjälp av Azure Data Factory eller Synapse Analytics
GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics
Dricks
Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!
Den här artikeln beskriver hur du kopierar data från FTP-servern. Mer information finns i introduktionsartiklarna för Azure Data Factory och Synapse Analytics.
Funktioner som stöds
Den här FTP-anslutningsappen stöds för följande funktioner:
Funktioner som stöds | IR |
---|---|
Kopieringsaktivitet (källa/-) | (1) (2) |
Sökningsaktivitet | (1) (2) |
GetMetadata-aktivitet | (1) (2) |
Ta bort aktivitet | (1) (2) |
(1) Azure Integration Runtime (2) Lokalt installerad integrationskörning
Mer specifikt stöder den här FTP-anslutningsappen:
- Kopiera filer med grundläggande eller anonym autentisering.
- Kopiera filer som de är eller parsa filer med filformat som stöds och komprimeringskodex.
FTP-anslutningsappen stöder FTP-server som körs i passivt läge. Aktivt läge stöds inte.
Förutsättningar
Om ditt datalager finns i ett lokalt nätverk, ett virtuellt Azure-nätverk eller Amazon Virtual Private Cloud måste du konfigurera en lokalt installerad integrationskörning för att ansluta till det.
Om ditt datalager är en hanterad molndatatjänst kan du använda Azure Integration Runtime. Om åtkomsten är begränsad till IP-adresser som är godkända i brandväggsreglerna kan du lägga till Azure Integration Runtime-IP-adresser i listan över tillåtna.
Du kan också använda funktionen för integrering av hanterade virtuella nätverk i Azure Data Factory för att få åtkomst till det lokala nätverket utan att installera och konfigurera en lokalt installerad integrationskörning.
Mer information om de nätverkssäkerhetsmekanismer och alternativ som stöds av Data Factory finns i Strategier för dataåtkomst.
Kom igång
Om du vill utföra kopieringsaktiviteten med en pipeline kan du använda något av följande verktyg eller SDK:er:
- Verktyget Kopiera data
- Azure-portalen
- The .NET SDK
- The Python SDK
- Azure PowerShell
- REST-API:et
- Azure Resource Manager-mallen
Skapa en länkad tjänst till en FTP-server med hjälp av användargränssnittet
Använd följande steg för att skapa en länkad tjänst till en FTP-server i Azure-portalens användargränssnitt.
Bläddra till fliken Hantera i Din Azure Data Factory- eller Synapse-arbetsyta och välj Länkade tjänster och klicka sedan på Ny:
Sök efter FTP och välj FTP-anslutningsappen.
Konfigurera tjänstinformationen, testa anslutningen och skapa den nya länkade tjänsten.
Konfigurationsinformation för anslutningsprogram
Följande avsnitt innehåller information om egenskaper som används för att definiera entiteter som är specifika för FTP.
Länkade tjänstegenskaper
Följande egenskaper stöds för FTP-länkad tjänst:
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Typegenskapen måste anges till: FtpServer. | Ja |
värd | Ange ftp-serverns namn eller IP-adress. | Ja |
port | Ange den port som FTP-servern lyssnar på. Tillåtna värden är: heltal, standardvärdet är 21. |
Nej |
enableSsl | Ange om FTP ska användas via en SSL/TLS-kanal. Tillåtna värden är: true (standard), false. |
Nej |
enableServerCertificateValidation | Ange om du vill aktivera TLS/SSL-certifikatverifiering för servern när du använder FTP via SSL/TLS-kanalen. Tillåtna värden är: true (standard), false. |
Nej |
authenticationType | Ange autentiseringstyp. Tillåtna värden är: Grundläggande, Anonym |
Ja |
userName | Ange den användare som har åtkomst till FTP-servern. | Nej |
password | Ange lösenordet för användaren (userName). Markera det här fältet som en SecureString för att lagra det på ett säkert sätt eller referera till en hemlighet som lagras i Azure Key Vault. | Nej |
connectVia | Integration Runtime som ska användas för att ansluta till datalagret. Läs mer i avsnittet Förutsättningar . Om den inte anges använder den standardkörningen för Azure-integrering. | Nej |
Kommentar
FTP-anslutningsappen stöder åtkomst till FTP-servern utan kryptering eller explicit SSL/TLS-kryptering. den stöder inte implicit SSL/TLS-kryptering.
Exempel 1: Använda anonym autentisering
{
"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"
}
}
}
Exempel 2: Använda grundläggande autentisering
{
"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"
}
}
}
Egenskaper för datauppsättning
En fullständig lista över avsnitt och egenskaper som är tillgängliga för att definiera datauppsättningar finns i artikeln Datauppsättningar .
Azure Data Factory stöder följande filformat. Se varje artikel för formatbaserade inställningar.
- Avro-format
- Binärt format
- Avgränsat textformat
- Excel-format
- JSON-format
- ORC-format
- Parquet-format
- XML-format
Följande egenskaper stöds för FTP under location
inställningar i formatbaserad datauppsättning:
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Typegenskapen under location i datauppsättningen måste anges till FtpServerLocation. |
Ja |
folderPath | Sökvägen till mappen. Om du vill använda jokertecken för att filtrera mappen hoppar du över den här inställningen och anger i inställningarna för aktivitetskällan. | Nej |
fileName | Filnamnet under den angivna folderPath. Om du vill använda jokertecken för att filtrera filer hoppar du över den här inställningen och anger i inställningarna för aktivitetskällan. | Nej |
Exempel:
{
"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"
}
}
}
Kopiera egenskaper för aktivitet
En fullständig lista över avsnitt och egenskaper som är tillgängliga för att definiera aktiviteter finns i artikeln Pipelines . Det här avsnittet innehåller en lista över egenskaper som stöds av FTP-källan.
FTP som källa
Azure Data Factory stöder följande filformat. Se varje artikel för formatbaserade inställningar.
- Avro-format
- Binärt format
- Avgränsat textformat
- Excel-format
- JSON-format
- ORC-format
- Parquet-format
- XML-format
Följande egenskaper stöds för FTP under storeSettings
inställningar i formatbaserad kopieringskälla:
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Typegenskapen under storeSettings måste vara inställd på FtpReadSettings. |
Ja |
Leta upp filerna som ska kopieras: | ||
ALTERNATIV 1: statisk sökväg |
Kopiera från den angivna mapp-/filsökvägen som anges i datauppsättningen. Om du vill kopiera alla filer från en mapp anger du wildcardFileName dessutom som * . |
|
ALTERNATIV 2: jokertecken - jokerteckenFolderPath |
Mappsökvägen med jokertecken för att filtrera källmappar. Tillåtna jokertecken är: * (matchar noll eller fler tecken) och ? (matchar noll eller ett enda tecken); använd ^ för att fly om ditt faktiska mappnamn har jokertecken eller detta escape-tecken inuti. Se fler exempel i exempel på mapp- och filfilter. |
Nej |
ALTERNATIV 2: jokertecken - jokerteckenFileName |
Filnamnet med jokertecken under den angivna mappenPath/wildcardFolderPath för att filtrera källfiler. Tillåtna jokertecken är: * (matchar noll eller fler tecken) och ? (matchar noll eller enstaka tecken); använd ^ för att fly om ditt faktiska filnamn har jokertecken eller detta escape-tecken inuti. Se fler exempel i exempel på mapp- och filfilter. |
Ja |
ALTERNATIV 3: en lista över filer – fileListPath |
Anger att en angiven filuppsättning ska kopieras. Peka på en textfil som innehåller en lista över filer som du vill kopiera, en fil per rad, vilket är den relativa sökvägen till sökvägen som konfigurerats i datauppsättningen. När du använder det här alternativet ska du inte ange filnamn i datauppsättningen. Se fler exempel i fillisteexempel. |
Nej |
Ytterligare inställningar: | ||
rekursiv | Anger om data läse rekursivt från undermapparna eller endast från den angivna mappen. Observera att när rekursivt är inställt på sant och mottagaren är ett filbaserat arkiv kopieras eller skapas inte en tom mapp eller undermapp i mottagaren. Tillåtna värden är sanna (standard) och falska. Den här egenskapen gäller inte när du konfigurerar fileListPath . |
Nej |
deleteFilesAfterCompletion | Anger om de binära filerna kommer att tas bort från källarkivet när de har flyttats till målarkivet. Filborttagningen är per fil, så när kopieringsaktiviteten misslyckas ser du att vissa filer redan har kopierats till målet och tagits bort från källan, medan andra fortfarande finns kvar i källarkivet. Den här egenskapen är endast giltig i scenariot med kopiering av binära filer. Standardvärdet: false. |
Nej |
useBinaryTransfer | Ange om binärt överföringsläge ska användas. Värdena är sanna för binärt läge (standard) och false för ASCII. | Nej |
enablePartitionDiscovery | För filer som är partitionerade anger du om partitionerna ska parsas från filsökvägen och lägga till dem som ytterligare källkolumner. Tillåtna värden är false (standard) och true. |
Nej |
partitionRootPath | När partitionsidentifiering är aktiverat anger du den absoluta rotsökvägen för att läsa partitionerade mappar som datakolumner. Om det inte anges, som standard, – När du använder filsökvägen i datauppsättningen eller listan över filer på källan är partitionsrotsökvägen den sökväg som konfigurerats i datauppsättningen. – När du använder mappfilter för jokertecken är partitionsrotsökvägen undersökvägen före det första jokertecknet. Anta till exempel att du konfigurerar sökvägen i datauppsättningen som "root/folder/year=2020/month=08/day=27": – Om du anger partitionsrotsökväg som "root/folder/year=2020" genererar kopieringsaktiviteten ytterligare två kolumner month och day med värdet "08" respektive "27", utöver kolumnerna i filerna.– Om partitionsrotsökvägen inte har angetts genereras ingen extra kolumn. |
Nej |
maxConcurrentConnections | Den övre gränsen för samtidiga anslutningar som upprättats till datalagret under aktivitetskörningen. Ange endast ett värde när du vill begränsa samtidiga anslutningar. | Nej |
disableChunking | När du kopierar data från FTP försöker tjänsten hämta fillängden först och sedan dela upp filen i flera delar och läsa dem parallellt. Ange om FTP-servern har stöd för att hämta fillängd eller försöka läsa från en viss förskjutning. Tillåtna värden är false (standard), true. |
Nej |
Exempel:
"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>"
}
}
}
]
Exempel på mapp- och filfilter
I det här avsnittet beskrivs det resulterande beteendet för mappsökvägen och filnamnet med jokerteckenfilter.
folderPath | fileName | rekursiv | Källmappens struktur och filterresultat (filer i fetstil hämtas) |
---|---|---|---|
Folder* |
(tom, använd standard) | falskt | MappA File1.csv File2.json Undermapp1 File3.csv File4.json File5.csv AnotherFolderB File6.csv |
Folder* |
(tom, använd standard) | true | MappA File1.csv File2.json Undermapp1 File3.csv File4.json File5.csv AnotherFolderB File6.csv |
Folder* |
*.csv |
falskt | MappA File1.csv File2.json Undermapp1 File3.csv File4.json File5.csv AnotherFolderB File6.csv |
Folder* |
*.csv |
true | MappA File1.csv File2.json Undermapp1 File3.csv File4.json File5.csv AnotherFolderB File6.csv |
Exempel på fillista
I det här avsnittet beskrivs det resulterande beteendet för att använda sökvägen till fillistan i kopieringsaktivitetskällan.
Förutsatt att du har följande källmappstruktur och vill kopiera filerna i fetstil:
Exempel på källstruktur | Innehåll i FileListToCopy.txt | Konfiguration |
---|---|---|
rot MappA File1.csv File2.json Undermapp1 File3.csv File4.json File5.csv Metadata FileListToCopy.txt |
File1.csv Undermapp1/File3.csv Undermapp1/File5.csv |
I datauppsättning: – Mappsökväg: root/FolderA I kopieringsaktivitetskällan: – Sökväg till fillista: root/Metadata/FileListToCopy.txt Sökvägen till fillistan pekar på en textfil i samma datalager som innehåller en lista över filer som du vill kopiera, en fil per rad med den relativa sökvägen till sökvägen som konfigurerats i datauppsättningen. |
Egenskaper för uppslagsaktivitet
Mer information om egenskaperna finns i Sökningsaktivitet.
Egenskaper för GetMetadata-aktivitet
Mer information om egenskaperna finns i GetMetadata-aktivitet
Ta bort aktivitetsegenskaper
Information om egenskaperna finns i Ta bort aktivitet
Äldre modeller
Kommentar
Följande modeller stöds fortfarande som de är för bakåtkompatibilitet. Du rekommenderas att använda den nya modellen som nämns i ovanstående avsnitt framöver, och redigeringsgränssnittet har växlat till att generera den nya modellen.
Äldre datauppsättningsmodell
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Typegenskapen för datauppsättningen måste anges till: FileShare | Ja |
folderPath | Sökväg till mappen. Jokerteckenfilter stöds, tillåtna jokertecken är: * (matchar noll eller fler tecken) och ? (matchar noll eller enstaka tecken); använd ^ för att fly om ditt faktiska mappnamn har jokertecken eller detta escape-tecken inuti. Exempel: rootfolder/subfolder/, se fler exempel i mapp- och filfilterexempel. |
Ja |
fileName | Namn- eller jokerteckenfilter för filen eller filerna under den angivna "folderPath". Om du inte anger något värde för den här egenskapen pekar datauppsättningen på alla filer i mappen. För filter är tillåtna jokertecken: * (matchar noll eller fler tecken) och ? (matchar noll eller enskilt tecken).- Exempel 1: "fileName": "*.csv" - Exempel 2: "fileName": "???20180427.txt" Använd ^ för att komma undan om det faktiska filnamnet har jokertecken eller det här escape-teckenet inuti. |
Nej |
format | Om du vill kopiera filer som de är mellan filbaserade lager (binär kopia) hoppar du över formatavsnittet i både indata- och utdatauppsättningsdefinitioner. Om du vill parsa filer med ett visst format stöds följande filformattyper: TextFormat, JsonFormat, AvroFormat, OrcFormat, ParquetFormat. Ange typegenskapen under format till ett av dessa värden. Mer information finns i avsnitten Textformat, Json-format, Avro-format, Orc-format och Parquet-format . |
Nej (endast för scenario med binär kopiering) |
komprimering | Ange typ och komprimeringsnivå för data. Mer information finns i Filformat som stöds och komprimeringskodex. Typer som stöds är: GZip, Deflate, BZip2 och ZipDeflate. Nivåerna som stöds är: Optimala och snabbaste. |
Nej |
useBinaryTransfer | Ange om binärt överföringsläge ska användas. Värdena är sanna för binärt läge (standard) och false för ASCII. | Nej |
Dricks
Om du vill kopiera alla filer under en mapp anger du endast folderPath .
Om du vill kopiera en enskild fil med ett angivet namn anger du folderPath med mappdel och fileName med filnamn.
Om du vill kopiera en delmängd av filer under en mapp anger du folderPath med mappdel och fileName med jokerteckenfilter.
Kommentar
Om du använder egenskapen "fileFilter" för filfilter stöds den fortfarande som den är, medan du rekommenderas att använda den nya filterfunktionen som läggs till i "fileName" framöver.
Exempel:
{
"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"
}
}
}
}
Källmodell för äldre kopieringsaktivitet
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Typegenskapen för kopieringsaktivitetskällan måste anges till: FileSystemSource | Ja |
rekursiv | Anger om data läse rekursivt från undermapparna eller endast från den angivna mappen. Observera att när rekursivt är inställt på sant och mottagaren är filbaserad, kopieras/skapas inte tom mapp/undermapp vid mottagare. Tillåtna värden är: true (standard), false |
Nej |
maxConcurrentConnections | Den övre gränsen för samtidiga anslutningar som upprättats till datalagret under aktivitetskörningen. Ange endast ett värde när du vill begränsa samtidiga anslutningar. | Nej |
Exempel:
"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>"
}
}
}
]
Relaterat innehåll
En lista över datalager som stöds som källor och mottagare av kopieringsaktiviteten finns i datalager som stöds.