Copiare dati da un server FTP usando Azure Data FactoryCopy data from FTP server by using Azure Data Factory

Questo articolo illustra come copiare dati da un server FTP.This article outlines how to copy data from FTP server. Per altre informazioni su Azure Data Factory, vedere l'articolo introduttivo.To learn about Azure Data Factory, read the introductory article.

Funzionalità supportateSupported capabilities

Questo connettore FTP è supportato per le attività seguenti:This FTP connector is supported for the following activities:

In particolare, il connettore FTP supporta:Specifically, this FTP connector supports:

PrerequisitiPrerequisites

Se l'archivio dati è configurato in uno dei modi seguenti, è necessario configurare un Integration Runtime self-hosted per connettersi a questo archivio dati:If your data store is configured in one of the following ways, you need to set up a Self-hosted Integration Runtime in order to connect to this data store:

  • L'archivio dati si trova all'interno di una rete locale, all'interno di una rete virtuale di Azure o all'interno di un cloud privato virtuale di Amazon.The data store is located inside an on-premises network, inside Azure Virtual Network, or inside Amazon Virtual Private Cloud.
  • L'archivio dati è un servizio dati cloud gestito in cui l'accesso è limitato agli indirizzi IP consentiti nelle regole del firewall.The data store is a managed cloud data service where the access is restricted to IPs whitelisted in the firewall rules.

Attività inizialiGet started

È possibile usare l'attività di copia con una pipeline tramite uno degli strumenti o degli SDK seguenti.You can use one of the following tools or SDKs to use the copy activity with a pipeline. Per istruzioni dettagliate, selezionare un collegamento:Select a link for step-by-step instructions:

Le sezioni seguenti riportano informazioni dettagliate sulle proprietà che vengono usate per definire entità di Data Factory specifiche per FTP.The following sections provide details about properties that are used to define Data Factory entities specific to FTP.

Proprietà del servizio collegatoLinked service properties

Per il servizio collegato di FTP sono supportate le proprietà seguenti:The following properties are supported for FTP linked service:

ProprietàProperty DescrizioneDescription ObbligatoriaRequired
typetype La proprietà type deve essere impostata su: FtpServer.The type property must be set to: FtpServer. Yes
hosthost Specificare il nome o indirizzo IP del server FTP.Specify the name or IP address of the FTP server. Yes
portport Specificare la porta su cui è in ascolto il server FTP.Specify the port on which the FTP server is listening.
I valori consentiti sono: integer; il valore predefinito è 21.Allowed values are: integer, default value is 21.
NoNo
enableSslenableSsl Specificare se usare FTP su un canale SSL/TLS.Specify whether to use FTP over an SSL/TLS channel.
I valori consentiti sono: true (predefinito), false.Allowed values are: true (default), false.
NoNo
enableServerCertificateValidationenableServerCertificateValidation Specificare se abilitare la convalida del certificato SSL del server quando si usa FTP sul canale SSL/TLS.Specify whether to enable server SSL certificate validation when you are using FTP over SSL/TLS channel.
I valori consentiti sono: true (predefinito), false.Allowed values are: true (default), false.
NoNo
authenticationTypeauthenticationType Specificare il tipo di autenticazione.Specify the authentication type.
I valori consentiti sono i seguenti: Basic, AnonymousAllowed values are: Basic, Anonymous
Yes
userNameuserName Specificare l'utente che ha accesso al server FTP.Specify the user who has access to the FTP server. NoNo
passwordpassword Specificare la password per l'utente (userName).Specify the password for the user (userName). Contrassegnare questo campo come SecureString per archiviarlo in modo sicuro in Azure Data Factory oppure fare riferimento a un segreto archiviato in Azure Key Vault.Mark this field as a SecureString to store it securely in Data Factory, or reference a secret stored in Azure Key Vault. NoNo
connectViaconnectVia Il runtime di integrazione da usare per la connessione all'archivio dati.The Integration Runtime to be used to connect to the data store. Ulteriori informazioni sono disponibili nella sezione prerequisiti .Learn more from Prerequisites section. Se non specificato, viene usato il runtime di integrazione di Azure predefinito.If not specified, it uses the default Azure Integration Runtime. NoNo

Nota

Il connettore FTP supporta l'accesso al server FTP senza crittografia o con crittografia SSL/TLS esplicita; non supporta la crittografia SSL/TLS implicita.The FTP connector supports accessing FTP server with either no encryption or explicit SSL/TLS encryption; it doesn’t support implicit SSL/TLS encryption.

Esempio 1: uso dell'autenticazione anonimaExample 1: using Anonymous authentication

{
    "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"
        }
    }
}

Esempio 2: uso dell'autenticazione di baseExample 2: using Basic authentication

{
    "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"
        }
    }
}

Proprietà del set di datiDataset properties

Per un elenco completo delle sezioni e delle proprietà disponibili per la definizione dei set di dati, vedere l'articolo Set di dati.For a full list of sections and properties available for defining datasets, see the Datasets article.

Set di dati parquet, delimitato di testo, JSON, avro e Binary FormatParquet, delimited text, JSON, Avro and binary format dataset

Per copiare dati da parquet, testo delimitato, JSON, avro e formato binario, vedere l'articolo formato parquet, formato testo delimitato, formato avro e formato binario su DataSet basato su formato e impostazioni supportate.To copy data from Parquet, delimited text, JSON, Avro and binary format, refer to Parquet format, Delimited text format, Avro format and Binary format article on format-based dataset and supported settings. Le proprietà seguenti sono supportate per FTP location in impostazioni nel set di dati basato su formato:The following properties are supported for FTP under location settings in format-based dataset:

ProprietàProperty DescrizioneDescription ObbligatoriaRequired
typetype La proprietà location Type nel set di dati deve essere impostata su FtpServerLocation.The type property under location in dataset must be set to FtpServerLocation. YesYes
folderPathfolderPath Percorso della cartella.The path to folder. Se si vuole usare il carattere jolly per filtrare la cartella, ignorare questa impostazione e specificare nelle impostazioni dell'origine dell'attività.If you want to use wildcard to filter folder, skip this setting and specify in activity source settings. NoNo
fileNamefileName Nome del file sotto il folderPath specificato.The file name under the given folderPath. Se si vuole usare il carattere jolly per filtrare i file, ignorare questa impostazione e specificare nelle impostazioni dell'origine dell'attività.If you want to use wildcard to filter files, skip this setting and specify in activity source settings. NoNo

Nota

Il set di dati di tipo FileShare con formato parquet/testo indicato nella sezione successiva è ancora supportato così com'è per l'attività di copia/ricerca/GetMetadata per la compatibilità con le versioni precedenti.FileShare type dataset with Parquet/Text format mentioned in next section is still supported as-is for Copy/Lookup/GetMetadata activity for backward compatibility. Si consiglia di usare questo nuovo modello in futuro e l'interfaccia utente di creazione di ADF ha cambiato la generazione di questi nuovi tipi.You are suggested to use this new model going forward, and the ADF authoring UI has switched to generating these new types.

Esempio:Example:

{
    "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"
        }
    }
}

Set di dati di altri formatiOther format dataset

Per copiare dati da FTP nel formato ORC, sono supportate le proprietà seguenti:To copy data from FTP in ORC format, the following properties are supported:

ProprietàProperty DescrizioneDescription ObbligatoriaRequired
typetype La proprietà type del set di dati deve essere impostata su: FileShareThe type property of the dataset must be set to: FileShare Yes
folderPathfolderPath Percorso della cartella.Path to the folder. I filtri con caratteri jolly sono supportati, i caratteri jolly consentiti sono: * (corrispondenza di zero o più caratteri) e ? (corrispondenza di zero caratteri o di un carattere singolo). Usare ^ per applicare una sequenza di escape se il nome effettivo della cartella include caratteri jolly o tale carattere di escape.Wildcard filter is supported, allowed wildcards are: * (matches zero or more characters) and ? (matches zero or single character); use ^ to escape if your actual folder name has wildcard or this escape char inside.

Esempi: cartellaradice/sottocartella/. Vedere altri esempi in Esempi di filtro file e cartelle.Examples: rootfolder/subfolder/, see more examples in Folder and file filter examples.
Yes
fileNamefileName Filtro con nome o carattere jolly per i file nell'elemento "folderPath" specificato.Name or wildcard filter for the file(s) under the specified "folderPath". Se non si specifica alcun valore per questa proprietà, il set di dati punta a tutti i file nella cartella.If you don't specify a value for this property, the dataset points to all files in the folder.

Per un filtro, i caratteri jolly consentiti sono: * (corrispondenza di zero o più caratteri) e ? (corrispondenza di zero caratteri o di un carattere singolo).For filter, allowed wildcards are: * (matches zero or more characters) and ? (matches zero or single character).
- Esempio 1: "fileName": "*.csv"- Example 1: "fileName": "*.csv"
- Esempio 2: "fileName": "???20180427.txt"- Example 2: "fileName": "???20180427.txt"
Usare ^ per il carattere escape se il nome effettivo del file include caratteri jolly o escape.Use ^ to escape if your actual file name has wildcard or this escape char inside.
NoNo
formatformat Per copiare i file così come sono tra archivi basati su file (copia binaria), è possibile ignorare la sezione del formato nelle definizioni dei set di dati di input e di output.If you want to copy files as-is between file-based stores (binary copy), skip the format section in both input and output dataset definitions.

Se si vogliono analizzare file con un formato specifico, sono supportati i tipi di formato file seguenti: TextFormat, JsonFormat, AvroFormat, OrcFormat, ParquetFormat.If you want to parse files with a specific format, the following file format types are supported: TextFormat, JsonFormat, AvroFormat, OrcFormat, ParquetFormat. Impostare la proprietà type nell'area format su uno di questi valori.Set the type property under format to one of these values. Per altre informazioni, vedere le sezioni TextFormat, JsonFormat, AvroFormat, OrcFormat e ParquetFormat.For more information, see Text Format, Json Format, Avro Format, Orc Format, and Parquet Format sections.
No (solo per uno scenario di copia binaria)No (only for binary copy scenario)
compressioncompression Specificare il tipo e il livello di compressione dei dati.Specify the type and level of compression for the data. Per altre informazioni, vedere l'articolo sui formati di file supportati e i codec di compressione.For more information, see Supported file formats and compression codecs.
I tipi supportati sono: GZip, Deflate, BZip2 e ZipDeflate.Supported types are: GZip, Deflate, BZip2, and ZipDeflate.
I livelli supportati sono: Optimal (Ottimale) e Fastest (Più veloce).Supported levels are: Optimal and Fastest.
NoNo
useBinaryTransferuseBinaryTransfer Specificare se usare la modalità di trasferimento binario.Specify whether to use the binary transfer mode. I valori sono true per la modalità binaria (predefinita) e false per ASCII.The values are true for binary mode (default), and false for ASCII. NoNo

Suggerimento

Per copiare tutti i file in una cartella, specificare solo folderPath.To copy all files under a folder, specify folderPath only.
Per copiare un singolo file con un determinato nome, specificare folderPath con il percorso della cartella e fileName con il nome del file.To copy a single file with a given name, specify folderPath with folder part and fileName with file name.
Per copiare un subset di file in una cartella, specificare folderPath con il percorso della cartella e fileName con il filtro con caratteri jolly.To copy a subset of files under a folder, specify folderPath with folder part and fileName with wildcard filter.

Nota

Se si usa la proprietà "fileFilter" per il filtro dei file, è comunque supportata senza alcuna modifica, mentre in futuro verrà consigliato di usare la nuova funzionalità di filtro aggiunta a "fileName".If you were using "fileFilter" property for file filter, it is still supported as-is, while you are suggested to use the new filter capability added to "fileName" going forward.

Esempio:Example:

{
    "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"
            }
        }
    }
}

Proprietà dell'attività di copiaCopy activity properties

Per un elenco completo delle sezioni e delle proprietà disponibili per la definizione delle attività, vedere l'articolo sulle pipeline.For a full list of sections and properties available for defining activities, see the Pipelines article. Questa sezione presenta un elenco delle proprietà supportate dall'origine FTP.This section provides a list of properties supported by FTP source.

FTP come origineFTP as source

Parquet, delimitato testo, JSON, avro e origine del formato binarioParquet, delimited text, JSON, Avro and binary format source

Per copiare dati da parquet, testo delimitato, JSON, avro e formato binario, vedere l'articolo formato parquet, formato testo delimitato, formato avro e formato binario in origine dell'attività di copia basata su formato e supportato Impostazioni.To copy data from Parquet, delimited text, JSON, Avro and binary format, refer to Parquet format, Delimited text format, Avro format and Binary format article on format-based copy activity source and supported settings. Le proprietà seguenti sono supportate per FTP storeSettings in impostazioni in origine copia basata sul formato:The following properties are supported for FTP under storeSettings settings in format-based copy source:

ProprietàProperty DescrizioneDescription ObbligatoriaRequired
typetype La proprietà Type in storeSettings deve essere impostata su FtpReadSetting.The type property under storeSettings must be set to FtpReadSetting. Yes
recursiverecursive Indica se i dati vengono letti in modo ricorsivo dalle cartelle secondarie o solo dalla cartella specificata.Indicates whether the data is read recursively from the subfolders or only from the specified folder. Si noti che quando la proprietà recursive è impostata su true e il sink è un archivio basato su file, una cartella o una sottocartella vuota non viene copiata o creata nel sink.Note that when recursive is set to true and the sink is a file-based store, an empty folder or subfolder isn't copied or created at the sink. I valori consentiti sono true (predefinito) e false.Allowed values are true (default) and false. NoNo
wildcardFolderPathwildcardFolderPath Percorso della cartella con caratteri jolly per filtrare le cartelle di origine.The folder path with wildcard characters to filter source folders.
I caratteri jolly consentiti sono: * (corrisponde a zero o più caratteri) e ? (corrisponde a zero caratteri o a un carattere singolo). Usare ^ come carattere di escape se il nome effettivo della cartella include caratteri jolly o questo carattere di escape.Allowed wildcards are: * (matches zero or more characters) and ? (matches zero or single character); use ^ to escape if your actual folder name has wildcard or this escape char inside.
Vedere altri esempi in Esempi di filtro file e cartelle.See more examples in Folder and file filter examples.
NoNo
wildcardFileNamewildcardFileName Nome file con caratteri jolly sotto il folderPath/wildcardFolderPath specificato per filtrare i file di origine.The file name with wildcard characters under the given folderPath/wildcardFolderPath to filter source files.
I caratteri jolly consentiti sono: * (corrisponde a zero o più caratteri) e ? (corrisponde a zero caratteri o a un carattere singolo). Usare ^ come carattere di escape se il nome effettivo della cartella include caratteri jolly o questo carattere di escape.Allowed wildcards are: * (matches zero or more characters) and ? (matches zero or single character); use ^ to escape if your actual folder name has wildcard or this escape char inside. Vedere altri esempi in Esempi di filtro file e cartelle.See more examples in Folder and file filter examples.
Sì se fileName non è specificato nel DataSetYes if fileName is not specified in dataset
modifiedDatetimeStartmodifiedDatetimeStart Filtro di file basato sull'attributo: Ultima modifica.Files filter based on the attribute: Last Modified. I file vengono selezionati se l'ora dell'ultima modifica è inclusa nell'intervallo di tempo tra modifiedDatetimeStart e modifiedDatetimeEnd.The files will be selected if their last modified time are within the time range between modifiedDatetimeStart and modifiedDatetimeEnd. L'ora viene applicata con il fuso orario UTC e il formato "2018-12-01T05:00:00Z".The time is applied to UTC time zone in the format of "2018-12-01T05:00:00Z".
Le proprietà possono essere NULL, a indicare che al set di dati non viene applicato alcun filtro di attributo di file.The properties can be NULL which mean no file attribute filter will be applied to the dataset. Quando modifiedDatetimeStart ha un valore datetime ma modifiedDatetimeEnd è NULL, vengono selezionati i file il cui ultimo attributo modificato è maggiore o uguale al valore datetime.When modifiedDatetimeStart has datetime value but modifiedDatetimeEnd is NULL, it means the files whose last modified attribute is greater than or equal with the datetime value will be selected. Quando modifiedDatetimeEnd ha un valore datetime ma modifiedDatetimeStart è NULL vengono selezionati i file il cui ultimo attributo modificato è minore del valore datetime.When modifiedDatetimeEnd has datetime value but modifiedDatetimeStart is NULL, it means the files whose last modified attribute is less than the datetime value will be selected.
NoNo
modifiedDatetimeEndmodifiedDatetimeEnd Come sopra.Same as above. NoNo
useBinaryTransferuseBinaryTransfer Specificare se utilizzare la modalità di trasferimento binario per gli archivi FTP.Specify whether to use the binary transfer mode for FTP stores. I valori sono true per la modalità binaria (predefinita) e false per ASCII.The values are true for binary mode (default), and false for ASCII. NoNo
maxConcurrentConnectionsmaxConcurrentConnections Numero di connessioni simultanee per la connessione all'archivio di archiviazione.The number of the connections to connect to storage store concurrently. Specificare solo quando si desidera limitare la connessione simultanea all'archivio dati.Specify only when you want to limit the concurrent connection to the data store. N.No

Nota

Per il formato di testo parquet/delimitato, l'origine dell'attività di copia di tipo FileSystemSource citata nella sezione successiva è ancora supportata così com'è per la compatibilità con le versioni precedenti.For Parquet/delimited text format, FileSystemSource type copy activity source mentioned in next section is still supported as-is for backward compatibility. Si consiglia di usare questo nuovo modello in futuro e l'interfaccia utente di creazione di ADF ha cambiato la generazione di questi nuovi tipi.You are suggested to use this new model going forward, and the ADF authoring UI has switched to generating these new types.

Esempio:Example:

"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": "DelimitedTextReadSetting",
                    "skipLineCount": 10
                },
                "storeSettings":{
                    "type": "FtpReadSetting",
                    "recursive": true,
                    "wildcardFolderPath": "myfolder*A",
                    "wildcardFileName": "*.csv"
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Altra origine del formatoOther format source

Per copiare dati da FTP nel formato ORC, nella sezione origine dell'attività di copia sono supportate le proprietà seguenti:To copy data from FTP in ORC format, the following properties are supported in the copy activity source section:

ProprietàProperty DescrizioneDescription ObbligatoriaRequired
typetype La proprietà type dell'origine di attività di copia deve essere impostata su: FileSystemSourceThe type property of the copy activity source must be set to: FileSystemSource Yes
recursiverecursive Indica se i dati vengono letti in modo ricorsivo dalle cartelle secondarie o solo dalla cartella specificata.Indicates whether the data is read recursively from the sub folders or only from the specified folder. Si noti che se recursive è impostata su true e il sink è un archivio basato su file, la cartella o la sottocartella vuota non verrà copiata o creata nel sink.Note when recursive is set to true and sink is file-based store, empty folder/sub-folder will not be copied/created at sink.
I valori consentiti sono: true (predefinito), falseAllowed values are: true (default), false
NoNo
maxConcurrentConnectionsmaxConcurrentConnections Numero di connessioni simultanee per la connessione all'archivio di archiviazione.The number of the connections to connect to storage store concurrently. Specificare solo quando si desidera limitare la connessione simultanea all'archivio dati.Specify only when you want to limit the concurrent connection to the data store. NoNo

Esempio:Example:

"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>"
            }
        }
    }
]

Esempi di filtro file e cartelleFolder and file filter examples

Questa sezione descrive il comportamento risultante del percorso cartella e del nome del file con i filtri con caratteri jolly.This section describes the resulting behavior of the folder path and file name with wildcard filters.

folderPathfolderPath fileNamefileName recursiverecursive Struttura delle cartelle di origine e risultato del filtro (i file in grassetto sono stati recuperati)Source folder structure and filter result (files in bold are retrieved)
Folder* (vuoto, usare valore predefinito)(empty, use default) falsefalse FolderAFolderA
    File1.csv    File1.csv
    File2.json    File2.json
    Sottocartella1    Subfolder1
        File3.csv        File3.csv
        File4.json        File4.json
        File5.csv        File5.csv
AltraCartellaBAnotherFolderB
    File6.csv    File6.csv
Folder* (vuoto, usare valore predefinito)(empty, use default) truetrue FolderAFolderA
    File1.csv    File1.csv
    File2.json    File2.json
    Sottocartella1    Subfolder1
        File3.csv        File3.csv
        File4.json        File4.json
        File5.csv        File5.csv
AltraCartellaBAnotherFolderB
    File6.csv    File6.csv
Folder* *.csv falsefalse FolderAFolderA
    File1.csv    File1.csv
    File2.json    File2.json
    Sottocartella1    Subfolder1
        File3.csv        File3.csv
        File4.json        File4.json
        File5.csv        File5.csv
AltraCartellaBAnotherFolderB
    File6.csv    File6.csv
Folder* *.csv truetrue FolderAFolderA
    File1.csv    File1.csv
    File2.json    File2.json
    Sottocartella1    Subfolder1
        File3.csv        File3.csv
        File4.json        File4.json
        File5.csv        File5.csv
AltraCartellaBAnotherFolderB
    File6.csv    File6.csv

Proprietà attività di ricercaLookup activity properties

Per informazioni dettagliate sulle proprietà, controllare l' attività di ricerca.To learn details about the properties, check Lookup activity.

Proprietà dell'attività GetMetadataGetMetadata activity properties

Per informazioni dettagliate sulle proprietà, controllare l' attività GetMetadataTo learn details about the properties, check GetMetadata activity

Elimina proprietà attivitàDelete activity properties

Per informazioni dettagliate sulle proprietà, controllare l' attività di eliminazioneTo learn details about the properties, check Delete activity

Passaggi successiviNext steps

Per un elenco degli archivi dati supportati come origini o sink dall'attività di copia in Azure Data Factory, vedere gli archivi dati supportati.For a list of data stores supported as sources and sinks by the copy activity in Azure Data Factory, see supported data stores.