Copiar dados de e para o servidor SFTP usando Azure Data FactoryCopy data from and to the SFTP server by using Azure Data Factory

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Este artigo descreve como copiar dados de e para o servidor FTP seguro (SFTP).This article outlines how to copy data from and to the secure FTP (SFTP) server. Para saber mais sobre o Azure Data Factory, leia as artigo introdutório.To learn about Azure Data Factory, read the introductory article.

Funcionalidades com suporteSupported capabilities

O conector SFTP tem suporte para as seguintes atividades:The SFTP connector is supported for the following activities:

Especificamente, o conector SFTP dá suporte a:Specifically, the SFTP connector supports:

Pré-requisitosPrerequisites

Se o armazenamento de dados estiver localizado dentro de uma rede local, em uma rede virtual do Azure ou na Amazon Virtual Private Cloud, você precisará configurar um runtime de integração auto-hospedada para se conectar a ele.If your data store is located inside an on-premises network, an Azure virtual network, or Amazon Virtual Private Cloud, you need to configure a self-hosted integration runtime to connect to it.

Por outro lado, se o armazenamento de dados for um serviço de dados de nuvem gerenciado, você poderá usar o Azure Integration Runtime.Alternatively, if your data store is a managed cloud data service, you can use Azure integration runtime. Se o acesso for restrito aos IPs que estão aprovados nas regras de firewall, você poderá adicionar IPs do Azure Integration Runtime à lista de permissões.If the access is restricted to IPs that are approved in the firewall rules, you can add Azure Integration Runtime IPs into the allow list.

Para obter mais informações sobre os mecanismos de segurança de rede e as opções compatíveis com o Data Factory, consulte Estratégias de acesso a dados.For more information about the network security mechanisms and options supported by Data Factory, see Data access strategies.

IntroduçãoGet started

Para executar a atividade de Cópia com um pipeline, será possível usar as ferramentas ou os SDKs abaixo:To perform the Copy activity with a pipeline, you can use one of the following tools or SDKs:

As seções que se seguem fornecem detalhes sobre as propriedades que são usadas para definir entidades do Data Factory específicas ao SFTP.The following sections provide details about properties that are used to define Data Factory entities specific to SFTP.

Propriedades do serviço vinculadoLinked service properties

As propriedades a seguir têm suporte para o serviço vinculado do SFTP:The following properties are supported for the SFTP linked service:

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A propriedade Type deve ser definida como SFTP.The type property must be set to Sftp. SimYes
hosthost O nome ou endereço IP do servidor SFTP.The name or IP address of the SFTP server. SimYes
portaport A porta na qual o servidor SFTP está escutando.The port on which the SFTP server is listening.
O valor permitido é um inteiro e o valor padrão é 22.The allowed value is an integer, and the default value is 22.
NãoNo
skipHostKeyValidationskipHostKeyValidation Especifique se deseja ignorar a validação da chave de host.Specify whether to skip host key validation.
Os valores permitidos são true e false (padrão).Allowed values are true and false (default).
NãoNo
hostKeyFingerprinthostKeyFingerprint Especifique a impressão digital da chave do host.Specify the fingerprint of the host key. Sim, se "skipHostKeyValidation" for definido como false.Yes, if the "skipHostKeyValidation" is set to false.
authenticationTypeauthenticationType Especifique o tipo de autenticação.Specify the authentication type.
Os valores permitidos são Basic e SshPublicKey.Allowed values are Basic and SshPublicKey. Para obter mais propriedades, consulte a seção usar autenticação básica .For more properties, see the Use basic authentication section. Para obter exemplos de JSON, consulte a seção usar autenticação de chave pública SSH .For JSON examples, see the Use SSH public key authentication section.
SimYes
connectViaconnectVia O runtime de integração a ser usado para se conectar ao armazenamento de dados.The integration runtime to be used to connect to the data store. Para saber mais, consulte a seção pré-requisitos .To learn more, see the Prerequisites section. Se o Integration Runtime não for especificado, o serviço usará o Azure Integration Runtime padrão.If the integration runtime isn't specified, the service uses the default Azure Integration Runtime. NãoNo

Usar autenticação básicaUse basic authentication

Para usar a autenticação básica, defina a propriedade authenticationType como básica e especifique as propriedades a seguir, além das propriedades genéricas do conector SFTP que foram introduzidas na seção anterior:To use basic authentication, set the authenticationType property to Basic, and specify the following properties in addition to the SFTP connector generic properties that were introduced in the preceding section:

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
userNameuserName O usuário que tem acesso ao servidor SFTP.The user who has access to the SFTP server. SimYes
passwordpassword A senha do usuário (userName).The password for the user (userName). Marque este campo como uma SecureString para armazená-lo com segurança em seu data factory ou faça referência a um segredo armazenado em um cofre de chaves do Azure.Mark this field as a SecureString to store it securely in your data factory, or reference a secret stored in an Azure key vault. SimYes

Exemplo:Example:

{
    "name": "SftpLinkedService",
    "type": "linkedservices",
    "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"
        }
    }
}

Usar autenticação de chave pública SSHUse SSH public key authentication

Para usar a chave pública SSH, defina a propriedade "authenticationType" como SshPublicKey e especifique as propriedades a seguir, além das que são genéricas do conector SFTP apresentadas na última seção:To use SSH public key authentication, set "authenticationType" property as SshPublicKey, and specify the following properties besides the SFTP connector generic ones introduced in the last section:

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
userNameuserName O usuário que tem acesso ao servidor SFTP.The user who has access to the SFTP server. SimYes
privateKeyPathprivateKeyPath Especifique o caminho absoluto para o arquivo de chave privada que o Integration Runtime pode acessar.Specify the absolute path to the private key file that the integration runtime can access. Isso se aplica somente quando o tipo auto-hospedado do tempo de execução de integração é especificado em "connectVia".This applies only when the self-hosted type of integration runtime is specified in "connectVia." Especifique privateKeyPath ou privateKeyContent.Specify either privateKeyPath or privateKeyContent.
privateKeyContentprivateKeyContent Conteúdo da chave privada SSH codificada em Base64.Base64 encoded SSH private key content. A chave privada SSH deve estar no formato OpenSSH.SSH private key should be OpenSSH format. Marque este campo como uma SecureString para armazená-lo com segurança em seu data factory ou faça referência a um segredo armazenado em um cofre de chaves do Azure.Mark this field as a SecureString to store it securely in your data factory, or reference a secret stored in an Azure key vault. Especifique privateKeyPath ou privateKeyContent.Specify either privateKeyPath or privateKeyContent.
SenhapassPhrase Especifique a frase secreta ou a senha para descriptografar a chave privada se o arquivo de chave ou o conteúdo da chave for protegido por uma frase secreta.Specify the pass phrase or password to decrypt the private key if the key file or the key content is protected by a pass phrase. Marque este campo como uma SecureString para armazená-lo com segurança em seu data factory ou faça referência a um segredo armazenado em um cofre de chaves do Azure.Mark this field as a SecureString to store it securely in your data factory, or reference a secret stored in an Azure key vault. Sim, se o arquivo de chave privada ou o conteúdo da chave for protegido por uma frase secreta.Yes, if the private key file or the key content is protected by a pass phrase.

Observação

O conector SFTP dá suporte a uma chave RSA/DSA OpenSSH.The SFTP connector supports an RSA/DSA OpenSSH key. Verifique se o conteúdo do arquivo de chave começa com "-----BEGIN [RSA/DSA]-----chave privada".Make sure that your key file content starts with "-----BEGIN [RSA/DSA] PRIVATE KEY-----". Se o arquivo de chave privada for um arquivo de formato PPK, use a ferramenta de saída para converter de PPK para o formato OpenSSH.If the private key file is a PPK-format file, use the PuTTY tool to convert from PPK to OpenSSH format.

Exemplo 1: Autenticação SshPublicKey usando o filePath da chave privadaExample 1: SshPublicKey authentication using private key filePath

{
    "name": "SftpLinkedService",
    "type": "Linkedservices",
    "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"
        }
    }
}

Exemplo 2: Autenticação SshPublicKey usando o conteúdo da chave privadaExample 2: SshPublicKey authentication using private key content

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

Propriedades do conjunto de dadosDataset properties

Para obter uma lista completa das seções e propriedades que estão disponíveis para definir os conjuntos de valores, consulte o artigo conjuntos de valores .For a full list of sections and properties that are available for defining datasets, see the Datasets article.

O Azure Data Factory é compatível com os formatos de arquivo a seguir.Azure Data Factory supports the following file formats. Confira cada artigo para obter configurações baseadas em formato.Refer to each article for format-based settings.

As propriedades a seguir têm suporte para SFTP em location configurações no conjunto de entrada baseado em formato:The following properties are supported for SFTP under location settings in the format-based dataset:

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A propriedade Type em location DataSet deve ser definida como SftpLocation.The type property under location in dataset must be set to SftpLocation. SimYes
folderPathfolderPath O caminho para a pasta.The path to the folder. Se você quiser usar um curinga para filtrar a pasta, ignore essa configuração e especifique o caminho nas configurações de origem da atividade.If you want to use a wildcard to filter the folder, skip this setting and specify the path in activity source settings. NãoNo
fileNamefileName O nome do arquivo sob o folderPath especificado.The file name under the specified folderPath. Se você quiser usar um curinga para filtrar arquivos, ignore essa configuração e especifique o nome do arquivo nas configurações de origem da atividade.If you want to use a wildcard to filter files, skip this setting and specify the file name in activity source settings. NãoNo

Exemplo:Example:

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

Propriedades da atividade de cópiaCopy activity properties

Para obter uma lista completa de seções e propriedades que estão disponíveis para definir atividades, consulte o artigo pipelines .For a full list of sections and properties that are available for defining activities, see the Pipelines article. Esta seção fornece uma lista das propriedades com suporte pela fonte SFTP.This section provides a list of properties that are supported by the SFTP source.

SFTP como fonteSFTP as source

O Azure Data Factory é compatível com os formatos de arquivo a seguir.Azure Data Factory supports the following file formats. Confira cada artigo para obter configurações baseadas em formato.Refer to each article for format-based settings.

As propriedades a seguir têm suporte para SFTP sob as storeSettings configurações na fonte de cópia baseada em formato:The following properties are supported for SFTP under the storeSettings settings in the format-based Copy source:

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A propriedade Type em storeSettings deve ser definida como SftpReadSettings.The type property under storeSettings must be set to SftpReadSettings. SimYes
*Localize os arquivos a serem copiados _*Locate the files to copy _
OPÇÃO 1: caminho estáticoOPTION 1: static path
Copiar do caminho de pasta/arquivo especificado no conjunto de um.Copy from the folder/file path that's specified in the dataset. Se quiser copiar todos os arquivos de uma pasta, especifique também wildcardFileName como _.If you want to copy all files from a folder, additionally specify wildcardFileName as _.
OPÇÃO 2: curingaOPTION 2: wildcard
- wildcardFolderPath- wildcardFolderPath
O caminho da pasta com caracteres curinga para filtrar as pastas de origem.The folder path with wildcard characters to filter source folders.
Curingas permitidos são * (corresponde a zero ou mais caracteres) e ? (corresponde a zero ou um único caractere); use ^ para escapar se o nome real da pasta tiver um caractere curinga ou esse caractere de escape dentro.Allowed wildcards are * (matches zero or more characters) and ? (matches zero or a single character); use ^ to escape if your actual folder name has a wildcard or this escape char inside.
Para obter mais exemplos, consulte exemplos de filtro de pasta e arquivo.For more examples, see Folder and file filter examples.
NãoNo
OPÇÃO 2: curingaOPTION 2: wildcard
- wildcardFileName- wildcardFileName
O nome do arquivo com caracteres curinga no folderPath/wildcardFolderPath especificado para filtrar os arquivos de origem.The file name with wildcard characters under the specified folderPath/wildcardFolderPath to filter source files.
Curingas permitidos são * (corresponde a zero ou mais caracteres) e ? (corresponde a zero ou um único caractere); use ^ para escapar se o nome de arquivo real tiver curinga ou este caractere de escape dentro.Allowed wildcards are * (matches zero or more characters) and ? (matches zero or a single character); use ^ to escape if your actual file name has wildcard or this escape char inside. Para obter mais exemplos, consulte exemplos de filtro de pasta e arquivo.For more examples, see Folder and file filter examples.
SimYes
OPÇÃO 3: uma lista de arquivosOPTION 3: a list of files
- fileListPath- fileListPath
Indica a cópia de um conjunto de arquivos especificado.Indicates to copy a specified file set. Aponte para um arquivo de texto que inclui uma lista de arquivos que você deseja copiar (um arquivo por linha, com o caminho relativo para o caminho configurado no conjunto de um).Point to a text file that includes a list of files you want to copy (one file per line, with the relative path to the path configured in the dataset).
Ao usar essa opção, não especifique o nome do arquivo no conjunto de um.When you use this option, don't specify the file name in the dataset. Para obter mais exemplos, consulte exemplos de lista de arquivos.For more examples, see File list examples.
NãoNo
*Configurações adicionais _*Additional settings _
recursivarecursive Indica se os dados são lidos recursivamente das subpastas ou somente da pasta especificada.Indicates whether the data is read recursively from the subfolders or only from the specified folder. Quando recursiva é definida como true e o coletor é um armazenamento baseado em arquivo, uma pasta vazia ou subpasta não é copiada ou criada no coletor.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.
Os valores permitidos são _true * (padrão) e false.Allowed values are _true* (default) and false.
Essa propriedade não se aplica quando você configura fileListPath.This property doesn't apply when you configure fileListPath.
NãoNo
deleteFilesAfterCompletiondeleteFilesAfterCompletion Indica se os arquivos binários serão excluídos do repositório de origem após a movimentação com êxito para o repositório de destino.Indicates whether the binary files will be deleted from source store after successfully moving to the destination store. A exclusão do arquivo é por arquivo, portanto, quando a atividade de cópia falhar, você verá que alguns arquivos já foram copiados para o destino e excluídos da origem, enquanto outros ainda permanecem no repositório de origem.The file deletion is per file, so when copy activity fails, you will see some files have already been copied to the destination and deleted from source, while others are still remaining on source store.
Esta propriedade só é válida no cenário de cópia de arquivos binários.This property is only valid in binary files copy scenario. O valor padrão: false.The default value: false.
NãoNo
modifiedDatetimeStartmodifiedDatetimeStart Os arquivos são filtrados com base no atributo modificado pela última vez.Files are filtered based on the attribute Last Modified.
Os arquivos serão selecionados se a hora da última modificação estiver dentro do intervalo de modifiedDatetimeStart a modifiedDatetimeEnd .The files are selected if their last modified time is within the range of modifiedDatetimeStart to modifiedDatetimeEnd. A hora é aplicada ao fuso horário UTC no formato 2018-12-01T05:00:00Z.The time is applied to the UTC time zone in the format of 2018-12-01T05:00:00Z.
As propriedades podem ser nulas, o que significa que nenhum filtro de atributo de arquivo é aplicado ao conjunto de valores.The properties can be NULL, which means that no file attribute filter is applied to the dataset. Quando modifiedDatetimeStart tem um valor de DateTime, mas modifiedDatetimeEnd é nulo, significa que os arquivos cujo último atributo modificado é maior ou igual ao valor de DateTime são selecionados.When modifiedDatetimeStart has a datetime value but modifiedDatetimeEnd is NULL, it means that the files whose last modified attribute is greater than or equal to the datetime value are selected. Quando modifiedDatetimeEnd tem um valor de DateTime, mas modifiedDatetimeStart é nulo, significa que os arquivos cujo último atributo modificado é menor que o valor de data e hora são selecionados.When modifiedDatetimeEnd has a datetime value but modifiedDatetimeStart is NULL, it means that the files whose last modified attribute is less than the datetime value are selected.
Essa propriedade não se aplica quando você configura fileListPath.This property doesn't apply when you configure fileListPath.
NãoNo
modifiedDatetimeEndmodifiedDatetimeEnd Mesmo que acima.Same as above. NãoNo
enablePartitionDiscoveryenablePartitionDiscovery Para arquivos que são particionados, especifique se deseja analisar as partições do caminho do arquivo e adicioná-las como colunas de origem adicionais.For files that are partitioned, specify whether to parse the partitions from the file path and add them as additional source columns.
Os valores permitidos são false (padrão) e true.Allowed values are false (default) and true.
NãoNo
partitionRootPathpartitionRootPath Quando a descoberta de partição estiver habilitada, especifique o caminho raiz absoluto para ler as pastas particionadas como colunas de dados.When partition discovery is enabled, specify the absolute root path in order to read partitioned folders as data columns.

Se não for especificado, por padrão,If it is not specified, by default,
-Quando você usa o caminho do arquivo no conjunto de programas ou na lista de arquivos na origem, o caminho raiz da partição é o caminho configurado no conjunto de um.- When you use file path in dataset or list of files on source, partition root path is the path configured in dataset.
-Quando você usa o filtro de pasta curinga, o caminho raiz da partição é o subcaminho antes do primeiro caractere curinga.- When you use wildcard folder filter, partition root path is the sub-path before the first wildcard.

Por exemplo, supondo que você configure o caminho no conjunto de um como "raiz/pasta/ano = 2020/mês = 08/dia = 27":For example, assuming you configure the path in dataset as "root/folder/year=2020/month=08/day=27":
-Se você especificar o caminho raiz da partição como "raiz/pasta/ano = 2020", a atividade de cópia irá gerar mais duas colunas month e day com o valor "08" e "27", respectivamente, além das colunas dentro dos arquivos.- If you specify partition root path as "root/folder/year=2020", copy activity will generate two more columns month and day with value "08" and "27" respectively, in addition to the columns inside the files.
-Se o caminho raiz da partição não for especificado, nenhuma coluna extra será gerada.- If partition root path is not specified, no extra column will be generated.
NãoNo
maxConcurrentConnectionsmaxConcurrentConnections O número de conexões que podem se conectar ao armazenamento de armazenamento simultaneamente.The number of connections that can connect to the storage store concurrently. Especifique um valor somente quando desejar limitar a conexão simultânea com o armazenamento de dados.Specify a value only when you want to limit the concurrent connection to the data store. NãoNo

Exemplo:Example:

"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"
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

SFTP como um coletorSFTP as a sink

O Azure Data Factory é compatível com os formatos de arquivo a seguir.Azure Data Factory supports the following file formats. Confira cada artigo para obter configurações baseadas em formato.Refer to each article for format-based settings.

As propriedades a seguir têm suporte para SFTP em storeSettings configurações em um coletor de cópia com base em formato:The following properties are supported for SFTP under storeSettings settings in a format-based Copy sink:

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A propriedade Type em storeSettings deve ser definida como SftpWriteSettings.The type property under storeSettings must be set to SftpWriteSettings. SimYes
copyBehaviorcopyBehavior Define o comportamento de cópia quando a fonte for de arquivos de um armazenamento de dados baseado em arquivo.Defines the copy behavior when the source is files from a file-based data store.

Valores permitidos são:Allowed values are:
– PreserveHierarchy (padrão): Preserva a hierarquia de arquivos na pasta de destino.- PreserveHierarchy (default): Preserves the file hierarchy in the target folder. O caminho relativo do arquivo de origem para a pasta de origem é idêntico ao caminho relativo do arquivo de destino para a pasta de destino.The relative path of the source file to the source folder is identical to the relative path of the target file to the target folder.
– FlattenHierarchy: Todos os arquivos da pasta de origem estão no primeiro nível da pasta de destino.- FlattenHierarchy: All files from the source folder are in the first level of the target folder. Os arquivos de destino têm os nomes gerados automaticamente.The target files have autogenerated names.
– MergeFiles: Mescla todos os arquivos da pasta de origem em um arquivo.- MergeFiles: Merges all files from the source folder to one file. Se o nome do arquivo for especificado, o nome do arquivo mesclado será o nome especificado.If the file name is specified, the merged file name is the specified name. Caso contrário, ele será um nome de arquivo gerado automaticamente.Otherwise, it's an autogenerated file name.
NãoNo
maxConcurrentConnectionsmaxConcurrentConnections O número de conexões que podem se conectar ao armazenamento de armazenamento simultaneamente.The number of connections that can connect to the storage store concurrently. Especifique um valor somente quando desejar limitar a conexão simultânea com o armazenamento de dados.Specify a value only when you want to limit the concurrent connection to the data store. NãoNo
useTempFileRenameuseTempFileRename Indique se deseja carregar arquivos temporários e renomeá-los ou gravar diretamente na pasta de destino ou no local do arquivo.Indicate whether to upload to temporary files and rename them, or directly write to the target folder or file location. Por padrão, Azure Data Factory primeiro grava em arquivos temporários e, em seguida, os renomeia quando o carregamento é concluído.By default, Azure Data Factory first writes to temporary files and then renames them when the upload is finished. Essa sequência ajuda a (1) evitar conflitos que podem resultar em um arquivo corrompido se você tiver outros processos gravando no mesmo arquivo e (2) verificar se a versão original do arquivo existe durante a transferência.This sequence helps to (1) avoid conflicts that might result in a corrupted file if you have other processes writing to the same file, and (2) ensure that the original version of the file exists during the transfer. Se o seu servidor SFTP não oferecer suporte a uma operação de renomeação, desabilite essa opção e verifique se você não tem uma gravação simultânea no arquivo de destino.If your SFTP server doesn't support a rename operation, disable this option and make sure that you don't have a concurrent write to the target file. Para obter mais informações, consulte a dica de solução de problemas no final desta tabela.For more information, see the troubleshooting tip at the end of this table. Não.No. O valor padrão é true.Default value is true.
operationTimeoutoperationTimeout O tempo de espera antes de expirar cada solicitação de gravação para o servidor SFTP. O valor padrão é 60 minutos (01:00:00).The wait time before each write request to SFTP server times out. Default value is 60 min (01:00:00). NãoNo

Dica

Se você receber o erro "UserErrorSftpPathNotFound", "UserErrorSftpPermissionDenied" ou "SftpOperationFail" quando estiver gravando dados em SFTP, e o usuário SFTP usado tiver as permissões corretas, verifique se a operação de renomeação do arquivo de suporte do servidor SFTP está funcionando.If you receive the error "UserErrorSftpPathNotFound," "UserErrorSftpPermissionDenied," or "SftpOperationFail" when you're writing data into SFTP, and the SFTP user you use does have the proper permissions, check to see whether your SFTP server support file rename operation is working. Se não estiver, desabilite a opção carregar com o arquivo temporário ( useTempFileRename ) e tente novamente.If it isn't, disable the Upload with temp file (useTempFileRename) option and try again. Para saber mais sobre essa propriedade, consulte a tabela anterior.To learn more about this property, see the preceding table. Se você usar um tempo de execução de integração auto-hospedado para a atividade de cópia, certifique-se de usar a versão 4,6 ou posterior.If you use a self-hosted integration runtime for the Copy activity, be sure to use version 4.6 or later.

Exemplo:Example:

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

Exemplos de filtro de pasta e arquivoFolder and file filter examples

Esta seção descreve o comportamento que resulta do uso de filtros curinga com caminhos de pasta e nomes de arquivo.This section describes the behavior that results from using wildcard filters with folder paths and file names.

folderPathfolderPath fileNamefileName recursivarecursive Estrutura da pasta de origem e resultado do filtro (os arquivos em negrito são recuperados)Source folder structure and filter result (files in bold are retrieved)
Folder* (vazio, usar padrão)(empty, use default) falsefalse FolderAFolderA
    Arquivo1.csv    File1.csv
    Arquivo2.json    File2.json
    Subpasta1    Subfolder1
        Arquivo3.csv        File3.csv
        Arquivo4.json        File4.json
        Arquivo5.csv        File5.csv
OutraPastaBAnotherFolderB
    Arquivo6.csv    File6.csv
Folder* (vazio, usar padrão)(empty, use default) truetrue FolderAFolderA
    Arquivo1.csv    File1.csv
    Arquivo2.json    File2.json
    Subpasta1    Subfolder1
        Arquivo3.csv        File3.csv
        Arquivo4.json        File4.json
        Arquivo5.csv        File5.csv
OutraPastaBAnotherFolderB
    Arquivo6.csv    File6.csv
Folder* *.csv falsefalse FolderAFolderA
    Arquivo1.csv    File1.csv
    Arquivo2.json    File2.json
    Subpasta1    Subfolder1
        Arquivo3.csv        File3.csv
        Arquivo4.json        File4.json
        Arquivo5.csv        File5.csv
OutraPastaBAnotherFolderB
    Arquivo6.csv    File6.csv
Folder* *.csv truetrue FolderAFolderA
    Arquivo1.csv    File1.csv
    Arquivo2.json    File2.json
    Subpasta1    Subfolder1
        Arquivo3.csv        File3.csv
        Arquivo4.json        File4.json
        Arquivo5.csv        File5.csv
OutraPastaBAnotherFolderB
    Arquivo6.csv    File6.csv

Exemplos de lista de arquivosFile list examples

Esta tabela descreve o comportamento resultante do uso de um caminho de lista de arquivos na origem da atividade de cópia.This table describes the behavior that results from using a file list path in the Copy activity source. Ele pressupõe que você tem a seguinte estrutura de pasta de origem e deseja copiar os arquivos que estão em negrito:It assumes that you have the following source folder structure and want to copy the files that are in bold type:

Exemplo de estrutura de origemSample source structure Conteúdo em FileListToCopy.txtContent in FileListToCopy.txt Configuração de Azure Data FactoryAzure Data Factory configuration
rootroot
    FolderA    FolderA
        Arquivo1.csv        File1.csv
        Arquivo2.json        File2.json
        Subpasta1        Subfolder1
            Arquivo3.csv            File3.csv
            Arquivo4.json            File4.json
            Arquivo5.csv            File5.csv
    Metadados    Metadata
        FileListToCopy.txt        FileListToCopy.txt
File1.csvFile1.csv
Subfolder1/File3.csvSubfolder1/File3.csv
Subfolder1/File5.csvSubfolder1/File5.csv
No conjunto de os:In the dataset:
- Caminho da pasta: root/FolderA- Folder path: root/FolderA

Na fonte da atividade de cópia:In the Copy activity source:
- Caminho da lista de arquivos: root/Metadata/FileListToCopy.txt- File list path: root/Metadata/FileListToCopy.txt

O caminho da lista de arquivos aponta para um arquivo de texto no mesmo armazenamento de dados que inclui uma lista de arquivos que você deseja copiar (um arquivo por linha, com o caminho relativo para o caminho configurado no conjunto de dados).The file list path points to a text file in the same data store that includes a list of files you want to copy (one file per line, with the relative path to the path configured in the dataset).

Pesquisar propriedades de atividadeLookup activity properties

Para obter informações sobre propriedades de atividade de pesquisa, consulte atividade de pesquisa em Azure data Factory.For information about Lookup activity properties, see Lookup activity in Azure Data Factory.

Propriedades de atividade GetMetadataGetMetadata activity properties

Para obter informações sobre as propriedades da atividade GetMetadata, consulte atividade GetMetadata em Azure data Factory.For information about GetMetadata activity properties, see GetMetadata activity in Azure Data Factory.

Excluir propriedades da atividadeDelete activity properties

Para obter informações sobre as propriedades de atividade de exclusão, consulte excluir atividade no Azure data Factory.For information about Delete activity properties, see Delete activity in Azure Data Factory.

Modelos herdadosLegacy models

Observação

Os modelos a seguir ainda têm suporte como são para compatibilidade com versões anteriores.The following models are still supported as is for backward compatibility. É recomendável que você use o novo modelo abordado anteriormente, porque a interface do usuário de criação do Azure Data Factory mudou para gerar o novo modelo.We recommend that you use the previously discussed new model, because the Azure Data Factory authoring UI has switched to generating the new model.

Modelo de conjunto de dados herdadoLegacy dataset model

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A propriedade Type do conjunto de conjuntos deve ser definida como FileShare.The type property of the dataset must be set to FileShare. SimYes
folderPathfolderPath O caminho para a pasta.The path to the folder. Há suporte para um filtro curinga.A wildcard filter is supported. Curingas permitidos são * (corresponde a zero ou mais caracteres) e ? (corresponde a zero ou um único caractere); use ^ para escapar se o nome real do arquivo tiver um caractere curinga ou esse caractere de escape dentro.Allowed wildcards are * (matches zero or more characters) and ? (matches zero or a single character); use ^ to escape if your actual file name has a wildcard or this escape char inside.

Exemplos: rootfolder/subfolder/; veja mais exemplos em Exemplos de filtro de pasta e arquivo.Examples: rootfolder/subfolder/, see more examples in Folder and file filter examples.
SimYes
fileNamefileName Filtro de nome ou curinga para os arquivos sob o "FolderPath" especificado.Name or wildcard filter for the files under the specified "folderPath". Se você não especificar um valor para essa propriedade, o conjunto de dados apontará para todos os arquivos na pasta.If you don't specify a value for this property, the dataset points to all files in the folder.

Para o filtro, os curingas permitidos são * (corresponde a zero ou mais caracteres) e ? (corresponde a zero ou a um único caractere).For filter, the allowed wildcards are * (matches zero or more characters) and ? (matches zero or a single character).
– Exemplo 1: "fileName": "*.csv"- Example 1: "fileName": "*.csv"
– Exemplo 2: "fileName": "???20180427.txt"- Example 2: "fileName": "???20180427.txt"
Use ^ como escape se o nome real da pasta tiver curingas ou esse caractere de escape.Use ^ to escape if your actual folder name has wildcard or this escape char inside.
NãoNo
modifiedDatetimeStartmodifiedDatetimeStart Os arquivos são filtrados com base no atributo modificado pela última vez.Files are filtered based on the attribute Last Modified. Os arquivos serão selecionados se a hora da última modificação estiver dentro do intervalo de modifiedDatetimeStart a modifiedDatetimeEnd .The files are selected if their last modified time is within the range of modifiedDatetimeStart to modifiedDatetimeEnd. A hora é aplicada ao fuso horário UTC no formato 2018-12-01T05:00:00Z.The time is applied to UTC time zone in the format of 2018-12-01T05:00:00Z.

O desempenho geral da movimentação de dados será afetado com a habilitação dessa configuração quando você desejar fazer o filtro de arquivo de um grande número de arquivos.The overall performance of data movement will be affected by enabling this setting when you want to do file filter from large numbers of files.

As propriedades podem ser nulas, o que significa que nenhum filtro de atributo de arquivo é aplicado ao conjunto de valores.The properties can be NULL, which means that no file attribute filter is applied to the dataset. Quando modifiedDatetimeStart tem um valor de DateTime, mas modifiedDatetimeEnd é nulo, significa que os arquivos cujo último atributo modificado é maior ou igual ao valor de DateTime são selecionados.When modifiedDatetimeStart has a datetime value but modifiedDatetimeEnd is NULL, it means that the files whose last modified attribute is greater than or equal to the datetime value are selected. Quando modifiedDatetimeEnd tem um valor de DateTime, mas modifiedDatetimeStart é nulo, significa que os arquivos cujo último atributo modificado é menor que o valor de data e hora são selecionados.When modifiedDatetimeEnd has a datetime value but modifiedDatetimeStart is NULL, it means that the files whose last modified attribute is less than the datetime value are selected.
NãoNo
modifiedDatetimeEndmodifiedDatetimeEnd Os arquivos são filtrados com base no atributo modificado pela última vez.Files are filtered based on the attribute Last Modified. Os arquivos serão selecionados se a hora da última modificação estiver dentro do intervalo de modifiedDatetimeStart a modifiedDatetimeEnd .The files are selected if their last modified time is within the range of modifiedDatetimeStart to modifiedDatetimeEnd. A hora é aplicada ao fuso horário UTC no formato 2018-12-01T05:00:00Z.The time is applied to UTC time zone in the format of 2018-12-01T05:00:00Z.

O desempenho geral da movimentação de dados será afetado com a habilitação dessa configuração quando você desejar fazer o filtro de arquivo de um grande número de arquivos.The overall performance of data movement will be affected by enabling this setting when you want to do file filter from large numbers of files.

As propriedades podem ser nulas, o que significa que nenhum filtro de atributo de arquivo é aplicado ao conjunto de valores.The properties can be NULL, which means that no file attribute filter is applied to the dataset. Quando modifiedDatetimeStart tem um valor de DateTime, mas modifiedDatetimeEnd é nulo, significa que os arquivos cujo último atributo modificado é maior ou igual ao valor de DateTime são selecionados.When modifiedDatetimeStart has a datetime value but modifiedDatetimeEnd is NULL, it means that the files whose last modified attribute is greater than or equal to the datetime value are selected. Quando modifiedDatetimeEnd tem um valor de DateTime, mas modifiedDatetimeStart é nulo, significa que os arquivos cujo último atributo modificado é menor que o valor de data e hora são selecionados.When modifiedDatetimeEnd has a datetime value but modifiedDatetimeStart is NULL, it means that the files whose last modified attribute is less than the datetime value are selected.
NãoNo
formatformat Se você quiser copiar arquivos no estado em que se encontram entre repositórios baseados em arquivo (cópia binária), ignore a seção de formato nas definições de conjunto de dados de entrada e de saída.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 você quiser analisar arquivos com um formato específico, há suporte para os seguintes tipos de formato de arquivo: TextFormat, JsonFormat, AvroFormat, OrcFormat e ParquetFormat.If you want to parse files with a specific format, the following file format types are supported: TextFormat, JsonFormat, AvroFormat, OrcFormat, and ParquetFormat. Defina a propriedade type sob formato como um desses valores.Set the type property under format to one of these values. Para obter mais informações, consulte formato de texto, formato JSON, formato Avro, formato Orce seções de formato parquet .For more information, see Text format, Json format, Avro format, Orc format, and Parquet format sections.
Não (somente para o cenário de cópia binária)No (only for binary copy scenario)
compactaçãocompression Especifique o tipo e o nível de compactação para os dados.Specify the type and level of compression for the data. Para obter mais informações, consulte Formatos de arquivo e codecs de compactação com suporte.For more information, see Supported file formats and compression codecs.
Os tipos com suporte são: GZip, Deflate, BZip2 e ZipDeflate.Supported types are GZip, Deflate, BZip2, and ZipDeflate.
Os níveis de suporte são Ideal e Mais rápido.Supported levels are Optimal and Fastest.
NãoNo

Dica

Para copiar todos os arquivos em uma pasta, especifique folderPath somente.To copy all files under a folder, specify folderPath only.
Para copiar um único arquivo com um nome especificado, especifique FolderPath com a pasta Part e filename com o nome do arquivo.To copy a single file with a specified name, specify folderPath with the folder part and fileName with the file name.
Para copiar um subconjunto de arquivos em uma pasta, especifique FolderPath com a parte da pasta e o nome do arquivo com o filtro curinga.To copy a subset of files under a folder, specify folderPath with the folder part and fileName with the wildcard filter.

Observação

Se você estiver usando a propriedade FileFilter para o filtro de arquivo, ele ainda terá suporte como está, mas recomendamos que você use o novo recurso de filtro adicionado ao nome de arquivo de Now on.If you were using fileFilter property for the file filter, it is still supported as is, but we recommend that you use the new filter capability added to fileName from now on.

Exemplo:Example:

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

Modelo de origem da atividade de cópia herdadaLegacy Copy activity source model

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A propriedade Type da fonte da atividade de cópia deve ser definida como FileSystemNameThe type property of the Copy activity source must be set to FileSystemSource SimYes
recursivarecursive Indica se os dados são lidos recursivamente das subpastas ou somente da pasta especificada.Indicates whether the data is read recursively from the subfolders or only from the specified folder. Quando recursivo é definido como true e o coletor é um armazenamento baseado em arquivo, pastas e subpastas vazias não serão copiadas ou criadas no coletor.When recursive is set to true and the sink is a file-based store, empty folders and subfolders won't be copied or created at the sink.
Os valores permitidos são true (padrão) e falseAllowed values are true (default) and false
NãoNo
maxConcurrentConnectionsmaxConcurrentConnections O número de conexões que podem se conectar a um repositório de armazenamento simultaneamente.The number of connections that can connect to a storage store concurrently. Especifique um número somente quando desejar limitar as conexões simultâneas ao armazenamento de dados.Specify a number only when you want to limit the concurrent connections to the data store. NãoNo

Exemplo:Example:

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

Próximas etapasNext steps

Para obter uma lista de armazenamentos de dados com suporte como fontes e coletores pela atividade de cópia no Azure Data Factory, consulte armazenamentos de dados com suporte.For a list of data stores that are supported as sources and sinks by the Copy activity in Azure Data Factory, see supported data stores.