A fonte de dados FTP oferece um canal bidirecional para leitura e gravação de dados em servidores FTP. Este tópico descreve os recursos de sincronização de dados da fonte de dados FTP no DataWorks.
Limitações
FTP Reader
O FTP Reader lê dados de arquivos FTP remotos. Como esses arquivos são inerentemente não estruturados, aplicam-se as seguintes capacidades e limitações.
|
Capacidade |
Suportado |
|
Leitura de arquivos TXT (esquema de tabela bidimensional) |
Sim |
|
Arquivos semelhantes a CSV com separadores personalizados |
Sim |
|
Múltiplos tipos de dados (representados como STRING), remoção de colunas e constantes de coluna |
Sim |
|
Leituras recursivas e filtragem por nome de arquivo |
Sim |
|
Compressão de texto (gzip, bzip2, zip, lzo, lzo_deflate) |
Sim |
|
Leituras simultâneas de vários arquivos |
Sim |
|
Leituras simultâneas multithread de um único arquivo |
Não |
|
Leituras simultâneas multithread de um único arquivo compactado |
Não |
FTP Writer
O FTP Writer converte dados e os grava em arquivos FTP. Visto que os arquivos FTP são inerentemente não estruturados, valem as capacidades e restrições abaixo.
|
Capacidade |
Suportado |
|
Gravação de arquivos de texto com esquema de tabela bidimensional |
Sim |
|
Formatos de arquivo TEXT e semelhantes a CSV com separadores personalizados |
Sim |
|
Gravações multithread (cada thread grava em um subarquivo diferente) |
Sim |
|
Gravações simultâneas em um único arquivo |
Não |
|
Tipos de dados nativos (todos os dados são gravados como STRING) |
Não |
|
Compressão de texto durante a gravação |
Não |
Tipos de campo suportados
Arquivos FTP remotos não possuem tipos de dados nativos. Os tipos de campo a seguir são definidos pelo FtpReader do DataX.
|
Tipo interno do DataX |
Tipo de dados do arquivo FTP remoto |
|
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 FTP seguindo as instruções em Gerenciamento de fontes de dados. As descrições dos parâmetros estão disponíveis no console do DataWorks ao adicionar uma fonte de dados.
Desenvolver uma tarefa de sincronização de dados
Para pontos de entrada de configuração e procedimentos, consulte os guias a seguir.
Tarefa de sincronização offline de tabela única
Para obter uma demonstração de script e descrições de parâmetros do editor de código, consulte Apêndice: Demonstração de script e descrição de parâmetros.
Apêndice: Demonstração de script e descrição de parâmetros
Configurar uma tarefa de sincronização em lote no editor de código
Para configurar uma tarefa de sincronização em lote no editor de código, defina os parâmetros no script conforme o formato unificado de script. Para mais informações, consulte Configurar uma tarefa no editor de código.
Demonstração de script do Reader
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "ftp",
"parameter": {
"path": [],
"nullFormat": "",
"compress": "",
"datasource": "",
"column": [
{
"index": 0,
"type": ""
}
],
"skipHeader": "",
"fieldDelimiter": ",",
"encoding": "UTF-8",
"fileFormat": "csv"
},
"name": "Reader",
"category": "reader"
},
{
"stepType": "stream",
"parameter": {},
"name": "Writer",
"category": "writer"
}
],
"setting": {
"errorLimit": {
"record": "0"
},
"speed": {
"throttle": true,
"concurrent": 1,
"mbps": "12"
}
},
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
}
}
Parâmetros do script do Reader
|
Parâmetro |
Descrição |
Obrigatório |
Valor padrão |
|
|
Nome da fonte de dados. Deve corresponder ao nome da fonte de dados adicionada. |
Sim |
Nenhum |
|
|
Caminho e nome do arquivo no sistema de arquivos FTP remoto. Especifique o caminho completo, incluindo nome e extensão do arquivo. Suporta múltiplos caminhos. Consulte Comportamento do parâmetro path. |
Sim |
Nenhum |
|
|
Lista de campos a serem lidos. Cada entrada requer |
Sim |
Nenhum |
|
|
Separador de campos para leitura de dados. |
Sim |
|
|
|
Define se a linha de cabeçalho deve ser ignorada em arquivos semelhantes a CSV. Não há suporte para arquivos compactados. |
Não |
|
|
|
Formato de codificação dos arquivos a serem lidos. |
Não |
|
|
|
Representação em string para valores nulos. Se não definido, os dados da fonte são gravados como estão, sem conversão. |
Não |
Nenhum |
|
|
Nome do arquivo de marcação. A tarefa de sincronização aguarda o surgimento deste arquivo antes de iniciar. |
Não |
Nenhum |
|
|
Número de tentativas ao verificar o arquivo de marcação. O intervalo entre tentativas é de 1 minuto; o tempo total de espera é de 60 minutos. |
Não |
|
|
|
Opções de configuração para leitura de arquivos CSV (tipo Map). Utiliza valores padrão caso não seja definido. |
Não |
Nenhum |
|
|
Tipo de arquivo a ser lido. Por padrão, os arquivos são lidos como CSV e analisados em uma tabela bidimensional. Defina como |
Não |
Nenhum |
Comportamento do parâmetro path
O comportamento de path varia conforme a especificação:
|
Tipo de caminho |
Comportamento |
|
Arquivo único |
O FTP Reader utiliza uma única thread para extrair dados. |
|
Múltiplos arquivos |
O FTP Reader emprega extração multithread. A quantidade de threads equivale ao número de canais. |
|
Caractere curinga ( |
O FTP Reader percorre o diretório e lê todos os arquivos correspondentes. Por exemplo, |
Evite usar o caractere curinga *, pois isso pode causar erro de estouro de memória na Java Virtual Machine (JVM).
Utilize parâmetros de agendamento para configurar nomes de arquivos e caminhos dinamicamente.
Restrições adicionais:
Todos os arquivos de texto em um job são tratados como uma única tabela de dados. Certifique-se de que todos os arquivos estejam em conformidade com o mesmo esquema.
Os arquivos a serem lidos devem estar em formato semelhante a CSV e acessíveis pelo sistema de sincronização de dados.
Caso nenhum arquivo corresponda ao caminho especificado, a tarefa de sincronização reportará um erro.
Formato do parâmetro column
Para ler todas as colunas como STRING, defina "column": ["*"].
Para especificar campos individuais:
{
"type": "long",
"index": 0
},
{
"type": "string",
"value": "alibaba"
}
typeé obrigatório para cada entrada.Especifique
index(posição da coluna, iniciando em 0) ouvalue(uma constante injetada pelo FTP Reader sem leitura do arquivo de origem).
Demonstração de script do Writer
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "stream",
"parameter": {},
"name": "Reader",
"category": "reader"
},
{
"stepType": "ftp",
"parameter": {
"path": "",
"fileName": "",
"nullFormat": "null",
"dateFormat": "yyyy-MM-dd HH:mm:ss",
"datasource": "",
"writeMode": "",
"fieldDelimiter": ",",
"encoding": "",
"fileFormat": ""
},
"name": "Writer",
"category": "writer"
}
],
"setting": {
"errorLimit": {
"record": "0"
},
"speed": {
"throttle": true,
"concurrent": 1,
"mbps": "12"
}
},
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
}
}
Parâmetros do script do Writer
|
Parâmetro |
Descrição |
Obrigatório |
Valor padrão |
|
|
Nome da fonte de dados. Deve corresponder ao nome da fonte de dados adicionada. |
Sim |
Nenhum |
|
|
Caminho do diretório no sistema de arquivos FTP. O FTP Writer grava múltiplos subarquivos neste diretório. |
Sim |
Nenhum |
|
|
Nome base do arquivo. Um sufixo aleatório é anexado por thread de gravação, por padrão, para evitar conflitos. |
Sim |
Nenhum |
|
|
Defina como |
Não |
|
|
|
Comportamento de limpeza antes da gravação. Valores válidos: |
Sim |
Nenhum |
|
|
Separador de campos para gravação de dados. Deve ser um único caractere. |
Sim |
Nenhum |
|
|
Tempo limite de conexão com o servidor FTP. Unidade: milissegundos. |
Não |
|
|
|
Indica se a linha de cabeçalho deve ser ignorada. Não há suporte para arquivos compactados. |
Não |
|
|
|
Formato de compactação para gravação. Valores válidos: |
Não |
Sem compactação |
|
|
Formato de codificação para gravação. |
Não |
|
|
|
Representação em string para valores nulos. Por exemplo, definir |
Não |
Nenhum |
|
|
Formato para serialização de dados do tipo DATE. Exemplo: |
Não |
Nenhum |
|
|
Formato para gravação de arquivos. Valores válidos: |
Não |
|
|
|
Linha de cabeçalho a ser gravada como primeira linha do arquivo de saída. Exemplo: |
Não |
Nenhum |
|
|
Caminho absoluto do arquivo de marcação gerado após a conclusão da tarefa de sincronização. Em tarefas acionadas automaticamente, inclua parâmetros de agendamento no nome do arquivo. Exemplo: |
Não |
Nenhum |
Valores de WriteMode
|
Valor |
Comportamento |
|
|
Limpa os arquivos existentes antes de gravar. Se |
|
|
Grava sem pré-processamento. O FTP Writer do Data Integration garante que não haja conflito nos nomes dos arquivos. |
|
|
Reporta um erro se já existir um arquivo com o prefixo |