Kopírování dat ze serveru FTP pomocí Azure Data Factory nebo Synapse Analytics

VZTAHUJE SE NA: Azure Data Factory Azure Synapse Analytics

Tip

Data Factory v Microsoft Fabric je nová generace Azure Data Factory s jednodušší architekturou, integrovanou AI a novými funkcemi. Pokud s integrací dat začínáte, začněte Fabric Data Factory. Stávající úlohy ADF lze upgradovat na Fabric pro přístup k novým funkcím v oblastech datové vědy, analýz v reálném čase a vytváření sestav.

Tento článek popisuje, jak kopírovat data ze serveru FTP. Další informace najdete v úvodních článcích pro Azure Data Factory a Synapse Analytics.

Poznámka:

Tento konektor je také k dispozici ve službě Data Factory v Microsoft Fabric. Informace o konfiguraci a funkcích specifických pro Fabric najdete v dokumentaci ke konektoru Fabric FTP.

Podporované funkce

Tento konektor FTP je podporovaný pro následující funkce:

Podporované funkce IR
aktivita Copy (zdroj/-) (1) (2)
Vyhledávací aktivita (1) (2)
Aktivita GetMetadata (1) (2)
Smazat aktivitu (1) (2)

(1) Azure Integration Runtime (2) Lokálně hostované Integration Runtime

Konkrétně tento konektor FTP podporuje:

Konektor FTP podporuje server FTP spuštěný v pasivním režimu. Aktivní režim není podporován.

Požadavky

Pokud se vaše úložiště dat nachází uvnitř místní sítě, Azure virtuální sítě, nebo Amazon Virtual Private Cloud, musíte pro připojení nakonfigurovat self-hosted Integration Runtime.

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 Azure Integration Runtime.

Funkci managed virtual network Integration Runtime můžete také použít v Azure Data Factory pro přístup k místní síti bez nutnosti 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í aktivity kopírování pomocí datového kanálu můžete použít jeden z následujících nástrojů nebo sad SDK:

Vytvoření propojené služby k serveru FTP pomocí uživatelského rozhraní

Pomocí následujícího postupu vytvořte propojenou službu se serverem FTP v uživatelském rozhraní portálu Azure.

  1. Přejděte na kartu Správa v pracovním prostoru Azure Data Factory nebo Synapse a vyberte Propojené služby a pak vyberte Nový:

  2. Vyhledejte FTP a vyberte konektor FTP.

    Snímek obrazovky s konektorem FTP

  3. Nakonfigurujte podrobnosti o službě, otestujte připojení a vytvořte novou propojenou službu.

    Snímek obrazovky s konfigurací propojené služby pro server FTP

Podrobnosti konfigurace konektoru

Následující části obsahují podrobnosti o vlastnostech, které slouží k definování entit specifických pro FTP.

Vlastnosti propojené služby

Pro propojenou službu FTP jsou podporovány následující vlastnosti:

Vlastnost Popis Požadováno
typ Vlastnost typu musí být nastavena na: FtpServer. Ano
hostitel Zadejte název nebo IP adresu serveru FTP. Ano
port Zadejte port, na kterém server FTP naslouchá.
Povolené hodnoty jsou: celé číslo, výchozí hodnota je 21.
Ne
enableSsl Určete, jestli se má protokol FTP používat přes kanál SSL/TLS.
Povolené hodnoty jsou true (výchozí), false.
Ne
Povolit ověření certifikátu serveru Určete, jestli se má povolit ověření certifikátu TLS/SSL při používání protokolu FTP přes kanál SSL/TLS.
Povolené hodnoty jsou true (výchozí), false.
Ne
typ autentizace Zadejte typ ověřování.
Povolené hodnoty jsou: Základní, Anonymní
Ano
userName Zadejte uživatele, který má přístup k serveru FTP. Ne
heslo Zadejte heslo pro uživatele (userName). Označte toto pole jako SecureString pro jeho bezpečné uložení, nebo odkazujte na tajemství uložené v Azure Key Vault. Ne
connectVia Integration Runtime pro připojení k úložišti dat. Další informace najdete v části Požadavky . Pokud není zadaný, použije výchozí Azure Integration Runtime. Ne

Poznámka:

Konektor FTP podporuje přístup k serveru FTP bez šifrování nebo explicitního šifrování SSL/TLS; nepodporuje implicitní šifrování SSL/TLS.

Příklad 1: Použití anonymního ověřování

{
    "name": "FTPLinkedService",
    "properties": {
        "type": "FtpServer",
        "typeProperties": {
            "host": "<ftp server>",
            "port": 21,
            "enableSsl": true,
            "enableServerCertificateValidation": true,
            "authenticationType": "Anonymous"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Příklad 2: Použití základního ověřování

{
    "name": "FTPLinkedService",
    "properties": {
        "type": "FtpServer",
        "typeProperties": {
            "host": "<ftp server>",
            "port": 21,
            "enableSsl": true,
            "enableServerCertificateValidation": true,
            "authenticationType": "Basic",
            "userName": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Vlastnosti datové sady

Úplný seznam oddílů a vlastností dostupných 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.

V nastaveních protokolu FTP v datové sadě založené na formátu se podporují následující vlastnosti: location

Vlastnost Popis Požadováno
typ Vlastnost location typu v datové sadě musí být nastavena na FtpServerLocation. 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 v nastavení zdroje aktivity. Ne
název souboru Název souboru v dané cestě folderPath. Pokud chcete k filtrování souborů použít zástupný znak, přeskočte toto nastavení a zadejte v nastavení zdroje aktivity. Ne

Příklad:

{
    "name": "DelimitedTextDataset",
    "properties": {
        "type": "DelimitedText",
        "linkedServiceName": {
            "referenceName": "<FTP linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, auto retrieved during authoring > ],
        "typeProperties": {
            "location": {
                "type": "FtpServerLocation",
                "folderPath": "root/folder/subfolder"
            },
            "columnDelimiter": ",",
            "quoteChar": "\"",
            "firstRowAsHeader": true,
            "compressionCodec": "gzip"
        }
    }
}

Vlastnosti kopírovací aktivity

Úplný seznam oddílů a vlastností dostupných pro definování aktivit najdete v článku Pipelines . Tato část obsahuje seznam vlastností podporovaných zdrojem FTP.

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

V nastaveních storeSettings pro FTP ve zdroji kopírování založeném na formátu jsou podporovány následující vlastnosti:

Vlastnost Popis Požadováno
typ Vlastnost typu v části storeSettings musí být nastavena na FtpReadSettings. Ano
Vyhledejte soubory, které chcete zkopírovat:
MOŽNOST 1: Statická cesta
Zkopírujte z dané složky nebo cesty k souboru 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ídá nule nebo více znaků) a ? (odpovídá nule nebo jednomu znaku); použijte ^ pro únik, pokud skutečný název složky obsahuje zástupný znak nebo tento únikový znak.
Další příklady najdete v příkladech filtru složek a souborů.
Ne
MOŽNOST 2: Zástupný znak
- zástupnýSouborovýNázev
Název souboru se zástupnými znaky v dané složcePath/wildcardFolderPath pro filtrování zdrojových souborů.
Povolené zástupné znaky jsou: * (odpovídá nule nebo více znaků) a ? (odpovídá nule nebo jednomu znaku); použijte ^ pro únik, pokud má váš skutečný název souboru zástupný znak nebo tento escape 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 danou sadu souborů. Přejděte na textový soubor, který obsahuje seznam souborů, které chcete kopírovat, jeden soubor na řádek, což je relativní cesta k cestě nakonfigurované v datové sadě.
Při použití této možnosti nezadávejte v datové sadě název souboru. Další příklady najdete v příkladech seznamu souborů.
Ne
Další nastavení:
rekurzivní Určuje, zda se data čtou rekurzivně z podsložek nebo pouze ze zadané složky. Všimněte si, že 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.
Ne
odstranitSouboryPoDokončení 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 se provádí pro každý jednotlivý soubor. Pokud aktivita kopírování selže, některé soubory mohou být již zkopírovány do cílového umístění a odstraněny ze zdroje, zatímco jiné ještě 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.
Ne
useBinaryTransfer Určete, zda se má použít režim binárního přenosu. Hodnoty jsou pravdivé pro binární režim (výchozí) a false pro ASCII. Ne
povolit zjišťování oddílů 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.
Ne
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ý,
– 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 znaky, je kořenová cesta oddílu podcestou 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.
Ne
maxConcurrentConnections (maximální současná připojení) 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í. Ne
zakázat segmentaci Při kopírování dat z FTP 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 FTP podporuje získání délky souboru nebo umožňuje čtení od určitého posunu.
Povolené hodnoty jsou false (výchozí), true.
Ne

Příklad:

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

Příklady filtrů složek a souborů

Tato část popisuje výsledné chování cesty ke složce a názvu souboru pomocí filtrů zástupných znaků.

folderPath název souboru rekurzivní Struktura zdrojové složky a výsledek filtru (soubory označené tučně jsou načteny)
Folder* (prázdné, použijte výchozí) 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í) pravda FolderA
     File1.csv
     File2.json
    Podsložka 1
         File3.csv
         File4.json
         File5.csv
AnotherFolderB
    File6.csv
Folder* *.csv nepravda FolderA
     File1.csv
    File2.json
    Podsložka 1
        File3.csv
        File4.json
        File5.csv
AnotherFolderB
    File6.csv
Folder* *.csv pravda FolderA
     File1.csv
    File2.json
    Podsložka 1
         File3.csv
        File4.json
         File5.csv
AnotherFolderB
    File6.csv

Příklady seznamu souborů

Tato část popisuje výsledné chování použití cesty k seznamu souborů ve zdroji aktivity kopírování.

Za předpokladu, že máte následující strukturu zdrojové složky a chcete zkopírovat soubory tučně:

Ukázková zdrojová struktura Obsah v FileListToCopy.txt Konfigurace
kořen
    FolderA
         File1.csv
        File2.json
        Podsložka 1
             File3.csv
            File4.json
             File5.csv
    Metadata
        FileListToCopy.txt
File1.csv
Podsložka1/Soubor3.csv
Podsložka1/Soubor5.csv
V datové sadě:
- Cesta ke složce: root/FolderA

Ve zdroji aktivity kopírování:
- 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ě.

Vlastnosti aktivity vyhledávání

Podrobnosti o vlastnostech najdete v Vyhledávací aktivitě.

Vlastnosti aktivity GetMetadata

Podrobnosti o vlastnostech najdete v aktivitě GetMetadata.

Odstranění vlastností aktivity

Podrobnosti o vlastnostech najdete v aktivitě Odstranění.

Zastaralé modely

Poznámka:

Následující modely jsou stále podporovány, protože je to kvůli zpětné kompatibilitě. Doporučujeme použít nový model uvedený v předchozích částech a uživatelské rozhraní pro vytváření se přepnulo na generování nového modelu.

Starší model datové sady

Vlastnost Popis Požadováno
typ Vlastnost typu datové sady musí být nastavená na: FileShare Ano
folderPath Cesta ke složce Podporuje se filtr se zástupnými znaky, povolené zástupné znaky jsou: * (odpovídá nule nebo více znakům) a ? (odpovídá nule nebo jednomu znaku). Pokud skutečný název složky obsahuje zástupný znak nebo tento únikový znak, použijte ^ k jeho escapu.

Příklady: rootfolder/podsložka/, viz další příklady v příkladech filtru složek a souborů.
Ano
název souboru Název nebo filtr zástupných znaků pro soubory ve složce specifikované v "folderPath". Pokud pro tuto vlastnost nezadáte hodnotu, datová sada odkazuje na všechny soubory ve složce.

Pro filtr jsou povolené zástupné znaky: * (odpovídá nule nebo více znaků) a ? (odpovídá nule nebo jednomu znaku).
– Příklad 1: "fileName": "*.csv"
– Příklad 2: "fileName": "???20180427.txt"
Použijte ^ k úniku, pokud váš skutečný název souboru obsahuje zástupný znak nebo tento unikající znak.
Ne
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á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, ParquetFormat. Nastavte vlastnost typu ve formátu na jednu z těchto hodnot. Další informace najdete v částech Textový formát, Formát JSON, Formát Avro, Formát Orca Formát Parquet.
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ší.
Ne
useBinaryTransfer Určete, zda se má použít režim binárního přenosu. Hodnoty jsou pravdivé pro binární režim (výchozí) a false pro ASCII. Ne

Tip

Chcete-li kopírovat všechny soubory ve složce, zadejte pouze folderPath .
Pokud chcete zkopírovat jeden soubor s daným názvem, zadejte folderPath s částí složky a fileName s názvem souboru.
Chcete-li zkopírovat podmnožinu souborů ve složce, zadejte folderPath s částí složky a fileName s filtrem zástupných znaků.

Poznámka:

Pokud jste pro filtr souborů používali vlastnost FileFilter, je stále podporovaná as-is, i když se navrhuje používat novou funkci filtru přidanou do "fileName".

Příklad:

{
    "name": "FTPDataset",
    "properties": {
        "type": "FileShare",
        "linkedServiceName":{
            "referenceName": "<FTP linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "folderPath": "folder/subfolder/",
            "fileName": "myfile.csv.gz",
            "format": {
                "type": "TextFormat",
                "columnDelimiter": ",",
                "rowDelimiter": "\n"
            },
            "compression": {
                "type": "GZip",
                "level": "Optimal"
            }
        }
    }
}

Model zdroje starší verze aktivity kopírování

Vlastnost Popis Požadováno
typ Vlastnost typu zdroje aktivity kopírování musí být nastavena na: FileSystemSource. Ano
rekurzivní Určuje, zda se data čtou rekurzivně z podsložek nebo pouze ze zadané složky. Poznámka: Pokud je rekurzivní nastavená 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í), false
Ne
maxConcurrentConnections (maximální současná připojení) 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í. Ne

Příklad:

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

Seznam úložišť dat, která jsou podporována jako zdroje a cíle při kopírování, najdete v podporovaných úložištích dat.