Todos los productos
Search
Centro de documentos

DataWorks:Origen de datos de Azure Blob Storage

Última actualización: Sep 09, 2026

DataWorks proporciona Azure Blob Storage Reader y Azure Blob Storage Writer para leer y escribir datos en archivos almacenados en Azure Blob Storage. Con Azure Blob Storage Reader, acceda a los archivos almacenados en Azure Blob Storage, analice sintácticamente sus datos y sincronícelos hacia un destino. También utilice Azure Blob Storage Writer para escribir datos desde cualquier origen hacia Azure Blob Storage. Este tema describe las funciones de sincronización de datos desde y hacia orígenes de datos de Azure Blob Storage.

Limitaciones

El origen de datos de Azure Blob Storage es compatible con los siguientes tipos de datos.

Tipo de dato

Descripción

STRING

Texto.

LONG

Entero.

BYTES

Matriz de bytes. El texto leído se convierte en una matriz de bytes. El formato de codificación es UTF-8.

BOOL

Booleano.

DOUBLE

Punto flotante.

DATE

Fecha y hora. Se admiten los siguientes formatos de fecha y hora:

  • YYYY-MM-dd HH:mm:ss

  • yyyy-MM-dd

  • HH:mm:ss

Agregar un origen de datos

Antes de desarrollar una tarea de sincronización en DataWorks, agregue el origen de datos necesario mediante las instrucciones de Data source configuration. Consulte las descripciones de parámetros en la consola de DataWorks para comprender el significado de cada parámetro al agregar un origen de datos.

Desarrollar una tarea de sincronización de datos

Para conocer el punto de entrada y el procedimiento para configurar una tarea de sincronización, consulte las siguientes guías de configuración.

Configurar una tarea de sincronización por lotes para sincronizar datos de una sola tabla

Apéndice: script de ejemplo y descripción de parámetros

Configurar una tarea de sincronización por lotes mediante el editor de código

Si desea configurar una tarea de sincronización por lotes mediante el editor de código, configure los parámetros correspondientes en el script según los requisitos unificados de formato de scripts. Para obtener más información, consulte Script mode configuration. A continuación se describen los parámetros que debe configurar para los orígenes de datos cuando utiliza el editor de código.

Script de ejemplo de Reader

A continuación se muestra un ejemplo de configuración en el editor de código para leer datos de Azure Blob Storage. En el lado del writer se usa stream como marcador de posición. Reemplácelo con la configuración del origen de datos de destino real.

{
  "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 del script de Reader

Parámetro

Descripción

Obligatorio

Valor predeterminado

datasource

Nombre del origen de datos. El editor de código permite agregar orígenes de datos. El valor de este parámetro debe coincidir con el nombre del origen de datos que agregó.

Sí

N/A

fileFormat

Tipo del archivo de origen. Valores válidos: csv, text, parquet, orc, json y jsonl.

Sí

N/A

object

Ruta del archivo. Este parámetro se utiliza cuando fileFormat se establece en csv, text, json o jsonl.

Nota

Este parámetro admite el comodín * y se puede establecer como una matriz.

Por ejemplo, para sincronizar los archivos a/b/1.csv y a/b/2.csv, establezca este parámetro en a/b/*.csv.

Sí

Obligatorio cuando fileFormat se establece en csv, text, json o jsonl.

Ninguna

path

Ruta del archivo. Este parámetro se utiliza cuando fileFormat se establece en parquet u orc.

Nota

Este parámetro admite el comodín * y se puede establecer como una matriz.

Por ejemplo, para sincronizar los archivos a/b/1.orc y a/b/2.orc, establezca este parámetro en a/b/*.orc.

Sí

Obligatorio cuando fileFormat se establece en parquet u orc.

Ninguna

column

Lista de campos que se van a leer. El parámetro type especifica el tipo de dato de los datos de origen:

  • Formato CSV/TEXT: el parámetro index especifica el número de columna (a partir de 0) desde donde se lee la columna actual, mientras que el parámetro value especifica un valor constante.

  • Formato JSON/JSONL: use jsonPath para especificar una expresión JSONPath que extraiga los campos, y el parámetro value para especificar un valor constante.

De forma predeterminada, todos los datos se pueden leer como tipo STRING. Ejemplo de configuración:

column": ["*"]

También es posible especificar la información de los campos de la columna. Ejemplo de configuración:

// CSV/TEXT format
                    "column":    
    {       
        "type": "long",       
        "index": 0 //Obtain the int field from the first column of the Azure Blob Storage text.
    },    
    {       
        "type": "string",       
        "value": "alibaba" //Azure Blob Storage Reader internally generates the string field alibaba as the current field.    
}
// JSON/JSONL format
"column":    
{       
"name": "id",       
"jsonPath": "$.id",       
"type": "LONG"
},    
{       
"name": "name",       
"jsonPath": "$.user.name",       
"type": "STRING"
},    
{       
"name": "source",       
"value": "azure",       
"type": "STRING"
}
Nota

En la información de column que especifique, el campo type es obligatorio. Para el formato CSV/TEXT, especifique index o value. Para el formato JSON/JSONL, especifique jsonPath o value.

Sí

Todos los datos se leen como tipo STRING.

fieldDelimiter

Delimitador de campos utilizado para leer los datos.

Nota
  • Azure Blob Storage Reader requiere un delimitador de campos para leer datos. Si no especifica uno, se utiliza la coma (,) de forma predeterminada. La coma (,) también es el valor predeterminado en la consola.

  • Si el delimitador es invisible, introduzca su codificación Unicode. Por ejemplo: \u001b y \u007c.

Sí

,

lineDelimiter

Delimitador de líneas utilizado para leer los datos.

Nota

Este parámetro solo surte efecto cuando fileFormat se establece en text.

No

N/A

compress

Tipo de compresión para archivos de texto. De forma predeterminada, este parámetro se deja vacío, lo que indica que no se aplica ninguna compresión. Los tipos de compresión compatibles son gzip, bzip2 y zip.

No

Sin compresión

encoding

Configuración de codificación para leer archivos.

No

utf-8

nullFormat

Las cadenas estándar no permiten definir null (puntero nulo) en archivos de texto. El sistema de sincronización de datos proporciona nullFormat para definir qué cadenas representan null. Por ejemplo:

  • Si establece nullFormat:"null", equivale a un "carácter visible". Si los datos de origen son null, el sistema de sincronización de datos los trata como un campo nulo.

  • Si establece nullFormat:"\u0001", equivale a un "carácter invisible". Si los datos de origen son la cadena "\u0001", el sistema de sincronización de datos los trata como un campo nulo.

  • Si no especifica el parámetro "nullFormat", equivale a "no configurado". Esto significa que los datos de origen se escriben en el destino tal cual, sin ninguna conversión.

No

N/A

skipHeader

Para archivos CSV, use skipHeader para especificar si se debe leer el encabezado.

  • True: el encabezado se lee cuando se sincronizan los datos desde el origen de datos.

  • False: el encabezado no se lee cuando se sincronizan los datos desde el origen de datos.

Nota

skipHeader no es compatible con el modo de archivo comprimido.

No

false

parquetSchema

Este parámetro se configura cuando lee datos de Azure Blob Storage en formato de archivo Parquet. Solo surte efecto cuando fileFormat se establece en parquet y especifica la descripción de tipos del almacenamiento Parquet. Asegúrese de que la configuración general cumpla con la sintaxis JSON después de especificar parquetSchema.

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

El formato de configuración de parquetSchema se describe a continuación:

  • Nombre de MessageType: especifique un nombre.

  • Requerido o no: required indica que el campo no puede estar vacío, mientras que optional indica que sí puede estarlo. Se recomienda establecer todos los campos como optional.

  • Tipo de dato: los archivos Parquet admiten los siguientes tipos de datos: BOOLEAN, Int32, Int64, Int96, FLOAT, DOUBLE, BINARY (especifique BINARY para tipos de cadena) y fixed_len_byte_array.

  • Cada configuración de columna en una fila debe terminar con un punto y coma, incluida la última fila.

El siguiente ejemplo muestra la configuración.

"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; }"

No

N/A

csvReaderConfig

Configuración de parámetros para leer archivos CSV. El valor es de tipo Map. CsvReader se utiliza para leer archivos CSV. Si no configura este parámetro, se utilizan los valores predeterminados.

No

N/A

maxRetryTimes

Número máximo de reintentos cuando falla la descarga de un archivo.

Nota
  • Establezca este parámetro en 0 para deshabilitar esta función.

  • Este parámetro solo se puede configurar en el modo de editor de código. No es compatible con la interfaz de usuario sin código.

No

0

retryIntervalSeconds

Intervalo entre reintentos cuando falla la descarga de un archivo. Unidad: segundos.

Nota

Este parámetro solo se puede configurar en el modo de editor de código. No es compatible con la interfaz de usuario sin código.

No

5

Script de ejemplo de Writer

El siguiente ejemplo muestra una configuración en modo script para escribir datos en Azure Blob Storage. En el lado del reader se usa stream como marcador de posición. Reemplácelo con la configuración real del origen de datos de origen.

{
  "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 del script de Writer

Parámetro

Descripción

Obligatorio

Valor predeterminado

datasource

Nombre del origen de datos. El modo script permite agregar orígenes de datos. El valor de este parámetro debe coincidir con el nombre del origen de datos que agregó. El origen de datos debe configurarse con la URL SAS y la firma (sig) del contenedor de Azure Blob Storage.

Sí

N/A

object

Nombre del archivo en el que Azure Blob Storage Writer escribe los datos, incluido el prefijo de ruta. Los directorios se simulan mediante nombres de archivo, y el delimitador es una barra diagonal (/).

  • Si usa "object": "datax.csv", el objeto escrito comienza con datax. Cuando se escriben varios archivos, se agrega una cadena UUID aleatoria como sufijo.

  • Si usa "object": "cdo/datax.csv", el objeto escrito comienza con cdo/datax.

  • Si no desea un sufijo UUID aleatorio, configure "writeSingleObject": "true". Para obtener más información, consulte la descripción de writeSingleObject.

Sí

N/A

writeMode

Especifica cómo Azure Blob Storage Writer procesa los datos existentes antes de escribir:

  • truncate: antes de escribir, se eliminan todos los objetos cuyos nombres coinciden con el prefijo de nombre de objeto especificado. Por ejemplo, si establece "object":"abc", se eliminan todos los objetos cuyos nombres comienzan con abc.

  • append: no se realiza ningún procesamiento antes de escribir. Los datos se escriben directamente usando el nombre del objeto. Cuando se escriben varios archivos, se usan sufijos UUID aleatorios para evitar conflictos de nombres.

  • nonConflict: antes de escribir, el sistema comprueba si el objeto especificado ya existe. Si existe, devuelve un error.

Sí

Ninguna

writeSingleObject

Especifica si los datos se escriben en un solo archivo:

  • true: todas las tareas simultáneas escriben en el mismo objeto mediante la carga fragmentada de Block Blob. No se genera ningún archivo vacío si no se leen datos.

  • false: cada tarea simultánea escribe en un objeto distinto. Se agrega un sufijo UUID aleatorio al nombre del archivo. Si no se leen datos, se genera un archivo vacío que solo contiene el encabezado cuando el parámetro header está configurado. De lo contrario, no se genera ningún archivo.

Nota

Este parámetro no surte efecto cuando escribe datos en formato Parquet u ORC.

No

false

fileFormat

Formato en el que se escriben los archivos. Valores válidos:

  • csv: solo se admite el formato CSV estricto. Si los datos que se van a escribir contienen delimitadores de columnas, se escapan según la sintaxis de escape de CSV. El carácter de escape es la comilla doble (").

  • text: los datos que se van a escribir se separan mediante delimitadores de columnas. Si contienen delimitadores de columnas, no se aplica ningún escape.

  • jsonl: los datos se escriben en formato JSON Lines, con un objeto JSON por línea.

  • parquet: debe agregar el parámetro parquetSchema para definir los tipos de datos. Solo se admite el modo script.

  • orc: debe cambiar al modo script para configurar.

No

text

fieldDelimiter

Delimitador de campos utilizado para escribir. Este parámetro es válido para los formatos csv y text. Si no lo especifica, se utiliza la coma (,) como delimitador predeterminado. Si el delimitador es invisible, introduzca la codificación Unicode, como \u001b o \u007c.

No

,

encoding

Codificación del archivo de salida.

No

utf-8

nullFormat

Null (puntero vacío) no se puede definir mediante cadenas estándar en archivos de texto. El sistema de sincronización de datos proporciona el parámetro nullFormat para definir qué cadenas se pueden tratar como null. Por ejemplo, si configura nullFormat:"null" y los datos de origen son null, el sistema de sincronización de datos trata el campo como un campo nulo.

No

\N

dateFormat

Formato utilizado para dar formato a los datos de tipo fecha.

No

yyyy-MM-dd HH:mm:ss

header

Encabezado del archivo de salida. Por ejemplo: ["id", "name", "age"]. Este parámetro es válido para los formatos csv y text. El encabezado se escribe al inicio del primer bloque.

No

N/A

blockSizeInMB

Tamaño de cada bloque en MB cuando los datos de Block Blob se cargan en bloques. Azure Block Blob admite un máximo de 50,000 bloques, y el tamaño de cada bloque varía de 4 MB a 100 MB. Si la cantidad de bloques supera el límite, aumente el tamaño del bloque para permitir la carga de archivos más grandes. Nota Este parámetro solo es compatible con el modo avanzado, no con el modo de interfaz de usuario sin código. Este parámetro solo surte efecto para los formatos text, csv y jsonl.

No

64

parquetSchema

Este parámetro es obligatorio cuando los datos se escriben en formato de archivo Parquet. Describe la estructura del archivo de destino y solo surte efecto cuando fileFormat se establece en parquet. El formato es el siguiente.

El formato de configuración de parquetSchema se describe a continuación:

  • Nombre de MessageType: introduzca un nombre.

  • Requerido o no: required indica que el campo no puede ser nulo, mientras que optional indica que sí puede serlo. Se recomienda establecer todos los campos como optional.

  • Tipo de dato: los archivos Parquet admiten los siguientes tipos de datos: BOOLEAN, Int32, Int64, Int96, FLOAT, DOUBLE, BINARY (use BINARY para tipos de cadena) y fixed_len_byte_array.

  • Cada configuración de columna en una fila debe terminar con un punto y coma, incluida la última fila.

El siguiente ejemplo muestra una configuración de muestra.

"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; }"

No

N/A

column

Información de la columna de destino configurada al escribir datos en formato Parquet u ORC. Formato: {"name":"column name","type":"column type"}.

No

N/A

compress

Formato de compresión para escribir archivos Parquet u ORC, como SNAPPY y NONE. La compresión no es compatible con los formatos text, CSV ni JSONL.

No

N/A

maxRetryTimes

Número máximo de reintentos tras errores de escritura, incluidos la carga de bloques, la confirmación de listas de bloques y la eliminación de objetos. Establezca este parámetro en 0 para deshabilitar los reintentos. Nota Este parámetro solo está disponible en el modo script y no se puede configurar en el modo de interfaz de usuario sin código.

No

30

retryIntervalSeconds

Intervalo entre reintentos tras errores de escritura. Unidad: segundos. Este parámetro solo está disponible en el modo script y no se puede configurar en el modo de interfaz de usuario sin código.

No

5

requestTimeoutSeconds

Tiempo de espera de una sola solicitud. Unidad: segundos. Este parámetro solo está disponible en el modo script y no se puede configurar en el modo de interfaz de usuario sin código.

No

60