Tous les produits
Search
Centre de documentation

DataWorks:Source de données FTP

Dernière mise à jour :Aug 10, 2026

DataWorks prend en charge FTP en tant que source de données pour la lecture et l'écriture de données sur des serveurs FTP.

Limites

FTP Reader lit les données à partir de fichiers FTP distants et les convertit selon le protocole Data Integration. Les fichiers FTP distants sont stockés sous forme de données non structurées.

Pris en charge

Non pris en charge

  • Lecture des données uniquement à partir de fichiers texte. Le schéma des données contenues dans les fichiers texte doit correspondre à une table bidimensionnelle.

  • Lecture des données à partir de fichiers de type CSV avec des délimiteurs personnalisés.

  • Lecture des données de divers types sous forme de chaînes de caractères. L'élagage des colonnes et les colonnes constantes sont pris en charge.

  • Prise en charge des lectures récursives et du filtrage par nom de fichier.

  • Prise en charge de la compression des fichiers. Les formats de compression suivants sont pris en charge : gzip, bzip2, zip, lzo et lzo_deflate.

  • Prise en charge des lectures simultanées à partir de plusieurs fichiers.

  • Lecture simultanée d'un seul fichier à l'aide de threads parallèles. Cette fonctionnalité nécessite un algorithme interne de fractionnement des fichiers.

  • La lecture simultanée d'un seul fichier compressé à l'aide de threads parallèles n'est pas prise en charge en raison de limitations techniques.

FTP Writer convertit les données selon le protocole Data Integration et les écrit dans des fichiers sur un serveur FTP.

Pris en charge

Non pris en charge

  • Écriture des données uniquement dans des fichiers texte. Les données BLOB, telles que les vidéos, ne sont pas prises en charge. Le schéma des données contenues dans les fichiers texte doit correspondre à une table bidimensionnelle.

  • Écriture des données dans des fichiers de type CSV et TEXT avec des délimiteurs personnalisés.

  • Écriture des données à l'aide de threads parallèles. Chaque thread écrit les données dans un sous-fichier différent.

  • Écritures simultanées dans un seul fichier.

  • Types de données natifs. FTP Writer écrit toutes les données au format STRING.

  • Compression des fichiers lors de l'écriture des données.

Types de données pris en charge

Les fichiers FTP distants ne possèdent pas de types de données natifs. Les types de données sont définis par FTP Reader dans Data Integration.

Type Data Integration

Type FTP

LONG

LONG

DOUBLE

DOUBLE

STRING

STRING

BOOLEAN

BOOLEAN

DATE

DATE

Ajouter une source de données

Avant de développer une tâche de synchronisation dans DataWorks, vous devez ajouter la source de données requise à DataWorks en suivant les instructions fournies dans la rubrique Configuration de la source de données. Vous pouvez consulter les descriptions des paramètres dans la console DataWorks pour comprendre la signification des paramètres lors de l'ajout d'une source de données.

Développer une tâche de synchronisation des données

Pour obtenir des informations sur le point d'entrée et la procédure de configuration d'une tâche de synchronisation, consultez les guides de configuration ci-dessous.

Synchronisation par lot de table unique

Annexe : Exemple de script et paramètres

Configurer une tâche de synchronisation par lot à l'aide de l'éditeur de code

Si vous souhaitez configurer une tâche de synchronisation par lot à l'aide de l'éditeur de code, vous devez configurer les paramètres associés dans le script en respectant les exigences de format de script unifié. Pour plus d'informations, consultez la rubrique Configuration en mode script. Les informations suivantes décrivent les paramètres que vous devez configurer pour les sources de données lors de la configuration d'une tâche de synchronisation par lot à l'aide de l'éditeur de code.

Exemple de script Reader

{
    "type":"job",
    "version":"2.0",// Version number.
    "steps":[
        {
            "stepType":"ftp",// Plug-in name.
            "parameter":{
                "path":[],// File path.
                "nullFormat":"",// Null value.
                "compress":"",// Compression format.
                "datasource":"",// Data source.
                "column":[// Columns.
                    {
                        "index":0,// ID.
                        "type":""// Data type.
                    }
                ],
                "skipHeader":"",// Specifies whether to include a header.
                "fieldDelimiter":",",// Column delimiter.
                "encoding":"UTF-8",// Encoding format.
                "fileFormat":"csv"// File format.
            },
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"stream",
            "parameter":{},
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{
            "record":"0"// Maximum number of allowed dirty data records.
        },
        "speed":{
        "throttle":true,// If false, the mbps parameter is ignored and no throttling is applied. If true, throttling is applied based on the mbps value.
            "concurrent":1, // Job concurrency.
            "mbps":"12"// Throttling rate. 1 mbps = 1 MB/s.
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Paramètres du script Reader

Paramètre

Description

Obligatoire

Valeur par défaut

datasource

Nom de la source de données, qui doit correspondre au nom de la source de données configurée dans DataWorks.

Oui

Aucune

path

Chemin du fichier source sur le système de fichiers FTP distant. Vous devez spécifier le chemin complet du fichier source, y compris l'extension du fichier. Vous pouvez spécifier plusieurs chemins.

  • Si vous spécifiez un seul fichier FTP distant, FTP Reader ne peut utiliser qu'un seul thread pour extraire les données. Les versions futures de FTP Reader prendront en charge les lectures simultanées à partir d'un seul fichier non compressé à l'aide de threads parallèles.

  • Si vous spécifiez plusieurs fichiers FTP distants, FTP Reader peut utiliser des threads parallèles pour extraire les données. Le nombre de threads simultanés est déterminé par le nombre de canaux.

  • Si vous spécifiez un caractère générique, FTP Reader tente de parcourir et de trouver plusieurs fichiers. Par exemple, si vous spécifiez /, FTP Reader lit tous les fichiers du répertoire /. Si vous spécifiez /bazhen/, FTP Reader lit tous les fichiers du répertoire /bazhen/. FTP Reader prend en charge uniquement l'astérisque (*) comme caractère générique de fichier. Vous pouvez également utiliser des paramètres de planification pour configurer de manière flexible les noms et les chemins d'accès aux fichiers.

Remarque
  • Évitez d'utiliser le caractère générique astérisque (*). Ce caractère peut provoquer une erreur d'épuisement de la mémoire (OOM) de la machine virtuelle Java (JVM).

  • Data Integration considère tous les fichiers texte synchronisés dans une tâche comme une seule table de données. Vous devez vous assurer que tous les fichiers peuvent être traités avec le même schéma.

  • Vous devez vous assurer que les fichiers sont au format CSV et que le système Data Integration dispose des autorisations de lecture nécessaires.

  • Si aucun fichier correspondant au chemin spécifié n'est trouvé, la tâche de synchronisation des données échoue.

Oui

Aucune

column

Liste des colonnes à lire. type spécifie le type de données des données source. index spécifie la colonne à partir de laquelle vous souhaitez lire les données. La valeur est basée sur zéro. value spécifie une colonne constante. Dans ce cas, les données ne sont pas lues à partir du fichier source. Le système génère plutôt une colonne basée sur la valeur que vous spécifiez.

Par défaut, vous pouvez lire toutes les données au format STRING à l'aide de la configuration "column":["*"]. Vous pouvez spécifier le champ column comme suit.

{
        "type": "long",
        "index": 0    // Reads data from the first column of the remote FTP text file as an INT field.
      },
      {
        "type": "string",
        "value": "alibaba"  // Generates a string field whose value is alibaba in FTP Reader.
      }

Pour la column spécifiée, vous devez spécifier type et sélectionner soit index, soit value.

Oui

Aucune

fieldDelimiter

Délimiteur utilisé pour séparer les colonnes dans les fichiers source.

Remarque

Vous devez spécifier un délimiteur pour que FTP Reader puisse lire les données. Si vous ne spécifiez pas de délimiteur, la virgule (,) par défaut est utilisée. Dans l'interface utilisateur, une virgule (,) est également spécifiée par défaut.

Oui

,

skipHeader

Un fichier de type CSV peut comporter un en-tête. Vous pouvez ignorer l'en-tête. Par défaut, l'en-tête n'est pas ignoré. Ce paramètre n'est pas pris en charge pour les fichiers compressés.

Non

false

encoding

Encodage des fichiers source.

Non

utf-8

nullFormat

Les fichiers texte ne peuvent pas utiliser de chaînes standard pour les valeurs nulles (pointeurs null). Utilisez nullFormat pour spécifier quelles chaînes représentent les valeurs nulles. Exemples :

  • Si vous définissez ce paramètre sur nullFormat:"null" et que les données source sont la chaîne « null », Data Integration traite les données source comme une valeur nulle.

  • Si vous définissez ce paramètre sur nullFormat:"\u0001" et que les données source sont la chaîne \u0001, Data Integration traite les données source comme une valeur nulle.

  • Si vous ne configurez pas le paramètre "nullFormat", aucune conversion n'est effectuée et les données source sont écrites telles quelles dans la destination.

Non

Aucune

markDoneFileName

Nom du fichier de fin de traitement. Avant le début d'une tâche de synchronisation des données, le système vérifie si le fichier de fin de traitement existe. Si le fichier n'existe pas, le système attend pendant une période donnée puis effectue une nouvelle vérification. La tâche ne démarre qu'après la détection du fichier.

Non

Aucune

maxRetryTime

Nombre de tentatives pour la vérification du fichier de fin de traitement. La valeur par défaut est 60. L'intervalle entre les tentatives est de 1 minute, ce qui entraîne un temps d'attente total de 60 minutes.

Non

60

csvReaderConfig

Paramètres utilisés pour lire les fichiers CSV. La valeur doit être de type Map. Les fichiers CSV sont lus par CsvReader. Plusieurs configurations sont disponibles. Si vous ne configurez pas ce paramètre, les valeurs par défaut sont utilisées.

Non

Aucune

fileFormat

Format des fichiers source. Par défaut, les fichiers sont lus en tant que fichiers CSV et traités comme des tables logiques bidimensionnelles. Si vous définissez ce paramètre sur binary, les fichiers sont copiés au format binaire.

Ce paramètre est généralement utilisé pour la mise en miroir des structures de répertoires entre des systèmes de stockage tels que FTP et OSS. Dans la plupart des cas, vous n'avez pas besoin de configurer ce paramètre.

Non

Aucune

Exemple de script Writer

{
    "type":"job",
    "version":"2.0",// Version number.
    "steps":[
        { 
            "stepType":"stream",
            "parameter":{},
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"ftp",// Plug-in name.
            "parameter":{
                "path":"",// File path.
                "fileName":"",// File name.
                "nullFormat":"null",// Null value.
                "dateFormat":"yyyy-MM-dd HH:mm:ss",// Date format.
                "datasource":"",// Data source.
                "writeMode":"",// Write mode.
                "fieldDelimiter":",",// Column delimiter.
                "encoding":"",// Encoding format.
                "fileFormat":""// File format.
            },
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{
            "record":"0"// Maximum number of allowed dirty data records.
        },
        "speed":{
            "throttle":true,// If false, the mbps parameter is ignored and no throttling is applied. If true, throttling is applied based on the mbps value.
            "concurrent":1, // Job concurrency.
            "mbps":"12"// Throttling rate. 1 mbps = 1 MB/s.
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Paramètres du script Writer

Paramètre

Description

Obligatoire

Valeur par défaut

datasource

Nom de la source de données, qui doit correspondre au nom de la source de données configurée dans DataWorks.

Oui

Aucune

timeout

Délai d'expiration pour la connexion au serveur FTP. Unité : millisecondes.

Non

60 000 (1 minute)

path

Chemin de destination sur le système de fichiers FTP. FTP Writer écrit plusieurs fichiers dans le répertoire spécifié par ce paramètre.

Oui

Aucune

fileName

Nom du fichier dans lequel FTP Writer écrit les données. Un suffixe aléatoire est ajouté à ce nom de fichier pour créer le nom de fichier réel pour chaque thread.

Oui

Aucune

singleFileOutput

Par défaut, FTP Writer ajoute un suffixe aléatoire au fileName spécifié afin de créer un nom de fichier unique pour chaque thread. Si vous ne souhaitez pas ajouter ce suffixe aléatoire, vous pouvez définir ce paramètre sur true. Le nom du fichier de sortie correspondra alors exactement à celui que vous avez spécifié.

Non

false

writeMode

Mode d'effacement des données avant l'écriture.

  • truncate : Si singleFileOutput est défini sur true, les fichiers portant le même nom dans le répertoire de destination sont supprimés avant l'écriture des données. Si singleFileOutput est défini sur false, tous les fichiers ayant le préfixe fileName spécifié dans le répertoire de destination sont supprimés avant l'écriture des données.

  • append : Aucune donnée n'est effacée. FTP Writer écrit directement les fichiers en utilisant le fileName spécifié et veille à ce qu'il n'y ait pas de conflit de noms de fichiers.

  • nonConflict : Si un fichier ayant le préfixe fileName spécifié existe déjà dans le répertoire, la tâche échoue et une erreur est signalée.

Oui

Aucune

fieldDelimiter

Délimiteur utilisé pour séparer les colonnes dans les fichiers de destination.

Oui (un seul caractère)

Aucune

skipHeader

Les fichiers de type CSV peuvent comporter des en-têtes qu'il faut ignorer. Par défaut, les en-têtes ne sont pas ignorés. Les fichiers compressés ne prennent pas en charge le paramètre skipHeader.

Non

false

compress

Formats de compression pris en charge : gzip et bzip2.

Non

Pas de compression

encoding

Encodage des fichiers de destination.

Non

utf-8

nullFormat

Les fichiers texte ne peuvent pas utiliser de chaînes standard pour les valeurs nulles (pointeurs null). Utilisez nullFormat pour spécifier quelles chaînes représentent les valeurs nulles.

Par exemple, si vous configurez nullFormat="null", lorsque les données source constituent un pointeur null, Data Integration les sérialise sous forme de la chaîne littérale « null » (4 caractères).

Non

Aucune

dateFormat

Format de sérialisation des données de type DATE dans un fichier. Exemple : "dateFormat":"yyyy-MM-dd".

Non

Aucune

fileFormat

Format des fichiers de destination. Valeurs valides : CSV et TEXT. CSV est un format strict. Si les données à écrire contiennent un délimiteur de colonne, les données sont échappées avec des guillemets doubles (") selon la règle d'échappement CSV. TEXT est un format simple qui utilise un délimiteur de colonne pour séparer les données. Les délimiteurs présents dans les données ne sont pas échappés.

Non

TEXT

header

En-tête à écrire dans le fichier texte. En mode script, vous pouvez configurer les informations d'en-tête. Par exemple, vous pouvez définir ce paramètre sur "header":["id","name","age"]. Dans ce cas, id, name et age sont écrits comme en-tête sur la première ligne du fichier FTP.

Non

Aucune

markDoneFileName

  • Nom du fichier de fin de traitement. Une fois la tâche de synchronisation des données terminée, le système génère un fichier de fin de traitement. Vous pouvez vérifier ce fichier pour déterminer si la tâche a réussi. Vous devez spécifier un chemin absolu pour ce fichier.

  • Pour les tâches par lot périodiques, incluez un paramètre de planification dans le nom du fichier. Par exemple, vous pouvez définir le nom du fichier sur /user/ftp/markDone_${bizdate}.txt, où ${bizdate} est un paramètre de planification.

Non

Aucune