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 si službu Data Factory v Microsoft Fabric, řešení pro analýzy typu all-in-one pro podniky. Microsoft Fabric zahrnuje 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 začít používat novou zkušební verzi zdarma.
Tento článek popisuje, jak pomocí aktivity kopírování kopírovat data ze serveru FTP (SFTP) a 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 je podporovaný pro následující funkce:
Podporované funkce | IR |
---|---|
aktivita Copy (zdroj/jímka) | (1) (2) |
Mapování toku dat (zdroj/jímka) | (1) |
Aktivita Lookup | (1) (2) |
Aktivita GetMetadata | (1) (2) |
Aktivita odstranění | (1) (2) |
(1) Prostředí Azure Integration Runtime (2) Místní prostředí Integration Runtime
Konkrétně konektor SFTP podporuje:
- Kopírování souborů ze serveru SFTP a na server SFTP pomocí veřejného klíče Basic, 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 kompresí kodeků.
Požadavky
Pokud se vaše úložiště dat nachází uvnitř místní sítě, virtuální sítě Azure nebo amazonového privátního cloudu, musíte nakonfigurovat místní prostředí Integration Runtime pro připojení k němu.
Pokud je vaše úložiště dat spravovanou cloudovou datovou službou, 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 prostředí Azure Integration Runtime.
K přístupu k místní síti bez nutnosti instalace a konfigurace místního prostředí Integration Runtime můžete také použít funkci Runtime integrace spravované virtuální sítě ve službě Azure Data Factory.
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 Manageru
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í webu Azure Portal.
Přejděte na kartu Správa v pracovním prostoru Azure Data Factory nebo Synapse a vyberte Propojené služby a pak 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 konfigurace konektoru
Následující části obsahují podrobnosti o vlastnostech, které slouží k definování entit specifických pro SFTP.
Vlastnosti propojené služby
Propojená služba SFTP podporuje následující vlastnosti:
Vlastnost | Popis | Povinní účastníci |
---|---|---|
type | Vlastnost typu musí být nastavena na Sftp. | Ano |
host | Název nebo IP adresa serveru SFTP. | Ano |
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ěření klíče hostitele. Povolené hodnoty jsou true a false (výchozí). |
No |
hostKeyFingerprint | Zadejte otisk prstu klíče hostitele. | Ano, pokud je hodnota 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í veřejného klíče SSH. |
Ano |
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í zadaný prostředí Integration Runtime, služba používá výchozí prostředí Azure Integration Runtime. | No |
Použití základního ověřování
Chcete-li použít základní ověřování, nastavte vlastnost authenticationType na Basic a kromě obecných vlastností konektoru SFTP, které byly zavedeny v předchozí části, zadejte následující vlastnosti:
Vlastnost | Popis | Povinní účastníci |
---|---|---|
userName | Uživatel, který má přístup k serveru SFTP. | Ano |
Heslo | Heslo pro uživatele (userName). Označte toto pole jako securestring, abyste ho mohli bezpečně uložit, nebo odkazovat na tajný klíč uložený v trezoru klíčů Azure. | Ano |
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í 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í účastníci |
---|---|---|
userName | Uživatel, který má přístup k serveru SFTP. | Ano |
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 buď privateKeyPath nebo privateKeyContent . |
privateKeyContent | Obsah privátního klíče SSH s kódováním Base64 Privátní klíč SSH by měl být ve formátu OpenSSH. Označte toto pole jako securestring, abyste ho mohli bezpečně uložit, nebo odkazovat na tajný klíč uložený v trezoru klíčů Azure. | Zadejte buď privateKeyPath nebo privateKeyContent . |
přístupové heslo | Zadejte předávací frázi nebo heslo k dešifrování privátního klíče, pokud je soubor klíče nebo obsah klíče chráněný heslem. Označte toto pole jako securestring, abyste ho mohli bezpečně uložit, nebo odkazovat na tajný klíč uložený v trezoru klíčů Azure. | Ano, pokud je soubor privátního klíče nebo obsah klíče chráněný heslem. |
Poznámka:
Konektor SFTP podporuje klíč RSA/DSA OpenSSH. 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 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 ověřování pomocí základních a veřejných klíčů 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
- Formát aplikace Excel
- Formát JSON
- Formát ORC
- Formát Parquet
- Formát XML
Pro SFTP location
v nastavení v datové sadě založené na formátu jsou podporovány následující vlastnosti:
Vlastnost | Popis | Povinní účastníci |
---|---|---|
type | Vlastnost location typu v datové sadě musí být nastavena na SftpLocation. |
Ano |
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é cestě folderPath. 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 Pipelines . Tato část obsahuje seznam vlastností podporovaných zdrojem SFTP.
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
- Formát aplikace Excel
- Formát JSON
- Formát ORC
- Formát Parquet
- Formát XML
Následující vlastnosti jsou podporovány pro SFTP v storeSettings
nastavení ve zdroji kopírování založeném na formátu:
Vlastnost | Popis | Povinní účastníci |
---|---|---|
type | Vlastnost typu v části storeSettings musí být nastavena na SftpReadSettings. |
Ano |
Vyhledejte soubory, které chcete zkopírovat. | ||
MOŽNOST 1: Statická cesta |
Zkopírujte cestu ke složce nebo souboru, která je zadaná v datové sadě. Pokud chcete zkopírovat všechny soubory ze složky, dále zadejte wildcardFileName 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ů) a ? (odpovídá nule nebo jednomu znaku), použijte ^ k řídicímu znaku, pokud má skutečný název složky zástupný znak nebo tento řídicí znak uvnitř. Další příklady najdete v příkladech filtru složek a souborů. |
No |
MOŽNOST 2: Zástupný znak - wildcardFileName |
Název souboru se zástupnými znaky pod zadanou složkouPath nebo zástupnými znakyFolderPath pro filtrování zdrojových souborů. Povolené zástupné znaky jsou * (odpovídají nule nebo více znaků) a ? (odpovídá nule nebo jednomu znaku), použijte ^ k řídicímu znaku, pokud má váš skutečný název souboru zástupný znak nebo tento řídicí znak uvnitř. Další příklady najdete v příkladech filtru složek a souborů. |
Ano |
MOŽNOST 3: seznam souborů - fileListPath |
Označuje, že chcete zkopírovat zadanou sadu souborů. Přejděte na textový soubor, který obsahuje seznam souborů, které chcete kopírovat (jeden soubor na řádek s relativní cestou k cestě nakonfigurované v datové sadě). Při použití této možnosti 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, zda se data čtou rekurzivně z podsložek nebo pouze ze zadané složky. Pokud je rekurzivní nastavena na hodnotu true a jímka je úložiště založené na souborech, 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 se nepoužije při konfiguraci fileListPath . |
No |
deleteFilesAfterCompletion | Určuje, zda se binární soubory odstraní ze zdrojového úložiště po úspěšném přesunutí do cílového úložiště. Odstranění souboru je na každém souboru, takže když aktivita kopírování selže, uvidíte, že se některé soubory už zkopírovaly do cíle a odstranily ze zdroje, zatímco ostatní 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 se filtrují 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 u časového pásma UTC ve formátu 2018-12-01T05:00:00Z. Vlastnosti můžou mít hodnotu NULL, což znamená, že u datové sady není použit žádný filtr atributů souboru. Pokud modifiedDatetimeStart má hodnotu datetime, ale modifiedDatetimeEnd má 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 má hodnotu NULL, znamená to, že soubory, jejichž atribut poslední změny je menší než hodnota datetime, jsou vybrány.Tato vlastnost se nepoužije při konfiguraci fileListPath . |
No |
modifiedDatetimeEnd | Platí to samé jako výše. | No |
enablePartitionDiscovery | U souborů, které jsou rozdělené na oddíly, určete, zda chcete analyzovat oddíly 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í zadán, – Při použití cesty k souboru v datové sadě nebo seznamu souborů ve zdroji je kořenová cesta oddílu cesta nakonfigurovaná v datové sadě. – Pokud používáte filtr složky se zástupnými otazemi, je kořenová cesta 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 dva další sloupce month a day s hodnotou 08 a 27 kromě sloupců uvnitř souborů.– Pokud není zadaná kořenová cesta 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. Zadejte hodnotu pouze v případech, kdy chcete omezit souběžná připojení. | No |
disableChunking | Při kopírování dat z SFTP se služba nejprve pokusí získat délku souboru, pak soubor rozdělí do více částí a přečte je paralelně. Určete, zda server SFTP podporuje získání délky souboru nebo hledání čtení z určitého posunu. Povolené hodnoty jsou false (výchozí), 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 založených na formátu najdete v jednotlivých článcích.
Následující vlastnosti jsou podporovány pro SFTP v storeSettings
nastavení v jímce kopírování založené na formátu:
Vlastnost | Popis | Povinní účastníci |
---|---|---|
type | Vlastnost typu v části storeSettings musí být nastavena na SftpWriteSettings. |
Ano |
copyBehavior | Definuje chování kopírování, pokud je zdrojem 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 s cílovou složkou. - 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 zadaný název souboru, je zadaným názvem sloučený soubor. 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. Zadejte hodnotu pouze v případech, kdy chcete omezit souběžná připojení. | No |
useTempFileRename | Určete, jestli se mají nahrát do dočasných souborů a přejmenovat je, nebo přímo zapisovat do cílové složky nebo umístění souboru. Ve výchozím nastavení služba nejprve zapíše dočasné soubory a po dokončení nahrávání je přejmenuje. Tato sekvence pomáhá (1) vyhnout se konfliktům, které můžou vést k poškození souboru, pokud máte jiné procesy zápisu do stejného souboru, a (2) zajistěte, aby během přenosu existovala 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. | Ne. Výchozí hodnota je true. |
operationTimeout | Doba čekání před vypršením časového limitu každého požadavku na zápis na server SFTP vypršela. Výchozí hodnota je 60 min (01:00:00). | No |
Tip
Pokud se při zápisu dat do SFTP zobrazí chyba UserErrorSftpPathNotFound, UserErrorSftpPermissionDenied nebo SftpOperationFail při zápisu dat do SFTP a uživatel SFTP, který používáte , má správná oprávnění, zkontrolujte, jestli operace přejmenování souboru serveru SFTP funguje. Pokud tomu tak 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é má za následek použití filtrů se zástupnými znaky s cestami ke složkám a názvy souborů.
folderPath | fileName | rekurzivní | Struktura zdrojové složky a výsledek filtru (soubory se načítají tučně ) |
---|---|---|---|
Folder* |
(prázdné, použijte výchozí) | false (nepravda) | FolderA File1.csv File2.json Podsložka 1 File3.csv File4.json File5.csv AnotherFolderB File6.csv |
Folder* |
(prázdné, použijte výchozí) | true | FolderA File1.csv File2.json Podsložka 1 File3.csv File4.json File5.csv AnotherFolderB File6.csv |
Folder* |
*.csv |
false (nepravda) | FolderA File1.csv File2.json Podsložka 1 File3.csv File4.json File5.csv AnotherFolderB File6.csv |
Folder* |
*.csv |
true | FolderA File1.csv File2.json Podsložka 1 File3.csv File4.json File5.csv AnotherFolderB File6.csv |
Příklady seznamu souborů
Tato tabulka popisuje chování, které má za následek použití cesty k seznamu souborů ve zdroji aktivita Copy. Předpokládá se, že máte následující strukturu zdrojové složky a chcete zkopírovat soubory, které jsou tučného typu:
Ukázková zdrojová struktura | Obsah v FileListToCopy.txt | Konfigurace služby Azure Data Factory |
---|---|---|
kořen FolderA File1.csv File2.json Podsložka 1 File3.csv File4.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 kopírovat (jeden soubor na řádek s relativní cestou k cestě nakonfigurované 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átování se nachází v dokumentaci pro tento formát. Další informace najdete v tématu 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ěření klíče hostitele SSH.
Poznámka:
Pokud chcete získat přístup k místnímu serveru SFTP, musíte použít službu Azure Data Factory nebo spravovanou virtuální síť Synapse 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 se zobrazí další nastavení, která jsou stejná jako vlastnosti popsané v části vlastností datové sady.
Název | Popis | Povinní účastníci | Povolené hodnoty | Vlastnost skriptu toku dat |
---|---|---|---|---|
Cesta se zástupným znakem | Použití vzoru se zástupným znakem dá ADF pokyn, aby prošel každou odpovídající složkou a souborem v jedné transformaci zdroje. Jedná se o efektivní způsob, jak zpracovat více souborů v rámci jednoho toku. | No | Řetězec[] | Zástupné cardPaths |
Kořenová cesta oddílu | Pokud máte ve zdroji souborů rozdělené složky s formátem key=value (například year=2019 ), můžete přiřadit nejvyšší úroveň stromu složek oddílů k názvu sloupce ve streamu dat toku dat. |
No | String | partitionRootPath |
Povolit žádné nalezené soubory | Pokud je pravda, chyba se nevyvolá, pokud se nenašly žá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 ve vašich datech. Sem zadejte nový název sloupce, do které se uloží řetězec názvu souboru. | No | String | rowUrlColumn |
Po dokončení | Po spuštění toku dat vyberte, jestli nechcete nic dělat se zdrojovým souborem, odstraňte zdrojový soubor nebo přesuňte zdrojový soubor. Cesty pro přesunutí jsou relativní. | No | Odstranit: true nebo false Pohnout: ['<from>', '<to>'] |
purgeFiles moveFiles |
Filtrovat podle poslední změny | Můžete filtrovat soubory, které zpracováváte, zadáním rozsahu dat, kdy byly naposledy změněny. Všechna data a časy jsou ve standardu UTC. | No | Časové razítko | 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 vlastností datové sady.
Název | Popis | Povinní účastníci | 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 |
truncate |
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[] Název souboru jako dat sloupců: Řetězec Name folder as column data: String Výstup do jednoho souboru: ['<fileName>'] |
filePattern partitionFileNames rowUrlColumn rowFolderUrlColumn partitionFileNames |
Citace vše | Určuje, zda mají být všechny hodnoty uzavřeny v uvozovkách. | No | true nebo false |
QuoteAll |
Příklad skriptu jímky SFTP
Při použití datové sady SFTP jako typu jímky je 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í naleznete v tématu Aktivita vyhledávání.
Vlastnosti aktivity GetMetadata
Informace o vlastnostech aktivity GetMetadata naleznete v tématu Aktivita GetMetadata.
Odstranění vlastností aktivity
Informace o vlastnostech aktivity odstranění naleznete v tématu Odstranění aktivity.
Starší modely
Poznámka:
Následující modely jsou stále podporovány, stejně jako v případě zpětné kompatibility. Doporučujeme použít dříve probíraný nový model, protože uživatelské rozhraní pro vytváření se přepnulo na generování nového modelu.
Starší model datové sady
Vlastnost | Popis | Povinní účastníci |
---|---|---|
type | Vlastnost typu datové sady musí být nastavena na FileShare. | Ano |
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ídá nule nebo jednomu znaku), použijte ^ k řídicímu znaku, pokud má váš skutečný název souboru zástupný znak nebo tento řídicí znak uvnitř. Příklady: rootfolder/podsložka/, viz další příklady v příkladech filtru složek a souborů. |
Ano |
fileName | Filtr názvů nebo zástupných znaků pro soubory v zadané cestě folderPath. Pokud pro tuto vlastnost nezadáte hodnotu, datová sada odkazuje na všechny soubory ve složce. Pro filtrování jsou * povolené zástupné znaky (odpovídají nule nebo více znaků) a ? (odpovídá nule nebo jednomu znaku).– Příklad 1: "fileName": "*.csv" – Příklad 2: "fileName": "???20180427.txt" Slouží ^ k řídicímu znaku, pokud má skutečný název složky zástupný znak nebo tento řídicí znak uvnitř. |
No |
modifiedDatetimeStart | Soubory se filtrují 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 u časového pásma UTC ve formátu 2018-12-01T05:00:00Z. Celkový výkon přesunu dat bude ovlivněn povolením tohoto nastavení, pokud chcete filtrovat soubory z velkého počtu souborů. Vlastnosti můžou mít hodnotu NULL, což znamená, že u datové sady není použit žádný filtr atributů souboru. Pokud modifiedDatetimeStart má hodnotu datetime, ale modifiedDatetimeEnd má 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 má hodnotu NULL, znamená to, že soubory, jejichž atribut poslední změny je menší než hodnota datetime, jsou vybrány. |
No |
modifiedDatetimeEnd | Soubory se filtrují 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 u časového pásma UTC ve formátu 2018-12-01T05:00:00Z. Celkový výkon přesunu dat bude ovlivněn povolením tohoto nastavení, pokud chcete filtrovat soubory z velkého počtu souborů. Vlastnosti můžou mít hodnotu NULL, což znamená, že u datové sady není použit žádný filtr atributů souboru. Pokud modifiedDatetimeStart má hodnotu datetime, ale modifiedDatetimeEnd má 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 má hodnotu NULL, znamená to, že soubory, jejichž atribut poslední změny je menší než hodnota datetime, jsou vybrány. |
No |
format | Pokud chcete kopírovat soubory tak, jak je to mezi úložišti založenými na souborech (binární kopie), přeskočte oddíl formátu v definicích vstupní i výstupní datové sady. Pokud chcete analyzovat soubory s určitým formátem, podporují se následující typy formátů souborů: TextFormat, JsonFormat, AvroFormat, OrcFormat a ParquetFormat. Nastavte vlastnost typu ve formátu na jednu z těchto hodnot. Další informace najdete v částech Formát textu, Formát JSON, Formát Avro, Formát Orc a Parquet Format. |
Ne (pouze pro scénář binárního kopírování) |
komprese | Zadejte typ a úroveň komprese dat. Další informace naleznete v tématu Podporované formáty souborů a komprimační kodeky. Podporované typy jsou GZip, Deflate, BZip2 a ZipDeflate. Podporované úrovně jsou Optimální a Nejrychlejší. |
No |
Tip
Chcete-li kopírovat všechny soubory ve složce, zadejte pouze folderPath .
Pokud chcete 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 zástupných znaků.
Poznámka:
Pokud jste pro filtr souborů používali vlastnost fileFilter , je stále podporovaná tak, jak je, ale doporučujeme použít novou funkci filtru přidanou do fileName odteď.
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ší verze zdrojového modelu aktivita Copy
Vlastnost | Popis | Povinní účastníci |
---|---|---|
type | Vlastnost typu zdroje aktivita Copy musí být nastavena na FileSystemSource. | Ano |
rekurzivní | Určuje, zda se data čtou rekurzivně z podsložek nebo pouze ze zadané složky. Pokud je rekurzivní nastavena na hodnotu true a jímka je úložiště založené na souborech, prázdné složky a podsložky se v jímce nezkopírují ani nevytvoří. 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. Zadejte hodnotu 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>"
}
}
}
]
Související obsah
Seznam úložišť dat podporovaných jako zdroje a jímky aktivita Copy najdete v podporovaných úložištích dat.