A fonte de dados do Azure Blob Storage permite ler arquivos e sincronizar dados com um destino. Este tópico aborda os tipos de dados compatíveis, a adição da fonte de dados e os parâmetros de script para configure uma tarefa de sincronização em lote.
Tipos de dados compatíveis
|
Tipo de dado |
Descrição |
|
STRING |
Texto |
|
LONG |
Inteiro |
|
BYTES |
Array de bytes. O conteúdo textual é lido e convertido em um array de bytes codificado em UTF-8. |
|
BOOL |
Booleano |
|
DOUBLE |
Número de ponto flutuante |
|
DATE |
Data e hora. Formatos compatíveis: |
Pré-requisitos
Antes de desenvolver uma tarefa de sincronização, adicione o Azure Blob Storage como source de dados no DataWorks. Para obter instruções, consulte Gerenciamento de fontes de dados.
As descrições dos parâmetros estão disponíveis no console do DataWorks durante a adição da fonte de dados.
Desenvolver uma tarefa de sincronização
Configurar uma tarefa de sincronização offline para uma única tabela
Use a interface sem código ou o editor de código para configure a tarefa de sincronização:
Interface sem código: Configurar uma tarefa na interface sem código
Editor de código: Configurar uma tarefa no editor de código
Para consultar todos os parâmetros de script e um exemplo, veja a seção Apêndice: Exemplo de script e descrições de parâmetros.
Apêndice: Exemplo de script e descrições de parâmetros
Exemplo de script do Reader
O script abaixo configura uma tarefa de sincronização em lote que lê dados do Azure Blob Storage pelo editor de código. Todos os parâmetros do Reader são definidos em steps[0].parameter.
{
"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 de script do Reader
Parâmetros obrigatórios
|
Parâmetro |
Descrição |
Padrão |
|
|
Nome da fonte de dados. Deve corresponder ao nome configurado no DataWorks. |
Nenhum |
|
|
Formato do arquivo. Valores válidos: |
Nenhum |
|
|
Caminho para arquivos CSV e de texto. Aceita o caractere curinga |
Nenhum |
|
|
Caminho para arquivos Parquet e ORC. Aceita o caractere curinga |
Nenhum |
|
|
Lista de colunas para leitura. Cada entrada exige |
Todas as colunas como STRING |
**Exemplos de curingas para object e path:**
|
Padrão |
Correspondências |
|
|
Todos os arquivos CSV diretamente em |
|
|
Um único arquivo |
|
|
Vários arquivos específicos |
Exemplos de configuração de colunas:
Leitura de todas as colunas como STRING:
"column": ["*"]
Leitura de colunas específicas com tipos explícitos:
"column": [
{ "type": "long", "index": 0 },
{ "type": "string", "value": "alibaba" }
]
O campo value gera uma coluna constante em vez de ler o arquivo de origem.
Parâmetros opcionais
|
Parâmetro |
Descrição |
Padrão |
|
|
Codificação do arquivo, como |
|
|
|
Delimitador de campo para leitura. Use codificação Unicode para caracteres não imprimíveis, como |
|
|
|
Indica se |
|
|
|
Delimitador de linha. Válido apenas se |
Nenhum |
|
|
Tipo de compactação. Valores válidos: |
Sem compactação |
|
|
Define qual string representa nulo. Por exemplo, |
Nenhum |
|
|
Aplicável apenas a arquivos CSV. Defina como |
|
|
|
Especifica o schema de arquivos Parquet. Válido apenas se |
Nenhum |
|
|
Configuração adicional para leitura de CSV. Tipo mapa. Assume valores padrão se não definido. |
Nenhum |
|
|
Número máximo de tentativas se o baixe do arquivo falhar. Defina como |
|
|
|
Intervalo entre tentativas, em segundos, se o baixe do arquivo falhar. Disponível somente no editor de código. |
|
**Formato de parquetSchema:**
message <MessageTypeName> {
required/optional <DataType> <ColumnName>;
...;
}
Defina todos os campos como
optionalpara permitir valores nulos.Tipos de dados compatíveis:
BOOLEAN,Int32,Int64,Int96,FLOAT,DOUBLE,BINARY(para strings),fixed_len_byte_array.Finalize cada definição de coluna com ponto e vírgula, inclusive a última.
Exemplo:
"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; }"