Todos os produtos
Search
Central de documentação

DataWorks:Fonte de dados do Azure Blob Storage

Última atualização: Sep 06, 2026

O DataWorks oferece o Azure Blob Storage Reader e o Azure Blob Storage Writer para ler e gravar dados em arquivos armazenados no Azure Blob Storage. Use o Azure Blob Storage Reader para acessar arquivos, analisar seu conteúdo e sincronizar os dados com um destino. Use também o Azure Blob Storage Writer para gravar dados de qualquer source no Azure Blob Storage. Este tópico descreve os recursos de sincronização de dados com fontes do Azure Blob Storage.

Limitações

A fonte de dados do Azure Blob Storage aceita os seguintes tipos de dados.

Tipo de dado

Descrição

STRING

Texto.

LONG

Inteiro.

BYTES

Array de bytes. O texto lido é convertido em um array de bytes com codificação UTF-8.

BOOL

Booleano.

DOUBLE

Ponto flutuante.

DATE

Data e hora. Formatos aceitos:

  • YYYY-MM-dd HH:mm:ss

  • yyyy-MM-dd

  • HH:mm:ss

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 compreender o significado de cada campo 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 abaixo.

Configure uma tarefa de sincronização em lote para uma única tabela

Apêndice: Exemplo de script e descrição de parâmetros

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

Ao configurar uma tarefa de sincronização em lote usando o editor de código, defina os parâmetros relevantes no script conforme os requisitos unificados de formato. Para mais detalhes, veja Script mode configuration. As seções a seguir detalham os parâmetros obrigatórios para as fontes de dados nesse modo de configuração.

Exemplo de script do Reader

Abaixo está um exemplo de configuração no editor de código para ler dados do Azure Blob Storage. O lado do Writer usa stream como marcador de posição. Substitua-o pela configuração real da fonte de dados de destino.

{
  "type": "job",
  "version": "2.0",
  "steps": [
    {
      "stepType": "azureblob",
      "parameter": {
        "datasource": "",
        "object": ["f/z/1.csv"],
        "fileFormat": "csv",
        "encoding": "utf8/gbk/...",
        "fieldDelimiter": ",",
        "useMultiCharDelimiter": true,
        "lineDelimiter": "\n",
        "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 editor de código permite adicionar fontes de dados. O valor deste parâmetro deve corresponder exatamente ao nome da fonte de dados adicionada.

Sim

N/A

fileFormat

Tipo do arquivo de source. Valores válidos: csv, text, parquet, orc, json e jsonl.

Sim

N/A

object

Caminho do arquivo. Usado quando fileFormat é definido como csv, text, json ou jsonl.

Nota

Este parâmetro 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, defina este parâmetro como a/b/*.csv.

Sim

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

Nenhum

path

Caminho do arquivo. Usado quando fileFormat é definido como parquet ou orc.

Nota

Este parâmetro aceita o caractere curinga * e pode ser configurado como um array.

Por exemplo, para sincronizar os arquivos a/b/1.orc e a/b/2.orc, defina este parâmetro como a/b/*.orc.

Sim

Obrigatório quando fileFormat é parquet ou orc.

Nenhum

column

Lista de campos a serem lidos. O parâmetro type especifica o tipo de dado da source:

  • Formato CSV/TEXT: O parâmetro index indica o número da coluna (iniciando em 0) de onde os dados serão lidos, enquanto value define um valor constante.

  • Formato JSON/JSONL: Use jsonPath para definir uma expressão JSONPath que extraia os campos; o parâmetro value define um valor constante.

Por padrão, todos os dados podem ser lidos como STRING. Exemplo de configuração:

column": ["*"]

Também é possível especificar informações detalhadas das colunas. Exemplo:

// Formato CSV/TEXT
                    "column":    
    {       
        "type": "long",       
        "index": 0 //Obtém o campo int da primeira coluna do texto no Azure Blob Storage.
    },    
    {       
        "type": "string",       
        "value": "alibaba" //O Azure Blob Storage Reader gera internamente o campo string alibaba como campo atual.    
}
// Formato JSON/JSONL
"column":    
{       
"name": "id",       
"jsonPath": "$.id",       
"type": "LONG"
},    
{       
"name": "name",       
"jsonPath": "$.user.name",       
"type": "STRING"
},    
{       
"name": "source",       
"value": "azure",       
"type": "STRING"
}
Nota

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

Sim

Todos os dados são lidos como STRING.

fieldDelimiter

Delimitador de campo usado na leitura dos dados.

Nota
  • O Azure Blob Storage Reader exige um delimitador de campo para ler dados. Caso não seja especificado, a vírgula (,) será usada por padrão. A vírgula também é o valor padrão no console.

  • Se o delimitador for invisível, insira sua codificação Unicode. Exemplos: \u001b e \u007c.

Sim

,

lineDelimiter

Delimitador de linha usado na leitura dos dados.

Nota

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

Não

N/A

compress

Tipo de compressão para arquivos de texto. Por padrão, este parâmetro fica vazio, indicando ausência de compressão. Os tipos aceitos são gzip, bzip2 e zip.

Não

Sem compressão

encoding

Configuração de codificação para leitura dos arquivos.

Não

utf-8

nullFormat

Strings padrão não conseguem definir null (ponteiro nulo) em arquivos de texto. O sistema de sincronização de dados oferece o nullFormat para determinar quais strings representam null. Exemplos:

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

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

  • Caso o parâmetro "nullFormat" não seja especificado, equivale a "não configurado", ou seja, os dados de source são gravados no destino sem nenhuma conversão.

Não

N/A

skipHeader

Em arquivos CSV, use skipHeader para indicar se o cabeçalho deve ser lido.

  • True: O cabeçalho é lido durante a sincronização dos dados da source.

  • False: O cabeçalho não é lido durante a sincronização dos dados da source.

Nota

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

Não

false

parquetSchema

Configure este parâmetro ao ler dados do Azure Blob Storage no formato Parquet. Ele só tem efeito quando fileFormat é definido como parquet e especifica a descrição de tipos do armazenamento Parquet. Certifique-se de que a configuração geral obedeça à sintaxe JSON após definir parquetSchema.

message MessageTypeName {
Required or not, DataType, ColumnName;
......................;
}

O formato de configuração do parquetSchema segue as regras abaixo:

  • Nome do MessageType: Defina um nome.

  • Obrigatoriedade: required indica que o campo não pode estar vazio; optional indica que o campo pode estar vazio. Recomendamos definir todos os campos como optional.

  • Tipos de dados: Arquivos Parquet aceitam BOOLEAN, Int32, Int64, Int96, FLOAT, DOUBLE, BINARY (use BINARY para strings) e fixed_len_byte_array.

  • Cada definição de coluna em uma linha deve terminar com ponto e vírgula, inclusive a última linha.

Veja um exemplo de configuração abaixo.

"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

N/A

csvReaderConfig

Configurações de parâmetros para leitura de arquivos CSV. O valor é do tipo Map. O CsvReader lê arquivos CSV e, se este parâmetro não for configurado, os valores padrão serão aplicados.

Não

N/A

maxRetryTimes

Número máximo de tentativas caso o download de um arquivo falhe.

Nota
  • Defina este parâmetro como 0 para desativar o recurso.

  • Este parâmetro só pode ser configurado no modo de editor de código. Não é aceito na interface visual sem código.

Não

0

retryIntervalSeconds

Intervalo entre novas tentativas quando o download de um arquivo falhar. Unidade: segundos.

Nota

Este parâmetro só pode ser configurado no modo de editor de código. Não é aceito na interface visual sem código.

Não

5

Exemplo de script do Writer

O exemplo abaixo mostra uma configuração no modo script para gravar dados no Azure Blob Storage. O lado do Reader usa stream como marcador de posição. Substitua-o pela configuração real da fonte de dados de source.

{
  "type": "job",
  "version": "2.0",
  "steps": [
    {
      "stepType": "stream",
      "parameter": {},
      "name": "Reader",
      "category": "reader"
    },
    {
      "stepType": "azureblob",
      "parameter": {
        "datasource": "",
        "fileFormat": "csv",
        "object": "dir/example.csv",
        "fieldDelimiter": ",",
        "lineDelimiter": "\n",
        "encoding": "UTF-8",
        "nullFormat": "null",
        "dateFormat": "yyyy-MM-dd",
        "writeMode": "truncate",
        "maxFileSize": 100,
        "writeSingleObject": false
      },
      "name": "Writer",
      "category": "writer"
    }
  ],
  "setting": {
    "errorLimit": {
      "record": "0"
    },
    "speed": {
      "concurrent": 1
    }
  },
  "order": {
    "hops": [
      {
        "from": "Reader",
        "to": "Writer"
      }
    ]
  }
}

Parâmetros do script do Writer

Parâmetro

Descrição

Obrigatório

Valor padrão

datasource

Nome da fonte de dados. O modo script permite adicionar fontes de dados. O valor deste parâmetro deve corresponder exatamente ao nome da fonte de dados adicionada. A fonte de dados deve estar configurada com a URL SAS e a assinatura (sig) do contêiner do Azure Blob Storage.

Sim

N/A

object

Nome do arquivo onde o Azure Blob Storage Writer gravará os dados, incluindo o prefixo do caminho. Diretórios são simulados por meio de nomes de arquivo, usando a barra (/) como delimitador.

  • Ao usar "object": "datax.csv", o objeto gravado começará com datax. Na gravação de múltiplos arquivos, uma string UUID aleatória será anexada como sufixo.

  • Ao usar "object": "cdo/datax.csv", o objeto gravado começará com cdo/datax.

  • Para evitar o sufixo UUID aleatório, configure "writeSingleObject": "true". Consulte a descrição de writeSingleObject para mais detalhes.

Sim

N/A

writeMode

Define como o Azure Blob Storage Writer trata dados existentes antes da gravação:

  • truncate: Antes de gravar, exclui todos os objetos cujos nomes correspondam ao prefixo especificado. Por exemplo, ao definir "object":"abc", todos os objetos iniciados com abc serão removidos.

  • append: Nenhum processamento prévio é realizado. Os dados são gravados diretamente usando o nome do objeto. Na gravação de múltiplos arquivos, sufixos UUID aleatórios evitam conflitos de nomes.

  • nonConflict: Antes de gravar, o sistema verifica se o objeto especificado já existe. Em caso afirmativo, retorna um erro.

Sim

Nenhum

writeSingleObject

Indica se os dados devem ser gravados em um único arquivo:

  • true: Todas as tarefas concorrentes gravam no mesmo objeto usando upload fragmentado de Block Blob. Nenhum arquivo vazio é gerado se não houver dados lidos.

  • false: Cada tarefa concorrente grava em um objeto separado. Um sufixo UUID aleatório é anexado ao nome do arquivo. Se não houver dados lidos, um arquivo vazio contendo apenas o cabeçalho será gerado caso o parâmetro header esteja configurado. Caso contrário, nenhum arquivo será criado.

Nota

Este parâmetro não tem efeito na gravação de dados nos formatos Parquet ou ORC.

Não

false

fileFormat

Formato de gravação dos arquivos. Valores válidos:

  • csv: Apenas o formato CSV estrito é aceito. Se os dados a serem gravados contiverem delimitadores de coluna, eles serão escapados conforme a sintaxe de escape CSV, usando aspas duplas (") como caractere de escape.

  • text: Os dados são separados por delimitadores de coluna. Se os dados contiverem delimitadores de coluna, nenhum escape será realizado.

  • jsonl: Dados gravados no formato JSON Lines, com um objeto JSON por linha.

  • parquet: É necessário adicionar o parâmetro parquetSchema para definir os tipos de dados. Aceito apenas no modo script.

  • orc: É necessário alternar para o modo script para realizar a configuração.

Não

text

fieldDelimiter

Delimitador de campo usado na gravação. Válido para os formatos csv e text. Se não for especificado, a vírgula (,) será usada como padrão. Para delimitadores invisíveis, insira a codificação Unicode, como \u001b ou \u007c.

Não

,

encoding

Codificação do arquivo de saída.

Não

utf-8

nullFormat

Null (ponteiro vazio) não pode ser definido por strings padrão em arquivos de texto. O sistema de sincronização fornece o parâmetro nullFormat para indicar quais strings devem ser tratadas como null. Por exemplo, ao configurar nullFormat:"null" e o dado de source for null, o sistema tratará o campo como nulo.

Não

\N

dateFormat

Formato utilizado para formatar dados do tipo data.

Não

yyyy-MM-dd HH:mm:ss

header

Cabeçalho do arquivo de saída. Exemplo: ["id", "name", "age"]. Válido para os formatos csv e text. O cabeçalho é gravado no início do primeiro bloco.

Não

N/A

blockSizeInMB

Tamanho de cada bloco em MB durante o upload fragmentado de dados Block Blob. O Azure Block Blob aceita até 50.000 blocos, com tamanho individual entre 4 MB e 100 MB. Se o número de blocos exceder o limite, aumente o tamanho do bloco para permitir uploads de arquivos maiores. Nota Este parâmetro é aceito apenas no modo avançado, não estando disponível na interface visual sem código. Tem efeito apenas nos formatos text, csv e jsonl.

Não

64

parquetSchema

Parâmetro necessário para gravação no formato Parquet. Descreve a estrutura do arquivo de destino e só tem efeito quando fileFormat é definido como parquet. O formato segue as regras abaixo.

O formato de configuração do parquetSchema é descrito a seguir:

  • Nome do MessageType: Insira um nome.

  • Obrigatoriedade: required indica que o campo não pode ser null; optional indica que o campo pode ser null. Recomendamos definir todos os campos como optional.

  • Tipos de dados: Arquivos Parquet aceitam BOOLEAN, Int32, Int64, Int96, FLOAT, DOUBLE, BINARY (use BINARY para strings) e fixed_len_byte_array.

  • Cada definição de coluna em uma linha deve terminar com ponto e vírgula, inclusive a última linha.

Veja um exemplo de configuração abaixo.

"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

N/A

column

Informações das colunas de destino configuradas ao gravar dados nos formatos Parquet ou ORC. Formato: {"name":"nome da coluna","type":"tipo da coluna"}.

Não

N/A

compress

Formato de compressão para gravação de arquivos Parquet ou ORC, como SNAPPY e NONE. Compressão não é aceita nos formatos text, CSV ou JSONL.

Não

N/A

maxRetryTimes

Número máximo de tentativas em caso de falha na gravação, incluindo upload de blocos, confirmação de listas de blocos e exclusão de objetos. Defina como 0 para desativar novas tentativas. Nota Este parâmetro está disponível apenas no modo script e não pode ser configurado na interface visual sem código.

Não

30

retryIntervalSeconds

Intervalo entre tentativas após falhas na gravação. Unidade: segundos. Disponível apenas no modo script, não podendo ser configurado na interface visual sem código.

Não

5

requestTimeoutSeconds

Tempo limite para uma única requisição. Unidade: segundos. Disponível apenas no modo script, não podendo ser configurado na interface visual sem código.

Não

60