Kopírování a transformace dat na serveru SFTP pomocí Azure Data Factory nebo Azure Synapse Analytics
PLATÍ PRO: Azure Data Factory Azure Synapse Analytics
Tip
Vyzkoušejte Službu Data Factory v Microsoft Fabric, analytické řešení typu vše v jednom pro podniky. Microsoft Fabric pokrývá všechno od přesunu dat až po datové vědy, analýzy v reálném čase, business intelligence a vytváření sestav. Přečtěte si, jak zdarma začít používat novou zkušební verzi .
Tento článek popisuje, jak pomocí aktivity kopírování kopírovat data z a na zabezpečený server FTP (SFTP) a jak pomocí Tok dat transformovat data na serveru SFTP. Další informace najdete v úvodním článku pro Azure Data Factory nebo Azure Synapse Analytics.
Podporované funkce
Tento konektor SFTP se podporuje pro následující funkce:
Podporované funkce | IR |
---|---|
aktivita Copy (zdroj/jímka) | ① ② |
Mapování toku dat (zdroj/jímka) | ① |
Aktivita Lookup | ① ② |
Aktivita GetMetadata | ① ② |
Odstranit aktivitu | ① ② |
(1) Prostředí Azure Integration Runtime (2) Místní prostředí Integration Runtime
Konektor SFTP konkrétně podporuje:
- Kopírování souborů ze serveru SFTP a na server SFTP pomocí veřejného klíče Basic, veřejného klíče SSH nebo vícefaktorového ověřování
- Kopírování souborů tak, jak je, nebo parsováním nebo generováním souborů s podporovanými formáty souborů a kompresními kodeky.
Požadavky
Pokud se vaše úložiště dat nachází v místní síti, virtuální síti Azure nebo v privátním cloudu Amazon, musíte nakonfigurovat místní prostředí Integration Runtime , abyste se k němu mohli připojit.
Pokud je vaším úložištěm dat spravovaná cloudová datová služba, můžete použít azure Integration Runtime. Pokud je přístup omezený na IP adresy schválené v pravidlech brány firewall, můžete do seznamu povolených přidat IP adresy Azure Integration Runtime.
V Azure Data Factory můžete také použít funkci prostředí Integration Runtime spravované virtuální sítě pro přístup k místní síti bez instalace a konfigurace místního prostředí Integration Runtime.
Další informace o mechanismech zabezpečení sítě a možnostech podporovaných službou Data Factory najdete v tématu Strategie přístupu k datům.
Začínáme
K provedení aktivita Copy s kanálem můžete použít jeden z následujících nástrojů nebo sad SDK:
- Nástroj pro kopírování dat
- Azure Portal
- Sada .NET SDK
- Sada Python SDK
- Azure PowerShell
- Rozhraní REST API
- Šablona Azure Resource Manager
Vytvoření propojené služby SFTP pomocí uživatelského rozhraní
Pomocí následujícího postupu vytvořte propojenou službu SFTP v uživatelském rozhraní Azure Portal.
V pracovním prostoru Azure Data Factory nebo Synapse přejděte na kartu Spravovat, vyberte Propojené služby a klikněte na Nový:
Vyhledejte SFTP a vyberte konektor SFTP.
Nakonfigurujte podrobnosti o službě, otestujte připojení a vytvořte novou propojenou službu.
Podrobnosti o konfiguraci konektoru
Následující části obsahují podrobnosti o vlastnostech, které se používají k definování entit specifických pro SFTP.
Vlastnosti propojené služby
Propojená služba SFTP podporuje následující vlastnosti:
Vlastnost | Popis | Povinné |
---|---|---|
typ | Vlastnost type musí být nastavená na Sftp. | Yes |
Hostitel | Název nebo IP adresa serveru SFTP. | Yes |
port | Port, na kterém server SFTP naslouchá. Povolená hodnota je celé číslo a výchozí hodnota je 22. |
No |
skipHostKeyValidation | Určete, jestli se má přeskočit ověřování klíče hostitele. Povolené hodnoty jsou true a false (výchozí). |
No |
hostKeyFingerprint | Zadejte otisk prstu klíče hostitele. | Ano, pokud je vlastnost skipHostKeyValidation nastavená na hodnotu false. |
authenticationType | Zadejte typ ověřování. Povolené hodnoty jsou Basic, SshPublicKey a MultiFactor. Další vlastnosti najdete v části Použití základního ověřování . Příklady JSON najdete v části Použití ověřování pomocí veřejného klíče SSH . |
Yes |
connectVia | Prostředí Integration Runtime , které se má použít pro připojení k úložišti dat. Další informace najdete v části Požadavky . Pokud není prostředí Integration Runtime zadané, služba použije výchozí Integration Runtime Azure. | No |
Použití základního ověřování
Pokud chcete použít základní ověřování, nastavte vlastnost authenticationType na Hodnotu Basic a kromě obecných vlastností konektoru SFTP, které byly zavedeny v předchozí části, zadejte následující vlastnosti:
Vlastnost | Popis | Povinné |
---|---|---|
userName | Uživatel, který má přístup k serveru SFTP. | Yes |
heslo | Heslo uživatele (userName). Označte toto pole jako SecureString, abyste ho bezpečně uložili, nebo odkazujte na tajný kód uložený v trezoru klíčů Azure. | Yes |
Příklad:
{
"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"
}
}
}
Použití ověřování pomocí veřejného klíče SSH
Pokud chcete použít ověřování pomocí veřejného klíče SSH, nastavte vlastnost authenticationType na SshPublicKey a kromě obecných vlastností konektoru SFTP uvedených v poslední části zadejte následující vlastnosti:
Vlastnost | Popis | Povinné |
---|---|---|
userName | Uživatel, který má přístup k serveru SFTP. | Yes |
privateKeyPath | Zadejte absolutní cestu k souboru privátního klíče, ke kterému má prostředí Integration Runtime přístup. To platí jenom v případě, že je v connectVia zadaný místní typ prostředí Integration Runtime. | Zadejte nebo privateKeyPath privateKeyContent . |
privateKeyContent | Obsah privátního klíče s kódováním SSH v kódování Base64 Privátní klíč SSH by měl mít formát OpenSSH. Označte toto pole jako SecureString, abyste ho bezpečně uložili, nebo odkazujte na tajný kód uložený v trezoru klíčů Azure. | Zadejte nebo privateKeyPath privateKeyContent . |
Heslo | Pokud je soubor klíče nebo obsah klíče chráněný průchozích frází, zadejte heslo pro dešifrování privátního klíče. Označte toto pole jako SecureString, abyste ho bezpečně uložili, nebo odkazujte na tajný kód uložený v trezoru klíčů Azure. | Ano, pokud je soubor privátního klíče nebo jeho obsah chráněný heslem. |
Poznámka
Konektor SFTP podporuje klíč OpenSSH RSA/DSA. Ujistěte se, že obsah souboru klíče začíná na "-----BEGIN [RSA/DSA] PRIVATE KEY-----". Pokud je soubor privátního klíče soubor ve formátu PPK, použijte nástroj PuTTY k převodu z formátu PPK na formát OpenSSH.
Příklad 1: Ověřování SshPublicKey pomocí cesty k souboru privátního klíče
{
"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"
}
}
}
Příklad 2: Ověřování SshPublicKey pomocí obsahu privátního klíče
{
"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"
}
}
}
Použití vícefaktorového ověřování
Pokud chcete použít vícefaktorové ověřování, což je kombinace základního ověřování a ověřování veřejného klíče SSH, zadejte uživatelské jméno, heslo a informace o privátním klíči popsané v předchozích částech.
Příklad: vícefaktorové ověřování
{
"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"
}
}
}
Vlastnosti datové sady
Úplný seznam oddílů a vlastností, které jsou k dispozici pro definování datových sad, najdete v článku Datové sady .
Azure Data Factory podporuje následující formáty souborů. Informace o nastaveních založených na formátu najdete v jednotlivých článcích.
- Formát Avro
- Binární formát
- Formát textu s oddělovači
- Excelový formát
- Formát JSON
- Formát ORC
- Formát Parquet
- Formát XML
V nastaveních v datové sadě založené na formátu jsou pro SFTP location
podporované následující vlastnosti:
Vlastnost | Popis | Povinné |
---|---|---|
typ | Vlastnost type v datové location sadě musí být nastavená na SftpLocation. |
Yes |
folderPath | Cesta ke složce. Pokud chcete k filtrování složky použít zástupný znak, přeskočte toto nastavení a zadejte cestu v nastavení zdroje aktivity. | No |
fileName | Název souboru v zadané složcePath. Pokud chcete k filtrování souborů použít zástupný znak, přeskočte toto nastavení a zadejte název souboru v nastavení zdroje aktivity. | No |
Příklad:
{
"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"
}
}
}
Vlastnosti aktivity kopírování
Úplný seznam oddílů a vlastností, které jsou k dispozici pro definování aktivit, najdete v článku Kanály . Tato část obsahuje seznam vlastností, které zdroj SFTP podporuje.
SFTP jako zdroj
Azure Data Factory podporuje následující formáty souborů. Informace o nastaveních založených na formátu najdete v jednotlivých článcích.
- Formát Avro
- Binární formát
- Formát textu s oddělovači
- Excelový formát
- Formát JSON
- Formát ORC
- Formát Parquet
- Formát XML
Následující vlastnosti jsou podporovány pro SFTP v storeSettings
nastaveních ve zdroji kopírování založeném na formátu:
Vlastnost | Popis | Povinné |
---|---|---|
typ | Vlastnost type v části storeSettings musí být nastavena na SftpReadSettings. |
Yes |
Vyhledání souborů, které chcete zkopírovat | ||
MOŽNOST 1: statická cesta |
Zkopírujte z cesty ke složce nebo souboru, která je zadaná v datové sadě. Pokud chcete zkopírovat všechny soubory ze složky, zadejte wildcardFileName navíc jako * . |
|
MOŽNOST 2: zástupný znak – zástupný znakFolderPath |
Cesta ke složce se zástupnými znaky pro filtrování zdrojových složek Povolené zástupné znaky jsou * (odpovídají nule nebo více znakům) a ? (odpovídají nule nebo jednomu znaku). Pokud má váš skutečný název složky zástupný znak nebo řídicí znak uvnitř, použijte ^ k řídicímu znaku. Další příklady najdete v tématu Příklady filtrů složek a souborů. |
No |
MOŽNOST 2: zástupný znak – zástupný znakFileName |
Název souboru se zástupnými znaky v zadané složcePath/wildcardFolderPath pro filtrování zdrojových souborů. Povolené zástupné znaky jsou * (odpovídají nule nebo více znakům) a ? (odpovídají nule nebo jednomu znaku). Pokud má váš skutečný název souboru zástupný znak nebo tento řídicí znak uvnitř, použijte ^ k řídicímu znaku. Další příklady najdete v tématu Příklady filtrů složek a souborů. |
Yes |
MOŽNOST 3: seznam souborů – fileListPath |
Určuje, že se má zkopírovat zadaná sada souborů. Nastavte ukazatel na textový soubor, který obsahuje seznam souborů, které chcete zkopírovat (jeden soubor na řádek s relativní cestou k cestě nakonfigurované v datové sadě). Pokud použijete tuto možnost, nezadávejte název souboru v datové sadě. Další příklady najdete v tématu Příklady seznamu souborů. |
No |
Další nastavení | ||
Rekurzivní | Určuje, jestli se data čtou rekurzivně z podsložek, nebo jenom ze zadané složky. Pokud je rekurzivní nastavená na hodnotu true a jímka je souborové úložiště, prázdná složka nebo podsložka se v jímce nezkopíruje ani nevytvoří. Povolené hodnoty jsou true (výchozí) a false. Tato vlastnost neplatí, pokud nakonfigurujete fileListPath . |
No |
deleteFilesAfterCompletion | Určuje, jestli budou binární soubory odstraněny ze zdrojového úložiště po úspěšném přesunu do cílového úložiště. Odstranění souboru se provádí na jednotlivé soubory, takže když aktivita kopírování selže, uvidíte, že některé soubory už byly zkopírovány do cíle a odstraněny ze zdroje, zatímco jiné stále zůstávají ve zdrojovém úložišti. Tato vlastnost je platná pouze ve scénáři kopírování binárních souborů. Výchozí hodnota: false. |
No |
modifiedDatetimeStart | Soubory jsou filtrovány na základě atributu Naposledy změněno. Soubory jsou vybrány, pokud je čas jejich poslední změny větší nebo roven modifiedDatetimeStart a menší než modifiedDatetimeEnd . Čas se použije pro časové pásmo UTC ve formátu 2018-12-01T05:00:00Z. Vlastnosti můžou mít hodnotu NULL, což znamená, že na datovou sadu se nepoužije žádný filtr atributů souboru. Pokud modifiedDatetimeStart má hodnotu datetime, ale modifiedDatetimeEnd má hodnotu NULL, znamená to, že jsou vybrány soubory, jejichž atribut poslední úpravy je větší než nebo roven hodnotě datetime. Pokud modifiedDatetimeEnd má hodnotu datetime, ale modifiedDatetimeStart má hodnotu NULL, znamená to, že jsou vybrány soubory, jejichž atribut poslední změny je menší než hodnota datetime.Tato vlastnost neplatí, pokud nakonfigurujete fileListPath . |
No |
modifiedDatetimeEnd | Platí to samé jako výše. | No |
enablePartitionDiscovery | U souborů, které jsou rozdělené na oddíly, určete, jestli se mají oddíly analyzovat z cesty k souboru a přidat je jako další zdrojové sloupce. Povolené hodnoty jsou false (výchozí) a true. |
No |
partitionRootPath | Pokud je povolené zjišťování oddílů, zadejte absolutní kořenovou cestu, abyste mohli číst dělené složky jako datové sloupce. Pokud není ve výchozím nastavení zadaný, – Pokud použijete cestu k souboru v datové sadě nebo v seznamu souborů ve zdroji, kořenová cesta oddílu je cesta nakonfigurovaná v datové sadě. – Při použití filtru složky se zástupnými znakůmi sadou je kořenová cesta k oddílu dílčí cestou před prvním zástupným znakem. Předpokládejme například, že cestu v datové sadě nakonfigurujete jako root/folder/year=2020/month=08/day=27: – Pokud zadáte kořenovou cestu oddílu jako root/folder/year=2020, aktivita kopírování vygeneruje kromě sloupců uvnitř souborů další dva sloupce month s day hodnotami 08 a 27.– Pokud není zadaná kořenová cesta k oddílu, nevygeneruje se žádný sloupec navíc. |
No |
maxConcurrentConnections | Horní limit souběžných připojení vytvořených k úložišti dat během spuštění aktivity. Hodnotu zadejte pouze v případech, kdy chcete omezit souběžná připojení. | No |
disableChunking | Při kopírování dat z protokolu SFTP se služba pokusí nejprve získat délku souboru, pak soubor rozdělí na několik částí a paralelně je přečte. Určete, jestli váš server SFTP podporuje získání délky souboru nebo čtení z určitého posunu. Povolené hodnoty jsou false (výchozí) a true. |
No |
Příklad:
"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 jako jímka
Azure Data Factory podporuje následující formáty souborů. Informace o nastaveních na základě formátu najdete v jednotlivých článcích.
Následující vlastnosti jsou podporovány pro protokol SFTP v storeSettings
nastavení v jímce kopírování založené na formátu:
Vlastnost | Popis | Povinné |
---|---|---|
typ | Vlastnost type v části storeSettings musí být nastavena na SftpWriteSettings. |
Yes |
copyBehavior | Definuje chování kopírování, pokud zdrojem jsou soubory ze souborového úložiště dat. Povolené hodnoty jsou následující: - PreserveHierarchy (výchozí): Zachová hierarchii souborů v cílové složce. Relativní cesta zdrojového souboru ke zdrojové složce je shodná s relativní cestou cílového souboru k cílové složce. - FlattenHierarchy: Všechny soubory ze zdrojové složky jsou na první úrovni cílové složky. Cílové soubory mají automaticky vygenerované názvy. - MergeFiles: Sloučí všechny soubory ze zdrojové složky do jednoho souboru. Pokud je název souboru zadaný, je název sloučeného souboru zadaným názvem. V opačném případě se jedná o automaticky vygenerovaný název souboru. |
No |
maxConcurrentConnections | Horní limit souběžných připojení vytvořených k úložišti dat během spuštění aktivity. Hodnotu zadejte pouze v případech, kdy chcete omezit souběžná připojení. | No |
useTempFileRename | Určete, jestli se mají nahrávat do dočasných souborů a přejmenovávat je, nebo je zapisovat přímo do cílové složky nebo umístění souboru. Ve výchozím nastavení služba nejprve zapisuje do dočasných souborů a po dokončení nahrávání je přejmenuje. Tato posloupnost pomáhá (1) vyhnout se konfliktům, které by mohly vést k poškození souboru, pokud do stejného souboru zapisují jiné procesy, a (2) zajistit, aby během přenosu bylaéhohom souboru existoval původní verze souboru. Pokud server SFTP nepodporuje operaci přejmenování, zakažte tuto možnost a ujistěte se, že nemáte souběžný zápis do cílového souboru. Další informace najdete v tipu pro řešení potíží na konci této tabulky. | No. Výchozí hodnota je true. |
operationTimeout | Doba čekání před každým požadavkem na zápis na server SFTP vyprší. Výchozí hodnota je 60 min (01:00:00). | No |
Tip
Pokud se při zápisu dat do protokolu SFTP zobrazí chyba UserErrorSftpPathNotFound, UserErrorSftpPermissionDenied nebo SftpOperationFail a uživatel SFTP, který používáte, má správná oprávnění, zkontrolujte, jestli váš server SFTP podporuje operaci přejmenování souborů. Pokud není, zakažte možnost Nahrát s dočasným souborem (useTempFileRename
) a zkuste to znovu. Další informace o této vlastnosti najdete v předchozí tabulce. Pokud pro aktivita Copy používáte místní prostředí Integration Runtime, nezapomeňte použít verzi 4.6 nebo novější.
Příklad:
"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"
}
}
}
}
]
Příklady filtrů složek a souborů
Tato část popisuje chování, které je výsledkem použití filtrů zástupných znaků s cestami ke složkám a názvy souborů.
folderPath | fileName | Rekurzivní | Struktura zdrojové složky a výsledek filtru (soubory se načtou tučně ) |
---|---|---|---|
Folder* |
(prázdné, použijte výchozí) | false (nepravda) | Složka A File1.csv Soubor2.json Podsložka 1 File3.csv Soubor4.json File5.csv DalšífolderB File6.csv |
Folder* |
(prázdné, použijte výchozí) | true | Složka A File1.csv Soubor2.json Podsložka 1 File3.csv Soubor4.json File5.csv DalšífolderB File6.csv |
Folder* |
*.csv |
false (nepravda) | Složka A File1.csv Soubor2.json Podsložka 1 File3.csv Soubor4.json File5.csv DalšífolderB File6.csv |
Folder* |
*.csv |
true | Složka A File1.csv Soubor2.json Podsložka 1 File3.csv Soubor4.json File5.csv DalšífolderB File6.csv |
Příklady seznamu souborů
Tato tabulka popisuje chování, které je výsledkem použití cesty k seznamu souborů ve zdroji aktivita Copy. Předpokládá se, že máte následující strukturu zdrojových složek a chcete zkopírovat soubory tučného typu:
Ukázková zdrojová struktura | Obsah v FileListToCopy.txt | konfigurace Azure Data Factory |
---|---|---|
kořen Složka A File1.csv Soubor2.json Podsložka 1 File3.csv Soubor4.json File5.csv Metadata FileListToCopy.txt |
File1.csv Podsložka1/File3.csv Podsložka1/File5.csv |
V datové sadě: - Cesta ke složce: root/FolderA Ve zdroji aktivita Copy: – Cesta k seznamu souborů: root/Metadata/FileListToCopy.txt Cesta k seznamu souborů odkazuje na textový soubor ve stejném úložišti dat, který obsahuje seznam souborů, které chcete zkopírovat (jeden soubor na řádek s relativní cestou nakonfigurovanou v datové sadě). |
Mapování vlastností toku dat
Při transformaci dat v mapování toků dat můžete číst a zapisovat soubory z SFTP v následujících formátech:
Nastavení specifická pro formát najdete v dokumentaci k danému formátu. Další informace najdete v tématech Transformace zdroje v mapování toku dat a Transformace jímky v mapování toku dat.
Poznámka
V mapování toku dat se teď nepodporuje ověřování klíče hostitele SSH.
Poznámka
Pokud chcete získat přístup k místnímu serveru SFTP, musíte použít Azure Data Factory nebo spravovaný pracovní prostor Synapse Virtual Network s využitím privátního koncového bodu. Podrobný postup najdete v tomto kurzu .
Transformace zdroje
Následující tabulka uvádí vlastnosti podporované zdrojem SFTP. Tyto vlastnosti můžete upravit na kartě Možnosti zdroje . Při použití vložené datové sady uvidíte další nastavení, která jsou shodná s vlastnostmi popsanými v části Vlastnosti datové sady .
Název | Popis | Povinné | Povolené hodnoty | Vlastnost skriptu toku dat |
---|---|---|---|---|
Cesta se zástupným znakem | Použití vzoru se zástupným znakem dá ADF pokyn, aby cyklicky procházela každou odpovídající složku a soubor v jedné zdrojové transformaci. Jedná se o efektivní způsob zpracování více souborů v rámci jednoho toku. | No | String[] | zástupné cesty |
Kořenová cesta oddílu | Pokud máte ve zdroji souborů rozdělené složky ve key=value formátu (například year=2019 ), můžete přiřadit nejvyšší úroveň této stromové struktury složek oddílů názvu sloupce v datovém streamu toku dat. |
No | Řetězec | partitionRootPath |
Povolit, aby se nenašly žádné soubory | Pokud je hodnota true, nedojde k chybě, pokud nejsou nalezeny žádné soubory. | No | true nebo false |
ignoreNoFilesFound |
Seznam souborů | Toto je sada souborů. Vytvořte textový soubor, který obsahuje seznam souborů relativní cesty ke zpracování. Přejděte na tento textový soubor. | No | true nebo false |
Filelist |
Sloupec pro uložení názvu souboru | Uložte název zdrojového souboru do sloupce v datech. Zadejte sem nový název sloupce pro uložení řetězce názvu souboru. | No | Řetězec | rowUrlColumn |
Po dokončení | Po spuštění toku dat se zdrojovým souborem nic nedělejte, odstraňte zdrojový soubor nebo zdrojový soubor přesuňte. Cesty pro přesun jsou relativní. | No | Odstranit: true nebo false Přesunout: ['<from>', '<to>'] |
purgeFiles moveFiles |
Filtrovat podle poslední změny | Soubory, které zpracováváte, můžete filtrovat zadáním rozsahu dat, kdy byly naposledy změněny. Všechna data a časy jsou v UTC. | No | Timestamp | Modifiedafter Modifiedbefore |
Příklad zdrojového skriptu SFTP
Pokud jako typ zdroje použijete datovou sadu SFTP, přidružený skript toku dat:
source(allowSchemaDrift: true,
validateSchema: false,
ignoreNoFilesFound: true,
purgeFiles: true,
fileList: true,
modifiedAfter: (toTimestamp(1647388800000L)),
modifiedBefore: (toTimestamp(1647561600000L)),
partitionRootPath: 'partdata',
wildcardPaths:['partdata/**/*.csv']) ~> SFTPSource
Transformace jímky
Následující tabulka uvádí vlastnosti podporované jímkou SFTP. Tyto vlastnosti můžete upravit na kartě Nastavení . Při použití vložené datové sady se zobrazí další nastavení, která jsou stejná jako vlastnosti popsané v části Vlastnosti datové sady .
Název | Popis | Povinné | Povolené hodnoty | Vlastnost skriptu toku dat |
---|---|---|---|---|
Vymazání složky | Určuje, zda se cílová složka vymaže před zápisem dat. | No | true nebo false |
Zkrátit |
Možnost názvu souboru | Formát pojmenování zapsaných dat. Ve výchozím nastavení jeden soubor na oddíl ve formátu part-#####-tid-<guid> . |
No | Vzor: Řetězec Na oddíl: String[] Pojmenujte soubor jako data sloupce: Řetězec Pojmenujte složku jako data sloupce: Řetězec Výstup do jednoho souboru: ['<fileName>'] |
filePattern partitionFileNames rowUrlColumn rowFolderUrlColumn partitionFileNames |
Citace vše | Určuje, zda se mají uzavřít všechny hodnoty v uvozovkách. | No | true nebo false |
citaceVšechny |
Příklad skriptu jímky SFTP
Pokud jako typ jímky použijete datovou sadu SFTP, přidružený skript toku dat:
IncomingStream sink(allowSchemaDrift: true,
validateSchema: false,
filePattern:'loans[n].csv',
truncate: true,
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true) ~> SFTPSink
Vlastnosti aktivity vyhledávání
Informace o vlastnostech aktivity vyhledávání najdete v tématu Aktivita vyhledávání.
Vlastnosti aktivity GetMetadata
Informace o vlastnostech aktivity GetMetadata najdete v tématu Aktivita GetMetadata.
Odstranit vlastnosti aktivity
Informace o vlastnostech aktivity odstranění najdete v tématu Odstranění aktivity.
Starší modely
Poznámka
Následující modely jsou stále podporovány, stejně jako pro zpětnou kompatibilitu. Doporučujeme použít dříve probíraný nový model, protože uživatelské rozhraní pro vytváření obsahu přešlo na generování nového modelu.
Starší model datové sady
Vlastnost | Popis | Povinné |
---|---|---|
typ | Vlastnost type datové sady musí být nastavená na FileShare. | Yes |
folderPath | Cesta ke složce. Podporuje se filtr zástupných znaků. Povolené zástupné znaky jsou * (odpovídají nule nebo více znakům) a ? (odpovídají nule nebo jednomu znaku). Pokud má váš skutečný název souboru zástupný znak nebo tento řídicí znak uvnitř, použijte ^ k řídicímu znaku. Příklady: rootfolder/podsložka/, další příklady najdete v tématu Příklady filtrů složek a souborů. |
Yes |
fileName | Filtr názvů nebo zástupných znaků pro soubory v zadané složce "folderPath". Pokud nezadáte hodnotu pro tuto vlastnost, datová sada odkazuje na všechny soubory ve složce. Pro filtr jsou * povolené zástupné znaky (odpovídají nule nebo více znakům) a ? (odpovídají nule nebo jednomu znaku).– Příklad 1: "fileName": "*.csv" – Příklad 2: "fileName": "???20180427.txt" Pokud má váš skutečný název složky zástupný znak, nebo tento řídicí znak uvnitř, použijte ^ k řídicímu znaku. |
No |
modifiedDatetimeStart | Soubory jsou filtrovány na základě atributu Naposledy změněno. Soubory jsou vybrány, pokud je jejich čas poslední změny větší nebo roven modifiedDatetimeStart a menší než modifiedDatetimeEnd . Čas se použije na časové pásmo UTC ve formátu 2018-12-01T05:00:00Z. Pokud chcete filtrovat soubory z velkého počtu souborů, bude toto nastavení ovlivněno celkovým výkonem přesunu dat. Vlastnosti můžou mít hodnotu NULL, což znamená, že na datovou sadu se nepoužije žádný filtr atributů souboru. Pokud modifiedDatetimeStart má hodnotu datetime, ale modifiedDatetimeEnd hodnotu NULL, znamená to, že jsou vybrány soubory, jejichž atribut poslední změny je větší nebo roven hodnotě datetime. Pokud modifiedDatetimeEnd má hodnotu datetime, ale modifiedDatetimeStart null, znamená to, že jsou vybrány soubory, jejichž atribut poslední změny je menší než hodnota datetime. |
No |
modifiedDatetimeEnd | Soubory jsou filtrovány na základě atributu Naposledy změněno. Soubory jsou vybrány, pokud je jejich čas poslední změny větší nebo roven modifiedDatetimeStart a menší než modifiedDatetimeEnd . Čas se použije na časové pásmo UTC ve formátu 2018-12-01T05:00:00Z. Pokud chcete filtrovat soubory z velkého počtu souborů, bude toto nastavení ovlivněno celkovým výkonem přesunu dat. Vlastnosti můžou mít hodnotu NULL, což znamená, že na datovou sadu se nepoužije žádný filtr atributů souboru. Pokud modifiedDatetimeStart má hodnotu datetime, ale modifiedDatetimeEnd hodnotu NULL, znamená to, že jsou vybrány soubory, jejichž atribut poslední změny je větší nebo roven hodnotě datetime. Pokud modifiedDatetimeEnd má hodnotu datetime, ale modifiedDatetimeStart null, znamená to, že jsou vybrány soubory, jejichž atribut poslední změny je menší než hodnota datetime. |
No |
formát | Pokud chcete kopírovat soubory tak, jak je mezi úložišti založenými na souborech (binární kopie), přeskočte oddíl formát ve vstupní i výstupní definici datové sady. Pokud chcete analyzovat soubory s určitým formátem, jsou podporovány následující typy formátů souborů: TextFormat, JsonFormat, AvroFormat, OrcFormat a ParquetFormat. Nastavte vlastnost type pod formátem na jednu z těchto hodnot. Další informace najdete v částech Formát textu, Formát JSON, Formát Avro, Orc format a Parquet format . |
Ne (pouze pro scénář binárního kopírování) |
komprese | Zadejte typ a úroveň komprese dat. Další informace najdete v tématu Podporované formáty souborů a kompresní kodeky. Podporované typy jsou GZip, Deflate, BZip2 a ZipDeflate. Podporované úrovně jsou Optimální a Nejrychlejší. |
No |
Tip
Pokud chcete zkopírovat všechny soubory ve složce, zadejte pouze folderPath .
Chcete-li zkopírovat jeden soubor se zadaným názvem, zadejte folderPath s částí složky a fileName s názvem souboru.
Pokud chcete zkopírovat podmnožinu souborů ve složce, zadejte folderPath s částí složky a fileName pomocí filtru se zástupnými cardy.
Poznámka
Pokud jste pro filtr souborů používali vlastnost fileFilter , je stále podporovaná tak, jak je, ale doporučujeme, abyste od této chvíle použili novou funkci filtru přidanou do fileName .
Příklad:
{
"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"
}
}
}
}
Starší aktivita Copy zdrojový model
Vlastnost | Popis | Povinné |
---|---|---|
typ | Vlastnost type zdroje aktivita Copy musí být nastavená na FileSystemSource. | Yes |
Rekurzivní | Určuje, zda se data čtou rekurzivně z podsložek nebo pouze ze zadané složky. Pokud je rekurzivní nastavená na hodnotu true a jímka je úložiště založené na souborech, nebudou se prázdné složky a podsložky v jímce kopírovat ani vytvářet. Povolené hodnoty jsou true (výchozí) a false. |
No |
maxConcurrentConnections | Horní limit souběžných připojení vytvořených k úložišti dat během spuštění aktivity Hodnotu zadejte pouze v případech, kdy chcete omezit souběžná připojení. | No |
Příklad:
"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>"
}
}
}
]
Další kroky
Seznam úložišť dat, která aktivita Copy podporuje jako zdroje a jímky, najdete v tématu Podporovaná úložiště dat.