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 |
|
|
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 |
|
|
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
Para mais detalhes sobre o procedimento de configuração, consulte Configure a batch synchronization task using the Codeless UI e Configure a batch synchronization task using script mode.
Para visualizar todos os parâmetros e um exemplo de script para configurar uma tarefa em lote no modo de script, consulte Appendix: Script sample and parameter description.
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.
Nota
|
Sim |
Nenhum |
|
column |
Lista de colunas a serem lidas.
Por padrão, é possível ler todos os dados como tipo STRING usando a configuração
Para a column especificada, defina obrigatoriamente o |
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
|
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 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 |
Não |
false |
|
writeMode |
Modo de limpeza de dados antes da gravação.
|
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 Por exemplo, se você configurar |
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, |
Não |
Nenhum |
|
markDoneFileName |
|
Não |
Nenhum |