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) | (1) (2) |
Mappa dataflöde (källa/mottagare) | (1) |
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 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:
- Verktyget Kopiera data
- Azure-portalen
- The .NET SDK
- The Python SDK
- Azure PowerShell
- REST-API:et
- Azure Resource Manager-mallen
Skapa en länkad SFTP-tjänst med hjälp av användargränssnittet
Använd följande steg för att skapa en SFTP-länkad tjänst i Azure Portal användargränssnittet.
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 SFTP och välj SFTP-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 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.
- 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 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.
- 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 SFTP under storeSettings
inställningarna i den formatbaserade kopieringskällan:
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Typegenskapen under storeSettings måste anges till SftpReadSettings. |
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 |
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 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 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 kopplade filnamnet det angivna namnet. Annars är det ett automatiskt genererat filnamn. |
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 |
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 |
---|---|---|
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ä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 |
fileList |
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 de här egenskaperna 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 |
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": "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>"
}
}
}
]
Relaterat innehåll
En lista över datalager som stöds som källor och mottagare av aktiviteten Kopiera finns i datalager som stöds.