Sdílet prostřednictvím


Kopírování dat ze serveru FTP pomocí služby Azure Data Factory nebo 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 kopírovat data ze serveru FTP. Další informace najdete v úvodních článcích pro Azure Data Factory a Synapse Analytics.

Podporované funkce

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

Podporované funkce IR
aktivita Copy (zdroj/-) (1) (2)
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ě 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ě, 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:

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

Pomocí následujícího postupu vytvořte propojenou službu k serveru FTP v uživatelském rozhraní webu Azure Portal.

  1. 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ý:

  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 Povinní účastníci
type Vlastnost typu musí být nastavena na: FtpServer. Ano
host 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.
No
enableSsl Určete, jestli se má protokol FTP používat přes kanál SSL/TLS.
Povolené hodnoty jsou true (výchozí), false.
No
enableServerCertificateValidation Určete, jestli chcete povolit ověření certifikátu TLS/SSL při použití protokolu FTP přes kanál SSL/TLS.
Povolené hodnoty jsou true (výchozí), false.
No
authenticationType Zadejte typ ověřování.
Povolené hodnoty jsou: Základní, Anonymní
Ano
userName Zadejte uživatele, který má přístup k serveru FTP. No
Heslo Zadejte 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ý ve službě Azure Key Vault. No
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ý, použije výchozí prostředí Azure Integration Runtime. No

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 v datové sadě založené na formátu se podporují následující vlastnosti:location

Vlastnost Popis Povinní účastníci
type 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. No
fileName 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. No

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 aktivity kopírování

Ú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 ve zdroji kopírování založeném na formátu jsou podporovány storeSettings následující vlastnosti:

Vlastnost Popis Povinní účastníci
type 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 ^ 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 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 ^ 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 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ů.
No
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.
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
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. 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 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 hledání čtení z určitého posunu.
Povolené hodnoty jsou false (výchozí), true.
No

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 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 čá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/File3.csv
Podsložka1/File5.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 aktivitě Vyhledávání.

Vlastnosti aktivity GetMetadata

Podrobnosti o vlastnostech najdete v aktivitě GetMetadata.

Odstranění vlastností aktivity

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

Starší 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í obsahu 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 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ů) 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ř.

Příklady: rootfolder/podsložka/, viz další příklady v příkladech filtru složek a souborů.
Ano
fileName Název nebo filtr zástupných znaků pro soubory pod zadanou "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"
Slouží ^ k řídicímu znaku, pokud má váš skutečný název souboru zástupný znak nebo tento řídicí znak uvnitř.
No
format 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 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
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. No

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á tak, jak je, zatímco se navrhuje používat novou funkci filtru přidanou do souboru 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 Povinní účastníci
type 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
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": "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 podporovaných jako zdroje a jímky aktivitou kopírování najdete v podporovaných úložištích dat.