Todos os produtos
Search
Central de documentação

DataWorks:Fonte de dados FTP

Última atualização: Sep 06, 2026

O DataWorks oferece suporte ao FTP como fonte de dados para leitura e gravação em servidores FTP.

Limitações

O FTP Reader lê dados de arquivos FTP remotos e os converte para o protocolo do Data Integration. Os arquivos FTP remotos são armazenados como dados não estruturados.

Suportado

Não suportado

  • Lê dados apenas de arquivos de texto. O esquema dos dados nos arquivos de texto deve ser uma tabela bidimensional.

  • Lê dados de arquivos semelhantes a CSV com delimitadores personalizados.

  • Lê dados nos formatos JSON e JSONL.

  • Lê dados de vários tipos como strings. Oferece suporte à remoção de colunas e a colunas constantes.

  • Oferece suporte a leituras recursivas e filtragem por nome de arquivo.

  • Oferece suporte à compactação de arquivos. Formatos compatíveis: gzip, bzip2, zip, lzo e lzo_deflate.

  • Permite leituras simultâneas de múltiplos arquivos.

  • Leitura simultânea de um único arquivo usando threads paralelas. Requer algoritmo interno de divisão de arquivos.

  • Leitura simultânea de um único arquivo compactado usando threads paralelas (indisponível devido a limitações técnicas).

O FTP Writer converte dados com base no protocolo do Data Integration e grava os dados em arquivos em um servidor FTP.

Suportado

Não suportado

  • Grava dados apenas em arquivos de texto. Não oferece suporte a dados BLOB, como vídeos. O esquema dos dados nos arquivos de texto deve ser uma tabela bidimensional.

  • Grava dados em arquivos semelhantes a CSV, TEXT, JSON e JSONL com delimitadores personalizados.

  • Grava dados usando threads paralelas. Cada thread grava dados em um subarquivo diferente.

  • Gravações simultâneas em um único arquivo.

  • Tipos de dados nativos. O FTP Writer grava todos os dados como o tipo STRING.

  • Compactação de arquivos durante a gravação de dados.

Tipos de dados suportados

Arquivos FTP remotos não possuem tipos de dados nativos. Em vez disso, o FTP Reader define os tipos de dados no Data Integration.

Tipo do Data Integration

Tipo FTP

LONG

LONG

DOUBLE

DOUBLE

STRING

STRING

BOOLEAN

BOOLEAN

DATE

DATE

Adicionar uma fonte de dados

Antes de desenvolver uma tarefa de sincronização no DataWorks, adicione a fonte de dados necessária seguindo as instruções em Data source configuration. Consulte as descrições dos parâmetros no console do DataWorks para entender o significado de cada parâmetro ao adicionar uma fonte de dados.

Desenvolver uma tarefa de sincronização de dados

Para obter informações sobre o ponto de entrada e o procedimento de configuração de uma tarefa de sincronização, consulte os guias a seguir.

Sincronização em lote de tabela única

Apêndice: Exemplo de script e parâmetros

Configurar uma tarefa de sincronização em lote usando o editor de código

Para configurar uma tarefa de sincronização em lote usando o editor de código, defina os parâmetros relacionados no script conforme os requisitos unificados de formato. Para mais informações, consulte Script mode configuration. As informações a seguir descrevem os parâmetros obrigatórios para fontes de dados ao utilizar o editor de código em tarefas de sincronização em lote.

Exemplo de script do Reader

{
    "type":"job",
    "version":"2.0",// Version number.
    "steps":[
        {
            "stepType":"ftp",// Plug-in name.
            "parameter":{
                "path":[],// File path.
                "nullFormat":"",// Null value.
                "compress":"",// Compression format.
                "datasource":"",// Data source.
                "column":[// Columns.
                    {
                        "index":0,// ID.
                        "type":""// Data type.
                    }
                ],
                "skipHeader":"",// Specifies whether to include a header.
                "fieldDelimiter":",",// Column delimiter.
                "encoding":"UTF-8",// Encoding format.
                "fileFormat":"csv"// File format.
            },
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"stream",
            "parameter":{},
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{
            "record":"0"// Maximum number of allowed dirty data records.
        },
        "speed":{
        "throttle":true,// If false, the mbps parameter is ignored and no throttling is applied. If true, throttling is applied based on the mbps value.
            "concurrent":1, // Job concurrency.
            "mbps":"12"// Throttling rate. 1 mbps = 1 MB/s.
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Parâmetros do script do Reader

Parâmetro

Descrição

Obrigatório

Padrão

datasource

Nome da fonte de dados. Deve corresponder exatamente ao nome configurado no DataWorks.

Sim

Nenhum

path

Caminho do arquivo de origem no sistema de arquivos FTP remoto. Especifique o caminho completo, incluindo a extensão do arquivo. É possível especificar múltiplos caminhos.

  • Ao especificar um único arquivo FTP remoto, o FTP Reader usa apenas uma thread para extrair dados. Versões futuras oferecerão suporte a leituras simultâneas de um único arquivo não compactado usando threads paralelas.

  • Ao especificar múltiplos arquivos FTP remotos, o FTP Reader usa threads paralelas para extrair dados. O número de threads simultâneas corresponde ao número de canais.

  • Ao usar um caractere curinga, o FTP Reader tenta percorrer e localizar vários arquivos. Por exemplo, se você especificar /, o FTP Reader lê todos os arquivos no diretório /. Se especificar /bazhen/, ele lê todos os arquivos no diretório /bazhen/. O FTP Reader suporta apenas o asterisco (*) como curinga de arquivo. Também é possível usar scheduling parameters para configurar nomes e caminhos de arquivos de forma flexível.

Nota
  • Evite usar o curinga asterisco (*). Esse caractere pode causar erro de falta de memória (OOM) na Java Virtual Machine (JVM).

  • O Data Integration considera todos os arquivos de texto sincronizados em um job como uma única tabela de dados. Garanta que todos os arquivos possam ser processados com o mesmo esquema.

  • Certifique-se de que os arquivos estejam em formato semelhante a CSV e que o sistema Data Integration tenha permissões de leitura sobre eles.

  • Se nenhum arquivo correspondente ao caminho especificado for encontrado, a tarefa de sincronização de dados falhará.

Sim

Nenhum

column

Lista de colunas a serem lidas. type especifica o tipo de dado da origem:

  • Formato CSV/TEXT: index indica a coluna de onde ler os dados (índice base zero). value define um valor constante.

  • Formato JSON/JSONL: Use jsonPath para definir uma expressão JSONPath e extrair campos. value define um valor constante.

Por padrão, é possível ler todos os dados como tipo STRING usando a configuração "column":["*"]. Defina o campo column conforme abaixo.

// CSV/TEXT format
    {
        "type": "long",
        "index": 0    // Reads data from the first column of the remote FTP text file as an INT field.
      },
      {
        "type": "string",
        "value": "alibaba"  // Generates a string field whose value is alibaba in FTP Reader.
      }
// JSON/JSONL format
{
    "name": "id",
    "jsonPath": "$.id",
    "type": "LONG"
  },
  {
    "name": "name",
    "jsonPath": "$.user.name",
    "type": "STRING"
  },
  {
    "name": "source",
    "value": "ftp",
    "type": "STRING"
  }

Para a column especificada, defina obrigatoriamente o type. No formato CSV/TEXT, escolha entre index ou value. No formato JSON/JSONL, escolha entre jsonPath ou value.

Sim

Nenhum

fieldDelimiter

Delimitador usado para separar colunas nos arquivos de origem.

Nota

Defina um delimitador para que o FTP Reader possa ler os dados. Caso contrário, a vírgula (,) será usada por padrão. Na interface do usuário, a vírgula (,) também é o padrão.

Sim

,

skipHeader

Arquivos semelhantes a CSV podem ter cabeçalho. É possível ignorá-lo. Por padrão, o cabeçalho não é ignorado. Este parâmetro não é suportado para arquivos compactados.

Não

false

encoding

Codificação dos arquivos de origem.

Não

utf-8

nullFormat

Arquivos de texto não usam strings padrão para valores nulos (ponteiros nulos). Use nullFormat para indicar quais strings representam valores nulos. Exemplos:

  • Se este parâmetro for definido como nullFormat:"null" e os dados de origem forem a string "null", o Data Integration processará esses dados como valor nulo.

  • Se este parâmetro for definido como nullFormat:"\u0001" e os dados de origem forem a string \u0001, o Data Integration processará esses dados como valor nulo.

  • Se o parâmetro "nullFormat" não for configurado, nenhuma conversão será realizada e os dados de origem serão gravados no destino exatamente como estão.

Não

Nenhum

markDoneFileName

Nome do arquivo de conclusão. Antes de iniciar uma tarefa de sincronização de dados, o sistema verifica se o arquivo de conclusão existe. Se o arquivo não existir, o sistema aguarda um período específico e verifica novamente. A tarefa só começa após a detecção do arquivo.

Não

Nenhum

maxRetryTime

Número de tentativas para verificar o arquivo de conclusão. O valor padrão é 60. O intervalo entre tentativas é de 1 minuto, totalizando 60 minutos de espera.

Não

60

csvReaderConfig

Parâmetros usados para ler arquivos CSV. O valor deve ser do tipo Map. O CsvReader lê arquivos CSV. Várias configurações estão disponíveis. Se este parâmetro não for configurado, valores padrão serão usados.

Não

Nenhum

fileFormat

Formato dos arquivos de origem. Valores válidos: csv, text, json e jsonl. Por padrão, os arquivos são lidos como CSV e processados como tabelas bidimensionais lógicas. Se definido como binary, os arquivos serão copiados em formato binário.

Geralmente usado para espelhar estruturas de diretórios entre sistemas de armazenamento, como FTP e OSS. Na maioria dos casos, não é necessário configurar este parâmetro.

Não

Nenhum

Exemplo de script do Writer

{
    "type":"job",
    "version":"2.0",// Version number.
    "steps":[
        { 
            "stepType":"stream",
            "parameter":{},
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"ftp",// Plug-in name.
            "parameter":{
                "path":"",// File path.
                "fileName":"",// File name.
                "nullFormat":"null",// Null value.
                "dateFormat":"yyyy-MM-dd HH:mm:ss",// Date format.
                "datasource":"",// Data source.
                "writeMode":"",// Write mode.
                "fieldDelimiter":",",// Column delimiter.
                "encoding":"",// Encoding format.
                "fileFormat":""// File format.
            },
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{
            "record":"0"// Maximum number of allowed dirty data records.
        },
        "speed":{
            "throttle":true,// If false, the mbps parameter is ignored and no throttling is applied. If true, throttling is applied based on the mbps value.
            "concurrent":1, // Job concurrency.
            "mbps":"12"// Throttling rate. 1 mbps = 1 MB/s.
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Parâmetros do script do Writer

Parâmetro

Descrição

Obrigatório

Padrão

datasource

Nome da fonte de dados. Deve corresponder exatamente ao nome configurado no DataWorks.

Sim

Nenhum

timeout

Tempo limite para conexão com o servidor FTP. Unidade: milissegundos.

Não

60.000 (1 minuto)

path

Caminho de destino no sistema de arquivos FTP. O FTP Writer grava vários arquivos no diretório especificado por este parâmetro.

Sim

Nenhum

fileName

Nome do arquivo onde o FTP Writer gravará os dados. Um sufixo aleatório é adicionado a este nome para criar o nome real do arquivo para cada thread.

Sim

Nenhum

singleFileOutput

Por padrão, o FTP Writer adiciona um sufixo aleatório ao fileName especificado para criar um nome exclusivo para cada thread. Para evitar o sufixo aleatório, defina este parâmetro como true. Assim, o nome do arquivo de saída será exatamente o especificado.

Não

false

writeMode

Modo de limpeza de dados antes da gravação.

  • truncate: Se singleFileOutput for true, arquivos com o mesmo nome no diretório de destino serão excluídos antes da gravação. Se singleFileOutput for false, todos os arquivos com o prefixo fileName especificado no diretório de destino serão excluídos antes da gravação.

  • append: Nenhum dado é limpo. O FTP Writer grava arquivos diretamente usando o fileName especificado e garante que não haja conflitos de nomes.

  • nonConflict: Se já existir um arquivo com o prefixo fileName especificado no diretório, a tarefa falhará e um erro será relatado.

Sim

Nenhum

fieldDelimiter

Delimitador usado para separar colunas nos arquivos de destino.

Sim (apenas caractere único)

Nenhum

skipHeader

Arquivos semelhantes a CSV podem ter cabeçalhos que precisam ser ignorados. Por padrão, os cabeçalhos não são ignorados. Arquivos compactados não suportam skipHeader.

Não

false

compress

Formatos de compactação suportados: gzip e bzip2.

Não

Sem compactação

encoding

Codificação dos arquivos de destino.

Não

utf-8

nullFormat

Arquivos de texto não usam strings padrão para valores nulos (ponteiros nulos). Use nullFormat para indicar quais strings representam valores nulos.

Por exemplo, se você configurar nullFormat="null", quando os dados de origem forem um ponteiro nulo, o Data Integration o serializará na string literal 'null' (4 caracteres).

Não

Nenhum

dateFormat

Formato para serializar dados do tipo DATE em um arquivo. Exemplo: "dateFormat":"yyyy-MM-dd".

Não

Nenhum

fileFormat

Formato dos arquivos de destino. Valores válidos: CSV, TEXT, JSON e JSONL. CSV é um formato estrito. Se os dados a serem gravados contiverem um delimitador de coluna, eles serão escapados com aspas duplas (") conforme a regra de escape do CSV. TEXT é um formato simples que usa delimitador de coluna para separar dados, sem escape de delimitadores.

Não

TEXT

header

Cabeçalho a ser gravado no arquivo de texto. No modo de script, é possível configurar as informações do cabeçalho. Por exemplo, defina este parâmetro como "header":["id","name","age"]. Assim, id, name e age serão gravados como cabeçalho na primeira linha do arquivo FTP.

Não

Nenhum

markDoneFileName

  • Nome do arquivo de conclusão. Após a conclusão da tarefa de sincronização de dados, o sistema gera um arquivo de conclusão. Verifique este arquivo para determinar se a tarefa foi bem-sucedida. Especifique um caminho absoluto para este arquivo.

  • Para tarefas em lote periódicas, inclua um scheduling parameter no nome do arquivo. Por exemplo, defina o nome do arquivo como /user/ftp/markDone_${bizdate}.txt, onde ${bizdate} é um parâmetro de agendamento.

Não

Nenhum