Data Integration de DataWorks télécharge des fichiers depuis des endpoints HTTP distants via le protocole HTTP et les synchronise vers une source de données cible.
Groupes de ressources pris en charge
HttpFile prend en charge les groupes de ressources suivants :
Types de champs pris en charge
| Type de données | Description |
|---|---|
| STRING | Texte. |
| LONG | Entier. |
| BYTES | Tableau d'octets. Le contenu texte est converti en tableau d'octets encodé en UTF-8. |
| BOOL | Booléen. |
| DOUBLE | Décimal. |
| DATE | Date et heure. Formats pris en charge : yyyy-MM-dd HH:mm:ss, yyyy-MM-dd, HH:mm:ss. |
Formats de fichier et compression pris en charge
| Format de fichier | Pris en charge |
|---|---|
| CSV | Oui |
| TEXT (délimité) | Oui |
| Compression | Pris en charge |
|---|---|
| gzip | Oui |
| bzip2 | Oui |
| zip | Oui |
Le paramètre skipHeader n'est pas pris en charge pour les fichiers compressés.
Ajouter une source de données
Ajoutez la source de données HttpFile sur la page Data Source Management avant de créer une tâche de synchronisation. Pour plus d'instructions, consultez la rubrique Gestion des sources de données.
Configurer une tâche de synchronisation
Configurer une tâche de synchronisation par lots
Utilisez l'interface sans code ou l'éditeur de code pour configurer votre tâche :
Pour la référence complète du script et la description des paramètres, consultez la section Référence du script.
Référence du script
Exemple de script Reader
Le script suivant lit un fichier CSV via HTTP à l'aide de la méthode GET, ignore la ligne d'en-tête et mappe cinq colonnes vers différents types de données.
{
"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"
}
]
}
}
Remplacez les espaces réservés par vos valeurs réelles :
| Espace réservé | Description | Exemple |
|---|---|---|
<data-source-name> |
Nom de la source de données HttpFile sur la page Data Source Management. | my-http-source |
<token> |
Jeton d'authentification API. | eyJhbGc... |
Paramètres du Reader
Les paramètres sont regroupés par fonction. Les paramètres de connexion définissent l'accès à l'endpoint ; les paramètres de comportement de lecture contrôlent l'analyse du fichier.
Paramètres de connexion
| Paramètre | Description | Obligatoire | Valeur par défaut |
|---|---|---|---|
datasource |
Nom de la source de données HttpFile. Doit correspondre exactement au nom indiqué sur la page Data Source Management. | Oui | Aucune |
fileName |
Chemin d'accès au fichier sur le serveur HTTP. Encodez en URL tous les caractères spéciaux ou non ASCII. Par exemple, un espace dans /file/test abc.csv devient /file/test%20abc.csv. L'URL de requête finale combine l'URL de base de la source de données avec ce chemin. Pour les règles d'encodage, consultez la page HTML URL Encoding Reference. |
Oui | Aucune |
requestMethod |
Méthode HTTP. Valeurs valides : GET, POST, PUT. |
Non | GET |
requestParam |
Paramètres de requête ajoutés à l'URL. Prend effet uniquement lorsque requestMethod est défini sur GET. Encodez en URL tous les caractères spéciaux. Par exemple, start=2024-03-25 17:06:54 devient start=2024-03-25%2017:06:54. |
Non | Aucune |
requestBody |
Corps de la requête. Prend effet uniquement lorsque requestMethod est défini sur POST ou PUT. À utiliser conjointement avec Content-Type dans requestHeaders. Exemple : {"requestBody": "{\"a\":\"b\"}", "requestHeaders": {"Content-Type": "application/json"}} |
Non | Aucune |
requestHeaders |
En-têtes de requête HTTP sous forme de paires clé-valeur. Exemple : {"Content-Type": "application/json"} |
Non | {"User-Agent": "DataX Http File Reader"} |
connectTimeoutSeconds |
Délai d'attente lors de l'établissement d'une connexion HTTP, en secondes. Si ce délai est dépassé, la tâche échoue. Disponible uniquement en mode Avancé ; non configurable dans l'interface sans code. | Non | 60 |
socketTimeoutSeconds |
Délai d'attente entre les paquets de données consécutifs, en secondes. Si ce délai est dépassé, la tâche échoue. Disponible uniquement en mode Avancé ; non configurable dans l'interface sans code. | Non | 3600 |
bufferByteSizeInKB |
Taille du tampon de téléchargement, en Ko. | Non | 1024 |
Paramètres de comportement de lecture
| Paramètre | Description | Obligatoire | Valeur par défaut |
|---|---|---|---|
fileFormat |
Format du fichier source. Valeurs valides : csv, text. Les deux formats prennent en charge les délimiteurs de champ personnalisés. |
Non | Aucune |
encoding |
Encodage des caractères du fichier. | Non | utf-8 |
fieldDelimiter |
Délimiteur de champ. Pour les caractères non imprimables, utilisez la représentation Unicode, par exemple \u001b. |
Oui | , |
useMultiCharDelimiter |
Indique si le délimiteur de champ est une chaîne multi-caractères. | Non | false |
lineDelimiter |
Délimiteur de ligne. Prend effet uniquement lorsque fileFormat est défini sur text. |
Non | Aucune |
skipHeader |
Indique s'il faut ignorer la première ligne. Définissez sur true pour les fichiers contenant une ligne d'en-tête. Non pris en charge pour les fichiers compressés. |
Non | false |
compress |
Format de compression du fichier source. Laissez vide si le fichier n'est pas compressé. Valeurs valides : gzip, bzip2, zip. |
Non | Aucune (non compressé) |
column |
Liste des colonnes à lire. Chaque entrée nécessite type et soit index soit value (mais pas les deux). Consultez la section Configuration des colonnes. |
Oui | Toutes les colonnes lues en tant que STRING |
nullFormat |
Chaîne dans le fichier source représentant une valeur null. Par exemple, "nullFormat": "null" traite la chaîne null comme null ; "nullFormat": "\u0001" traite le caractère non imprimable comme null. Si ce paramètre n'est pas défini, les données source sont écrites telles quelles dans la destination. |
Non | Aucune |
Configuration des colonnes
Chaque entrée du tableau column utilise les champs suivants :
| Champ | Description |
|---|---|
type |
Type de données de la colonne. Obligatoire. Valeurs valides : long, boolean, double, string, date. |
index |
Position de la colonne dans le fichier source, en commençant par 0. Spécifiez soit index soit value, mais pas les deux. |
value |
Valeur constante pour remplir la colonne, au lieu de lire depuis le fichier source. Spécifiez soit index soit value, mais pas les deux. |
Pour lire toutes les colonnes en tant que STRING sans spécifier de types individuels :
"column": ["*"]
Pour mapper des colonnes spécifiques avec des types et injecter une constante :
"column": [
{ "type": "long", "index": 0 },
{ "type": "string", "value": "alibaba" }
]