Todos os produtos
Search
Central de documentação

DataWorks:Fonte de dados TOS

Última atualização: Sep 06, 2026

A fonte de dados TOS permite ler arquivos do TOS. Use essa fonte para recuperar arquivos armazenados no TOS, analisá-los e sincronizar os dados com qualquer fonte de destino. Este tópico descreve as capacidades de sincronização de dados do DataWorks para o TOS.

Limitações

A fonte de dados TOS aceita os seguintes tipos de coluna no DataWorks.

Tipo de dados

Descrição

STRING

Tipo texto.

LONG

Tipo inteiro.

BYTES

Array de bytes. Converte o conteúdo de texto lido em um array de bytes codificado em UTF-8.

BOOL

Tipo booleano.

DOUBLE

Tipo ponto flutuante.

DATE

Tipo data e hora. Formatos aceitos:

  • YYYY-MM-dd HH:mm:ss

  • yyyy-MM-dd

  • HH:mm:ss

Crie uma fonte de dados TOS

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 compreender o significado de cada parâmetro ao adicionar uma fonte de dados.

Desenvolver uma tarefa de sincronização de dados

A fonte de dados TOS funciona exclusivamente como origem em tarefas de sincronização em lote de tabela única. A seguir, apresentamos o ponto de entrada e o processo geral de configuração dessas tarefas.

Apêndice: Exemplo de script e parâmetros

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

Para configurar uma tarefa de sincronização em lote por meio do editor de código, defina os parâmetros relevantes no script conforme os requisitos unificados de formato. Para mais informações, consulte Script mode configuration. As informações a seguir detalham os parâmetros obrigatórios para fontes de dados durante a configuração via editor de código.

Exemplo de script do Reader

{
  "type": "job",
  "version": "2.0",
  "steps": [
    {
      "stepType": "tos",
      "parameter": {
        "datasource": "",
        "object": ["f/z/1.csv"],
        "fileFormat": "csv",
        "encoding": "utf8/gbk/...",
        "fieldDelimiter": ",",
        "useMultiCharDelimiter": true,
        "skipHeader": true,
        "compress": "zip/gzip",
        "column": [
          {
            "index": 0,
            "type": "long"
          },
          {
            "index": 1,
            "type": "boolean"
          },
          {
            "index": 2,
            "type": "double"
          },
          {
            "index": 3,
            "type": "string"
          },
          {
            "index": 4,
            "type": "date"
          }
        ]
      },
      "name": "Reader",
      "category": "reader"
    },
    {
      "stepType": "stream",
      "parameter": {},
      "name": "Writer",
      "category": "writer"
    }
  ],
  "setting": {
    "errorLimit": {
      "record": "0"
    },
    "speed": {
      "concurrent": 1
    }
  },
  "order": {
    "hops": [
      {
        "from": "Reader",
        "to": "Writer"
      }
    ]
  }
}

Parâmetros do script do Reader

Parâmetro

Descrição

Obrigatório

Valor padrão

datasource

Nome da fonte de dados. O modo de script permite adicionar fontes de dados. O valor deste parâmetro deve corresponder exatamente ao nome da fonte adicionada.

Sim

Nenhum

fileFormat

Tipo do arquivo de origem. Tipos aceitos: csv, text, parquet, orc, json e jsonl.

Sim

Nenhum

object

Caminho do arquivo. Usado quando fileFormat é definido como csv, text, json ou jsonl. Aceita o caractere curinga * e pode ser configurado como um array.

Por exemplo, para sincronizar os arquivos a/b/1.csv e a/b/2.csv, configure a/b/*.csv.

Sim

Obrigatório quando fileFormat é csv, text, json ou jsonl.

Nenhum

column

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

  • Formato CSV/TEXT: index indica a posição da coluna no texto (iniciando em 0), enquanto value define um valor constante.

  • Formato JSON/JSONL: Use jsonPath para especificar uma expressão JSONPath de extração de campos; value define um valor constante.

  • Por padrão, é possível ler todos os dados como tipo String. A configuração é a seguinte:

    column": ["*"]
  • Especifique as informações da coluna conforme abaixo.

    // Formato CSV/TEXT
    "column":    
        {       
            "type": "long",       
            "index": 0 //Obtém o campo int da primeira coluna do texto TOS.
        },    
        {       
            "type": "string",       
            "value": "alibaba" //Gera internamente o campo string 'alibaba' a partir do TOS como campo atual.    
    }
    // Formato JSON/JSONL
    "column":    
        {       
            "name": "id",       
            "jsonPath": "$.id",       
            "type": "LONG"
        },    
        {       
            "name": "name",       
            "jsonPath": "$.user.name",       
            "type": "STRING"
        },    
        {       
            "name": "source",       
            "value": "tos",       
            "type": "STRING"    
    }
Nota

Nas informações de column especificadas, type é obrigatório. Para o formato CSV/TEXT, escolha entre index ou value. Para o formato JSON/JSONL, escolha entre jsonPath ou value.

Sim

Tudo lido como STRING.

fieldDelimiter

Delimitador de campo para leitura.

Nota
  • Ao ler dados com o TOS Reader, especifique um delimitador de campo. Caso omitido, o padrão é vírgula (,), valor também pré-preenchido na configuração da interface.

  • Se o delimitador não for visível, insira o código Unicode. Exemplo: \u001b ou \u007c.

Sim

,

lineDelimiter

Delimitador de linha para leitura.

Nota

Este parâmetro tem efeito apenas quando fileFormat é definido como text.

Não

Nenhum

compress

Tipo de compressão de texto. Vazio por padrão (sem compressão). Tipos aceitos: gzip, bzip2 e zip.

Não

Sem compressão

encoding

Codificação usada para ler o arquivo.

Não

utf-8

nullFormat

Arquivos de texto não permitem definir null (ponteiro nulo) com uma string padrão. O sistema de sincronização de dados oferece nullFormat para determinar quais strings devem ser tratadas como null. Exemplos:

  • Ao definir nullFormat:"null", equivale a um "caractere visível". Se o dado de origem for null, a sincronização o tratará como campo nulo.

  • Ao definir nullFormat:"\u0001", equivale a um "caractere invisível". Se o dado de origem for a string "\u0001", a sincronização o tratará como campo nulo.

  • Se "nullFormat" não for especificado, equivale a "não configurado", ou seja, os dados de origem são gravados no destino sem conversão.

Não

Nenhum

skipHeader

Em arquivos CSV, use skipHeader para controlar a leitura do cabeçalho.

  • True: Lê o cabeçalho durante a sincronização da fonte de dados.

  • False: Ignora o cabeçalho durante a sincronização da fonte de dados.

Nota

O parâmetro skipHeader não é aceito no modo de arquivo compactado.

Não

false

parquetSchema

Configure este parâmetro ao ler TOS no formato Parquet. Tem efeito somente quando fileFormat é parquet e descreve o tipo de armazenamento dos dados Parquet. Certifique-se de que toda a configuração obedeça à sintaxe JSON após preencher parquetSchema.

message MessageTypeName {
required or optional, data type, column name;
......................;
}
  • O formato de parquetSchema segue a descrição abaixo:

    • Nome do MessageType: insira um nome.

    • Obrigatoriedade: required indica não nulo, optional indica anulável. Recomendamos definir todos como optional.

    • Tipo de dado: Arquivos Parquet aceitam BOOLEAN, Int32, Int64, Int96, FLOAT, DOUBLE, BINARY (use BINARY para tipo string) e fixed_len_byte_array.

    • Cada linha de coluna deve terminar com ponto e vírgula, inclusive a última.

  • Exemplo de configuração:

    "parquetSchema": "message m { optional int32 minute_id; optional int32 dsp_id; optional int32 adx_pid; optional int64 req; optional int64 res; optional int64 suc; optional int64 imp; optional double revenue; }"

Não

Nenhum

csvReaderConfig

Parâmetros de configuração para leitura de arquivos CSV, no tipo Map. A leitura usa csvReader. Se não configurado, assume valores padrão.

Não

Nenhum