Kopiera och transformera data i SFTP-servern med Hjälp av Azure Data Factory eller Azure 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 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 introduktionsartikeln för Azure Data Factory eller Azure Synapse Analytics.

Funktioner som stöds

Den här SFTP-anslutningsappen stöds för följande funktioner:

Funktioner som stöds IR
aktiviteten Kopiera (källa/mottagare) ① ②
Mappa dataflöde (källa/mottagare)
Sökningsaktivitet ① ②
GetMetadata-aktivitet ① ②
Ta bort aktivitet ① ②

(1) Azure Integration Runtime (2) Lokalt installerad integrationskörning

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 komprimeringskodex 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 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 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-portalen.

  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å Ny:

  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.

Anslut eller konfigurationsinformation

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:

Property Beskrivning Obligatoriskt
type Typegenskapen måste vara inställd på 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.
Nej
skipHostKeyValidation Ange om du vill hoppa över validering av värdnyckel.
Tillåtna värden är true och false (standard).
Nej
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änd offentlig SSH-nyckelautentisering .
Ja
connectVia Den integrationskörning som ska användas för att ansluta till datalagret. Mer information finns i avsnittet Krav . Om integreringskörningen inte har angetts använder tjänsten standardkörningen för Azure Integration Runtime. Nej

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:

Property Beskrivning Obligatoriskt
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-anslutningsapparna som introducerades i det sista avsnittet:

Property Beskrivning Obligatoriskt
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 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.

Kommentar

SFTP-anslutningsappen stöder en RSA/DSA OpenSSH-nyckel. Kontrollera att nyckelfilens innehåll 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 med 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ändarnamnet, lösenordet och informationen 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 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.

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

Property Beskrivning Obligatoriskt
type Typegenskapen under location i datamängden måste anges till SftpLocation. Ja
folderPath Sökvägen till mappen. Om du vill använda ett 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. Nej
fileName Filnamnet under den angivna folderPath. Om du vill använda ett jokertecken för att filtrera filer hoppar du över den här inställningen och anger filnamnet i inställningarna för aktivitetskällan. Nej

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:

Property Beskrivning Obligatoriskt
type Typegenskapen under storeSettings måste anges till SftpRead Inställningar. Ja
Leta upp filerna 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 fler tecken) och ? (matchar noll eller ett enda tecken); använd ^ för att fly om ditt faktiska mappnamn har ett jokertecken eller detta escape-tecken inuti.
Fler exempel finns 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 ett enda tecken); använd ^ för att fly om ditt faktiska filnamn har jokertecken eller detta escape-tecken 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.
Nej
Ytterligare inställningar
Rekursiv Anger om data läse rekursivt från undermapparna eller endast från den angivna mappen. När rekursiv är inställd på true 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
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.
Egenskaperna kan vara NULL, vilket innebär att inget filattributfilter tillämpas på datamängden. 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 är markerade. 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.
Den här egenskapen gäller inte när du konfigurerar fileListPath.
Nej
modifiedDatetimeEnd Samma som ovan. 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
maxConcurrent Anslut ions 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 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.
Nej

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:

Property Beskrivning Obligatoriskt
type Typegenskapen under storeSettings måste anges till SftpWrite Inställningar. 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 kopplade filnamnet det angivna namnet. Annars är det ett automatiskt genererat filnamn.
Nej
maxConcurrent Anslut ions 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
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) se 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). Nej

Dricks

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-servern stöder filbyte. Om det inte är det inaktiverar du alternativet Ladda upp 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 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 den här tabellen beskrivs det beteende som uppstår när en fillistesökväg används i aktiviteten Kopiera källa. Det förutsätter att du har följande källmappstruktur och vill kopiera filerna 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älltransformering i mappning av dataflöde och Sink-transformering i mappning av dataflöde.

Kommentar

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

Kommentar

För att få åtkomst till det lokala SFTP-nätverket måste du använda Azure Data Factory eller Synapse-arbetsytan Hanterat virtuellt nätverk med hjälp av en privat slutpunkt. Mer information finns i den här självstudien .

Källtransformering

Tabellen nedan visar 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ättningar.

Name beskrivning Obligatoriskt Tillåtna värden Egenskap för dataflödesskript
Sökväg med jokertecken Om du använder ett jokerteckensmö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. Nej 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 dataflödesdataströmmen. Nej String partitionRootPath
Tillåt att inga filer hittas Om sant utlöses inte ett fel om inga filer hittas. Nej 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. Nej 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. Nej String 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. Nej 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 datumtider finns i UTC. Nej Tidsstämpel modifiedAfter
modifiedBefore

Exempel på SFTP-källskript

När du använder SFTP-datauppsättningen 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

Transformering av mottagare

I tabellen nedan visas de egenskaper som stöds av SFTP-mottagare. 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ättningar.

Name beskrivning Obligatoriskt Tillåtna värden Egenskap för dataflödesskript
Rensa mappen Avgör om målmappen rensas innan data skrivs. Nej true eller false trunkera
Filnamnsalternativ Namngivningsformatet för de data som skrivits. Som standard en fil per partition i formatet part-#####-tid-<guid>. Nej 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. Nej true eller false quoteAll

Exempel på SFTP-mottagarskript

När du använder SFTP-datauppsättningen 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 uppslagsaktivitet finns i Sökningsaktivitet.

Egenskaper för GetMetadata-aktivitet

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

Ta bort aktivitetsegenskaper

Information om egenskaper för ta bort aktivitet finns i Ta bort aktivitet.

Äldre modeller

Kommentar

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

Property Beskrivning Obligatoriskt
type Datamängdens typegenskap måste anges till FileShare. Ja
folderPath Sökvägen till mappen. Ett jokerteckenfilter stöds. 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 filnamn har ett jokertecken eller detta escape-tecken 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 fler tecken) och ? (matchar noll eller ett enda tecken).
- Exempel 1: "fileName": "*.csv"
- Exempel 2: "fileName": "???20180427.txt"
Använd ^ för att fly om det faktiska mappnamnet har jokertecken eller det här escape-teckenet inuti.
Nej
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å datamängden. 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 är markerade. 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.
Nej
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å datamängden. 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 är markerade. 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.
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 och 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

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

Kommentar

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 har 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

Property Beskrivning Obligatoriskt
type 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å sant och mottagaren är ett filbaserat arkiv kopieras inte tomma mappar och undermappar i mottagaren.
Tillåtna värden är sanna (standard) och false
Nej
maxConcurrent Anslut ions 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": "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>"
            }
        }
    }
]

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