DataWorks Data Integration descarga archivos de endpoints HTTP remotos mediante el protocolo HTTP y los sincroniza con una fuente de datos de destino.
Grupos de recursos compatibles
HttpFile admite los grupos de recursos que se muestran a continuación:
Tipos de campo compatibles
|
Tipo de dato |
Descripción |
|
STRING |
Texto. |
|
LONG |
Entero. |
|
BYTES |
Matriz de bytes. El contenido de texto se convierte en una matriz de bytes codificada en UTF-8. |
|
BOOL |
Booleano. |
|
DOUBLE |
Decimal. |
|
DATE |
Fecha y hora. Formatos compatibles: |
Formatos de archivo y compresión compatibles
|
Formato de archivo |
Compatible |
|
CSV |
Sí |
|
TEXT (delimitado) |
Sí |
|
JSON |
Sí |
|
JSONL |
Sí |
|
Compresión |
Compatible |
|
gzip |
Sí |
|
bzip2 |
Sí |
|
zip |
Sí |
skipHeader no es compatible con archivos comprimidos.
Agregar una fuente de datos
Agregue la fuente de datos HttpFile en la página Data Source Management antes de crear una tarea de sincronización. Para obtener instrucciones, consulte Administración de fuentes de datos.
Configure una tarea de sincronización
Configure una tarea de sincronización sin conexión
Use la interfaz sin código o el editor de código y configure su tarea:
Para consultar la referencia completa del script y las descripciones de los parámetros, consulte Referencia del script.
Referencia del script
Ejemplo de script del lector
El script que se muestra a continuación lee desde un archivo CSV por HTTP mediante GET, omite la fila de encabezado y asigna cinco columnas a distintos tipos de datos.
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "httpfile",
"parameter": {
"datasource": "<data-source-name>",
"fileName": "/data/export.csv",
"requestMethod": "GET",
"requestHeaders": {
"Authorization": "Bearer <token>"
},
"socketTimeoutSeconds": 3600,
"connectTimeoutSeconds": 60,
"bufferByteSizeInKB": 1024,
"fileFormat": "csv",
"encoding": "utf-8",
"fieldDelimiter": ",",
"skipHeader": true,
"compress": "",
"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"
}
]
}
}
Reemplace los marcadores de posición con sus valores reales:
|
Marcador de posición |
Descripción |
Ejemplo |
|
|
El nombre de la fuente de datos HttpFile en la página Data Source Management. |
|
|
|
Su token de autenticación de API. |
|
Parámetros del lector
Los parámetros se agrupan por función. Los parámetros de conexión definen cómo llegar al endpoint; los parámetros de comportamiento de lectura determinan cómo se analiza el archivo.
Parámetros de conexión
|
Parámetro |
Descripción |
Obligatorio |
Predeterminado |
|
|
Nombre de la fuente de datos HttpFile. Debe coincidir exactamente con el nombre de la página Data Source Management. |
Sí |
Ninguna |
|
|
Ruta del archivo en el servidor HTTP. Codifique en URL cualquier carácter especial o no ASCII. Por ejemplo, un espacio en |
Sí |
Ninguna |
|
|
Método HTTP. Valores válidos: |
No |
|
|
|
Parámetros de consulta que se agregan a la URL. Solo surten efecto cuando |
No |
Ninguna |
|
|
Cuerpo de la solicitud. Solo surte efecto cuando |
No |
Ninguna |
|
|
Encabezados de solicitud HTTP como pares clave-valor. Ejemplo: |
No |
|
|
|
Tiempo de espera al establecer una conexión HTTP, en segundos. Si se excede, la tarea falla. Disponible solo en modo avanzado; no se puede configurar en la interfaz sin código. |
No |
|
|
|
Tiempo de espera entre paquetes de datos consecutivos, en segundos. Si se excede, la tarea falla. Disponible solo en modo avanzado; no se puede configurar en la interfaz sin código. |
No |
|
|
|
Tamaño del búfer de descarga, en KB. |
No |
|
Parámetros de comportamiento de lectura
|
Parámetro |
Descripción |
Obligatorio |
Predeterminado |
|
|
Formato del archivo de origen. Valores válidos: |
No |
Ninguna |
|
|
Codificación de caracteres del archivo. |
No |
|
|
|
Delimitador de campo. Para caracteres no imprimibles, use la representación Unicode; por ejemplo, |
Sí |
|
|
|
Indica si el delimitador de campo es una cadena de varios caracteres. |
No |
|
|
|
Delimitador de línea. Solo surte efecto cuando |
No |
Ninguna |
|
|
Indica si se omite la primera fila. Establézcalo en |
No |
|
|
|
Formato de compresión del archivo de origen. Déjelo en blanco si el archivo no está comprimido. Valores válidos: |
No |
Ninguna (sin comprimir) |
|
|
Lista de columnas que se leerán. Cada entrada requiere |
Sí |
Todas las columnas se leen como STRING |
|
|
Cadena en el archivo de origen que representa un valor nulo. Por ejemplo, |
No |
Ninguna |
Configuración de columnas
Cada entrada de la matriz column usa los campos que se describen a continuación:
|
Campo |
Descripción |
|
|
Tipo de dato de la columna. Obligatorio. Valores válidos: |
|
|
Posición de la columna en el archivo de origen, a partir de 0. Disponible para el formato CSV/TEXT. Especifique |
|
|
Expresión JSONPath que se usa para extraer campos de los datos de origen. Disponible para el formato JSON/JSONL. Especifique |
|
|
Valor constante para rellenar la columna, en lugar de leer del archivo de origen. |
Para leer todas las columnas como STRING sin especificar tipos individuales:
"column": ["*"]
Para asignar columnas específicas con tipos e insertar una constante (formato CSV/TEXT):
// CSV/TEXT format
"column": [
{ "type": "long", "index": 0 },
{ "type": "string", "value": "alibaba" }
]
Para extraer campos mediante expresiones JSONPath (formato JSON/JSONL):
// JSON/JSONL format
"column": [
{ "name": "id", "jsonPath": "$.id", "type": "LONG" },
{ "name": "name", "jsonPath": "$.user.name", "type": "STRING" },
{ "name": "source", "value": "httpfile", "type": "STRING" }
]