Kopiera och transformera data i SFTP-servern med Azure Data Factory eller Azure Synapse Analytics

GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics

Den här artikeln beskriver hur du använder Kopieringsaktivitet för att kopiera data från och till den säkra FTP-servern (SFTP) och använder Dataflöde för att transformera data i SFTP-servern. Mer information finns i den inledande artikeln för Azure Data Factory eller Azure Synapse Analytics.

Funktioner som stöds

SFTP-anslutningsappen stöds för följande aktiviteter:

Mer specifikt stöder SFTP-anslutningsappen:

  • Kopiera filer från och till SFTP-servern med hjälp av grundläggande, offentlig SSH-nyckel eller multifaktorautentisering .
  • Kopiera filer som de är eller genom att parsa eller generera filer med de filformat och komprimeringskodiccs som stöds.

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 den.

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 aktiviteten Kopiera med en pipeline kan du använda något av följande verktyg eller SDK:er:

Skapa en länkad SFTP-tjänst med hjälp av användargränssnittet

Använd följande steg för att skapa en länkad SFTP-tjänst i användargränssnittet för Azure Portal.

  1. Bläddra till fliken Hantera i din Azure Data Factory- eller Synapse-arbetsyta och välj Länkade tjänster och klicka sedan på Nytt:

  2. Sök efter SFTP och välj SFTP-anslutningsappen.

    Screenshot of the SFTP connector.

  3. Konfigurera tjänstinformationen, testa anslutningen och skapa den nya länkade tjänsten.

    Screenshot of configuration for an SFTP linked service.

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 SFTP.

Länkade tjänstegenskaper

Följande egenskaper stöds för den länkade SFTP-tjänsten:

Egenskap Beskrivning Krävs
typ Typegenskapen måste anges till Sftp. Ja
värd SFTP-serverns namn eller IP-adress. Ja
port Porten där SFTP-servern lyssnar.
Det tillåtna värdet är ett heltal och standardvärdet är 22.
Inga
skipHostKeyValidation Ange om värdnyckelvalidering ska hoppa över.
Tillåtna värden är sanna och falska (standard).
Inga
hostKeyFingerprint Ange fingeravtrycket för värdnyckeln. Ja, om "skipHostKeyValidation" är inställt på false.
authenticationType Ange autentiseringstyp.
Tillåtna värden är Basic, SshPublicKey och MultiFactor. Fler egenskaper finns i avsnittet Använd grundläggande autentisering . JSON-exempel finns i avsnittet Använda offentlig SSH-nyckelautentisering .
Ja
connectVia Den integrationskörning som ska användas för att ansluta till datalagret. Mer information finns i avsnittet Förutsättningar . Om integreringskörningen inte har angetts använder tjänsten standard-Azure Integration Runtime. Inga

Använda grundläggande autentisering

Om du vill använda grundläggande autentisering anger du egenskapen authenticationType till Basic och anger följande egenskaper utöver de allmänna egenskaperna för SFTP-anslutningsappen som introducerades i föregående avsnitt:

Egenskap Beskrivning Krävs
userName Den användare som har åtkomst till SFTP-servern. Ja
password 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 ett Azure-nyckelvalv. Ja

Exempel:

{
    "name": "SftpLinkedService",
    "properties": {
        "type": "Sftp",
        "typeProperties": {
            "host": "<sftp server>",
            "port": 22,
            "skipHostKeyValidation": false,
            "hostKeyFingerPrint": "ssh-rsa 2048 xx:00:00:00:xx:00:x0:0x:0x:0x:0x:00:00:x0:x0:00",
            "authenticationType": "Basic",
            "userName": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of integration runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Använda offentlig SSH-nyckelautentisering

Om du vill använda offentlig SSH-nyckelautentisering anger du egenskapen "authenticationType" som SshPublicKey och anger följande egenskaper förutom de allmänna SFTP-anslutningsappar som introducerades i det senaste avsnittet:

Egenskap Beskrivning Krävs
userName Den användare som har åtkomst till SFTP-servern. Ja
privateKeyPath Ange den absoluta sökvägen till den privata nyckelfil som integrationskörningen kan komma åt. Detta gäller endast när den lokalt installerade typen av integrationskörning anges i "connectVia". Ange antingen privateKeyPath eller privateKeyContent.
privateKeyContent Base64-kodat SSH-innehåll med privat nyckel. Den privata SSH-nyckeln ska vara i OpenSSH-format. 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 ett Azure-nyckelvalv. Ange antingen privateKeyPath eller privateKeyContent.
Lösenfras Ange lösenfrasen eller lösenordet för att dekryptera den privata nyckeln om nyckelfilen eller nyckelinnehållet skyddas av en lösenfras. 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 ett Azure-nyckelvalv. Ja, om den privata nyckelfilen eller nyckelinnehållet skyddas av en lösenfras.

Anteckning

SFTP-anslutningsappen stöder en RSA/DSA OpenSSH-nyckel. Kontrollera att nyckelfilinnehållet börjar med "-----BEGIN [RSA/DSA] PRIVATE KEY-----". Om den privata nyckelfilen är en PPK-formatfil använder du PuTTY-verktyget för att konvertera från PPK till OpenSSH-format.

Exempel 1: SshPublicKey-autentisering med hjälp av filePath för privat nyckel

{
    "name": "SftpLinkedService",
    "properties": {
        "type": "Sftp",
        "typeProperties": {
            "host": "<sftp server>",
            "port": 22,
            "skipHostKeyValidation": true,
            "authenticationType": "SshPublicKey",
            "userName": "xxx",
            "privateKeyPath": "D:\\privatekey_openssh",
            "passPhrase": {
                "type": "SecureString",
                "value": "<pass phrase>"
            }
        },
        "connectVia": {
            "referenceName": "<name of integration runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Exempel 2: SshPublicKey-autentisering med privat nyckelinnehåll

{
    "name": "SftpLinkedService",
    "type": "Linkedservices",
    "properties": {
        "type": "Sftp",
        "typeProperties": {
            "host": "<sftp server>",
            "port": 22,
            "skipHostKeyValidation": true,
            "authenticationType": "SshPublicKey",
            "userName": "<username>",
            "privateKeyContent": {
                "type": "SecureString",
                "value": "<base64 string of the private key content>"
            },
            "passPhrase": {
                "type": "SecureString",
                "value": "<pass phrase>"
            }
        },
        "connectVia": {
            "referenceName": "<name of integration runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Använda multifaktorautentisering

Om du vill använda multifaktorautentisering, som är en kombination av grundläggande och offentlig SSH-nyckelautentisering, anger du användarnamn, lösenord och information om den privata nyckeln som beskrivs i avsnitten ovan.

Exempel: multifaktorautentisering

{
    "name": "SftpLinkedService",
    "properties": {
        "type": "Sftp",
        "typeProperties": {
            "host": "<host>",
            "port": 22,
            "authenticationType": "MultiFactor",
            "userName": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            },
            "privateKeyContent": {
                "type": "SecureString",
                "value": "<base64 encoded private key content>"
            },
            "passPhrase": {
                "type": "SecureString",
                "value": "<passphrase for private key>"
            }
        },
        "connectVia": {
            "referenceName": "<name of integration runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Egenskaper för datamängd

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.

Följande egenskaper stöds för SFTP under location inställningar i den formatbaserade datauppsättningen:

Egenskap Beskrivning Krävs
typ Typegenskapen under location i datauppsättningen måste anges till SftpLocation. 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 sökvägen i inställningarna för aktivitetskällan. Inga
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 filnamnet i inställningarna för aktivitetskällan. Inga

Exempel:

{
    "name": "DelimitedTextDataset",
    "properties": {
        "type": "DelimitedText",
        "linkedServiceName": {
            "referenceName": "<SFTP linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, auto retrieved during authoring > ],
        "typeProperties": {
            "location": {
                "type": "SftpLocation",
                "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 SFTP-källan.

SFTP som källa

Azure Data Factory stöder följande filformat. Se varje artikel för formatbaserade inställningar.

Följande egenskaper stöds för SFTP under storeSettings inställningarna i den formatbaserade kopieringskällan:

Egenskap Beskrivning Krävs
typ Typegenskapen under storeSettings måste anges till SftpReadSettings. Ja
Leta upp de filer som ska kopieras
ALTERNATIV 1: Statisk sökväg
Kopiera från den mapp/filsökväg 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 flera tecken) och ? (matchar noll eller ett enda tecken). Använd ^ för att undanta om det faktiska mappnamnet har ett jokertecken eller det här escape-tecknet inuti.
Fler exempel finns i Exempel på mapp- och filfilter.
Inga
ALTERNATIV 2: jokertecken
- jokerteckenFileName
Filnamnet med jokertecken under angiven folderPath/wildcardFolderPath för att filtrera källfiler.
Tillåtna jokertecken är * (matchar noll eller flera tecken) och ? (matchar noll eller ett enda tecken). Använd ^ för att undanta om det faktiska filnamnet har jokertecken eller det här escape-tecknet inuti. Fler exempel finns 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, med 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 filnamnet i datauppsättningen. Fler exempel finns i Exempel på fillista.
Inga
Ytterligare inställningar
Rekursiv Anger om data läse rekursivt från undermapparna eller endast från den angivna mappen. När rekursivt anges till true och mottagaren är ett filbaserat arkiv kopieras eller skapas inte en tom mapp eller undermapp i mottagaren.
Tillåtna värden är true (standard) och false.
Den här egenskapen gäller inte när du konfigurerar fileListPath.
Inga
deleteFilesAfterCompletion Anger om de binära filerna kommer att tas bort från källarkivet när de har flyttats till målarkivet. Filborttagningen sker 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.
Inga
modifiedDatetimeStart Filer filtreras baserat på attributet Senast ändrad.
Filerna väljs om deras senast ändrade tid är större än eller lika med modifiedDatetimeStart och mindre än modifiedDatetimeEnd. Tiden tillämpas på UTC-tidszonen i formatet 2018-12-01T05:00:00Z.
Egenskaperna kan vara NULL, vilket innebär att inget filattributfilter tillämpas på datauppsättningen. När modifiedDatetimeStart har ett datetime-värde men modifiedDatetimeEnd är NULL innebär det att de filer vars senast ändrade attribut är större än eller lika med datetime-värdet väljs. När modifiedDatetimeEnd har ett datetime-värde men modifiedDatetimeStart är NULL innebär det att de filer vars senast ändrade attribut är mindre än datetime-värdet väljs.
Den här egenskapen gäller inte när du konfigurerar fileListPath.
Inga
modifiedDatetimeEnd Samma som ovan. Inga
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 falska (standard) och sanna.
Inga
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 jokerteckenmappfilter ä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ägen som "root/folder/year=2020" genererar kopieringsaktiviteten ytterligare två kolumner month och day med värdet "08" respektive "27", förutom kolumnerna i filerna.
– Om partitionsrotsökvägen inte har angetts genereras ingen extra kolumn.
Inga
maxConcurrentConnections Den övre gränsen för samtidiga anslutningar som upprättas till datalagret under aktivitetskörningen. Ange endast ett värde när du vill begränsa samtidiga anslutningar. Inga
disableChunking När du kopierar data från SFTP 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 SFTP-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.
Inga

Exempel:

"activities":[
    {
        "name": "CopyFromSFTP",
        "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": "SftpReadSettings",
                    "recursive": true,
                    "wildcardFolderPath": "myfolder*A",
                    "wildcardFileName": "*.csv",
                    "disableChunking": false
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

SFTP som mottagare

Azure Data Factory stöder följande filformat. Se varje artikel för formatbaserade inställningar.

Följande egenskaper stöds för SFTP under storeSettings inställningar i en formatbaserad kopieringsmottagare:

Egenskap Beskrivning Krävs
typ Typegenskapen under storeSettings måste anges till SftpWriteSettings. Ja
copyBehavior Definierar kopieringsbeteendet när källan är filer från ett filbaserat datalager.

Tillåtna värden är:
– PreserveHierarchy (standard): Bevarar filhierarkin i målmappen. Källfilens relativa sökväg till källmappen är identisk med målfilens relativa sökväg till målmappen.
– FlattenHierarchy: Alla filer från källmappen finns på den första nivån i målmappen. Målfilerna har automatiskt genererade namn.
- MergeFiles: Sammanfogar alla filer från källmappen till en fil. Om filnamnet anges är det sammanfogade filnamnet det angivna namnet. Annars är det ett automatiskt genererat filnamn.
Inga
maxConcurrentConnections Den övre gränsen för samtidiga anslutningar som upprättas till datalagret under aktivitetskörningen. Ange endast ett värde när du vill begränsa samtidiga anslutningar. Inga
useTempFileRename Ange om du vill ladda upp till temporära filer och byta namn på dem eller skriva direkt till målmappen eller filplatsen. Som standard skriver tjänsten först till temporära filer och byter sedan namn på dem när uppladdningen är klar. Den här sekvensen hjälper till att (1) undvika konflikter som kan resultera i en skadad fil om du har andra processer som skriver till samma fil och (2) ser till att den ursprungliga versionen av filen finns under överföringen. Om SFTP-servern inte stöder en namnbytesåtgärd inaktiverar du det här alternativet och kontrollerar att du inte har någon samtidig skrivning till målfilen. Mer information finns i felsökningstipset i slutet av den här tabellen. Nej. Standardvärdet är sant.
operationTimeout Väntetiden innan varje skrivbegäran till SFTP-servern överskrider tidsgränsen. Standardvärdet är 60 min (01:00:00). Inga

Tips

Om du får felet "UserErrorSftpPathNotFound", "UserErrorSftpPermissionDenied" eller "SftpOperationFail" när du skriver data till SFTP och den SFTP-användare som du använder har rätt behörigheter kontrollerar du om SFTP-serverns stöd för filbyte fungerar. Om det inte är det inaktiverar du alternativet Upload med temporär fil (useTempFileRename) och försöker igen. Mer information om den här egenskapen finns i tabellen ovan. Om du använder en lokalt installerad integrationskörning för aktiviteten Kopiera måste du använda version 4.6 eller senare.

Exempel:

"activities":[
    {
        "name": "CopyToSFTP",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "BinarySink",
                "storeSettings":{
                    "type": "SftpWriteSettings",
                    "copyBehavior": "PreserveHierarchy"
                }
            }
        }
    }
]

Exempel på mapp- och filfilter

I det här avsnittet beskrivs hur du använder jokerteckenfilter med mappsökvägar och filnamn.

folderPath fileName Rekursiv Struktur och filterresultat för källmappar (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

Den här tabellen beskriver hur du använder en fillistesökväg i aktiviteten Kopiera källa. Det förutsätter att du har följande källmappstruktur och vill kopiera de filer som är av fetstil:

Exempel på källstruktur Innehåll i FileListToCopy.txt Azure Data Factory konfiguration
Root
    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ättningen:
– Mappsökväg: root/FolderA

I aktiviteten Kopiera källa:
– 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).

Mappa dataflödesegenskaper

När du transformerar data i mappning av dataflöden kan du läsa och skriva filer från SFTP i följande format:

Formatspecifika inställningar finns i dokumentationen för det formatet. Mer information finns i Källomvandling i mappning av dataflöde och Sink-transformering i mappning av dataflöde.

Anteckning

Validering av SSH-värdnyckel stöds inte i mappning av dataflöde nu.

Anteckning

För att komma åt lokalt SFTP-serverdel måste du använda Azure Data Factory- eller Synapse-arbetsytans hanterade Virtual Network med hjälp av en privat slutpunkt. I den här självstudien finns detaljerade steg.

Källtransformering

I tabellen nedan visas de egenskaper som stöds av SFTP-källan. Du kan redigera dessa egenskaper på fliken Källalternativ . När du använder infogad datauppsättning visas ytterligare inställningar, som är samma som egenskaperna som beskrivs i avsnittet egenskaper för datauppsättningen .

Name Beskrivning Krävs Tillåtna värden Skriptegenskap för dataflöde
Sökväg med jokertecken Med hjälp av ett jokerteckenmönster instrueras ADF att loopa igenom varje matchande mapp och fil i en enda källtransformering. Det här är ett effektivt sätt att bearbeta flera filer i ett enda flöde. Inga Sträng[] wildcardPaths
Partitionsrotsökväg Om du har partitionerade mappar i filkällan med ett key=value format (till exempel year=2019), kan du tilldela den översta nivån i partitionsmappträdet till ett kolumnnamn i dataströmmen för dataflödet. Inga Sträng partitionRootPath
Tillåt att inga filer hittas Om det är sant utlöses inget fel om inga filer hittas. Inga true eller false ignoreNoFilesFound
Lista över filer Det här är en filuppsättning. Skapa en textfil som innehåller en lista över relativa sökvägsfiler som ska bearbetas. Peka på den här textfilen. Inga true eller false Filförteckning
Kolumn för att lagra filnamn Lagra namnet på källfilen i en kolumn i dina data. Ange ett nytt kolumnnamn här för att lagra filnamnssträngen. Inga Sträng rowUrlColumn
Efter slutförande Välj att inte göra något med källfilen när dataflödet har körts, ta bort källfilen eller flytta källfilen. Sökvägarna för flytten är relativa. Inga Ta bort: true eller false
Flytta: ['<from>', '<to>']
purgeFiles
moveFiles
Filtrera efter senast ändrad Du kan filtrera vilka filer du bearbetar genom att ange ett datumintervall för när de senast ändrades. Alla datum-tider är i UTC. Inga Timestamp modifiedAfter
modifiedBefore

Exempel på SFTP-källskript

När du använder SFTP-datauppsättning som källtyp är det associerade dataflödesskriptet:

source(allowSchemaDrift: true,
	validateSchema: false,
	ignoreNoFilesFound: true,
	purgeFiles: true,
	fileList: true,
	modifiedAfter: (toTimestamp(1647388800000L)),
	modifiedBefore: (toTimestamp(1647561600000L)),
	partitionRootPath: 'partdata',
	wildcardPaths:['partdata/**/*.csv']) ~> SFTPSource

Kanalomvandling

I tabellen nedan visas de egenskaper som stöds av SFTP-mottagaren. Du kan redigera dessa egenskaper på fliken Inställningar. När du använder infogad datauppsättning visas ytterligare inställningar, som är samma som egenskaperna som beskrivs i avsnittet egenskaper för datauppsättningen.

Name Beskrivning Krävs Tillåtna värden Egenskap för dataflödesskript
Rensa mappen Avgör om målmappen rensas innan data skrivs. Inga true eller false truncate
Filnamnsalternativ Namngivningsformatet för de data som skrivs. Som standard en fil per partition i formatet part-#####-tid-<guid>. Inga Mönster: Sträng
Per partition: String[]
Namnfil som kolumndata: Sträng
Namnmapp som kolumndata: Sträng
Utdata till en enskild fil: ['<fileName>']
filePattern
partitionFileNames
rowUrlColumn
rowFolderUrlColumn
partitionFileNames
Offert alla Avgör om alla värden ska omges av citattecken. Inga true eller false quoteAll

Exempel på SFTP-mottagarskript

När du använder SFTP-datauppsättning som mottagartyp är det associerade dataflödesskriptet:

IncomingStream sink(allowSchemaDrift: true,
	validateSchema: false,
	filePattern:'loans[n].csv',
	truncate: true,
	skipDuplicateMapInputs: true,
	skipDuplicateMapOutputs: true) ~> SFTPSink

Egenskaper för uppslagsaktivitet

Information om egenskaper för sökningsaktivitet finns i Sökningsaktivitet.

Egenskaper för GetMetadata-aktivitet

Information om aktivitetsegenskaper för GetMetadata finns i GetMetadata-aktivitet.

Ta bort aktivitetsegenskaper

Information om ta bort aktivitetsegenskaper finns i Ta bort aktivitet.

Äldre modeller

Anteckning

Följande modeller stöds fortfarande precis som för bakåtkompatibilitet. Vi rekommenderar att du använder den tidigare diskuterade nya modellen eftersom redigeringsgränssnittet har växlat till att generera den nya modellen.

Äldre datauppsättningsmodell

Egenskap Beskrivning Krävs
typ Typegenskapen för datauppsättningen måste anges till FileShare. Ja
folderPath Sökvägen till mappen. Ett jokerteckenfilter stöds. Tillåtna jokertecken är * (matchar noll eller flera tecken) och ? (matchar noll eller ett enda tecken). Använd ^ för att undanta om det faktiska filnamnet har ett jokertecken eller det här escape-tecknet inuti.

Exempel: rootfolder/subfolder/, se fler exempel i mapp- och filfilterexempel.
Ja
fileName Namn- eller jokerteckenfilter för 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 flera tecken) och ? (matchar noll eller ett enda tecken).
- Exempel 1: "fileName": "*.csv"
- Exempel 2: "fileName": "???20180427.txt"
Använd ^ för att undanta om det faktiska mappnamnet har jokertecken eller det här escape-tecknet inuti.
Inga
modifiedDatetimeStart Filer filtreras baserat på attributet Senast ändrad. Filerna väljs om deras senaste ändringstid är större än eller lika med modifiedDatetimeStart och mindre än modifiedDatetimeEnd. Tiden tillämpas på UTC-tidszonen i formatet 2018-12-01T05:00:00Z.

Den övergripande prestandan för dataflytt påverkas genom att aktivera den här inställningen när du vill filtrera filer från ett stort antal filer.

Egenskaperna kan vara NULL, vilket innebär att inget filattributfilter tillämpas på datauppsättningen. När modifiedDatetimeStart har ett datetime-värde men modifiedDatetimeEnd är NULL innebär det att de filer vars senast ändrade attribut är större än eller lika med datetime-värdet väljs. När modifiedDatetimeEnd har ett datetime-värde men modifiedDatetimeStart är NULL innebär det att de filer vars senast ändrade attribut är mindre än datetime-värdet har valts.
Inga
modifiedDatetimeEnd Filer filtreras baserat på attributet Senast ändrad. Filerna väljs om deras senaste ändringstid är större än eller lika med modifiedDatetimeStart och mindre än modifiedDatetimeEnd. Tiden tillämpas på UTC-tidszonen i formatet 2018-12-01T05:00:00Z.

Den övergripande prestandan för dataflytt påverkas genom att aktivera den här inställningen när du vill filtrera filer från ett stort antal filer.

Egenskaperna kan vara NULL, vilket innebär att inget filattributfilter tillämpas på datauppsättningen. När modifiedDatetimeStart har ett datetime-värde men modifiedDatetimeEnd är NULL innebär det att de filer vars senast ändrade attribut är större än eller lika med datetime-värdet väljs. När modifiedDatetimeEnd har ett datetime-värde men modifiedDatetimeStart är NULL innebär det att de filer vars senast ändrade attribut är mindre än datetime-värdet har valts.
Inga
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 och ParquetFormat. Ange typegenskapen under format till något 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 och komprimeringskodc som stöds.
Typer som stöds är GZip, Deflate, BZip2 och ZipDeflate.
Nivåerna som stöds är optimala och snabbaste.
Inga

Tips

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 mappdelen och fileName med filnamnet.
Om du vill kopiera en delmängd filer under en mapp anger du folderPath med mappdelen och fileName med jokerteckenfiltret.

Anteckning

Om du använder egenskapen fileFilter för filfiltret stöds den fortfarande som den är, men vi rekommenderar att du använder den nya filterfunktionen som lagts till i fileName från och med nu.

Exempel:

{
    "name": "SFTPDataset",
    "type": "Datasets",
    "properties": {
        "type": "FileShare",
        "linkedServiceName":{
            "referenceName": "<SFTP linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "folderPath": "folder/subfolder/",
            "fileName": "*",
            "modifiedDatetimeStart": "2018-12-01T05:00:00Z",
            "modifiedDatetimeEnd": "2018-12-01T06:00:00Z",
            "format": {
                "type": "TextFormat",
                "columnDelimiter": ",",
                "rowDelimiter": "\n"
            },
            "compression": {
                "type": "GZip",
                "level": "Optimal"
            }
        }
    }
}

Äldre aktiviteten Kopiera källmodell

Egenskap Beskrivning Krävs
typ Typegenskapen för den aktiviteten Kopiera källan måste anges till FileSystemSource Ja
Rekursiv Anger om data läse rekursivt från undermapparna eller endast från den angivna mappen. När rekursivt är inställt på true och mottagaren är ett filbaserat arkiv kopieras inte tomma mappar och undermappar i mottagaren.
Tillåtna värden är true (standard) och false
Inga
maxConcurrentConnections Den övre gränsen för samtidiga anslutningar som upprättas till datalagret under aktivitetskörningen. Ange endast ett värde när du vill begränsa samtidiga anslutningar. Inga

Exempel:

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

Nästa steg

En lista över datalager som stöds som källor och mottagare av aktiviteten Kopiera finns i datalager som stöds.