Tous les produits
Search
Centre de documentation

DataWorks:OSS-HDFS

Dernière mise à jour :Sep 24, 2026

OSS-HDFS Service (JindoFS Service) est un produit de stockage de lac de données cloud-native. Une source de données OSS-HDFS offre un canal bidirectionnel pour lire et écrire dans OSS-HDFS. Cette rubrique décrit les capacités de synchronisation des données que DataWorks propose pour OSS-HDFS.

Fonctionnalités prises en charge

Fonctionnalité

Prise en charge

Lecture hors ligne

Oui

Écriture hors ligne

Oui

Écriture en temps réel

Oui

Limitations

Lecture hors ligne

La connexion réseau entre un groupe de ressources et OSS-HDFS peut être complexe. Pour exécuter des tâches de synchronisation des données, utilisez un groupe de ressources Serverless (recommandé) ou un groupe de ressources exclusif pour Data Integration. Assurez-vous que votre groupe de ressources peut accéder à OSS-HDFS via le réseau.

OSS-HDFS Reader prend en charge les éléments suivants :

  • Les fichiers aux formats texte, CSV, ORC et Parquet. Le contenu du fichier doit constituer une table logique à deux dimensions.

  • La lecture de plusieurs types de données et de constantes de colonne.

  • Les lectures récursives et les caractères génériques * et ?.

  • Les lectures simultanées depuis plusieurs fichiers. Le nombre réel de threads simultanés correspond à la valeur la plus faible entre le nombre de fichiers à lire et le paramètre concurrent.

Important

OSS-HDFS Reader ne prend pas en charge les lectures simultanées multithread d'un seul fichier en raison de l'algorithme de découpage interne propre aux fichiers uniques.

Écriture hors ligne

  • OSS-HDFS Writer prend uniquement en charge les formats texte, ORC et Parquet. Le contenu du fichier doit constituer une table logique à deux dimensions.

  • Pour les fichiers texte, assurez-vous que le délimiteur de champ utilisé lors de l'écriture correspond au délimiteur défini lors de la création de la table Hive. Cela garantit que les données écrites dans OSS-HDFS sont correctement mappées aux champs de la table Hive.

Écriture en temps réel

  • Prend en charge les écritures en temps réel.

  • Prend en charge les écritures en temps réel pour la version 0.14.x du format Hudi.

Types de champs pris en charge

Lecture hors ligne

OSS-HDFS Reader convertit les types de données issus des formats ParquetFile, ORCFile, TextFile et CsvFile vers les types internes pris en charge par Data Integration.

Catégorie de type

Types de données OSS-HDFS

Entier

TINYINT, SMALLINT, INT, BIGINT

À virgule flottante

FLOAT, DOUBLE, DECIMAL

Chaîne

STRING, CHAR, VARCHAR

Date et heure

DATE, TIMESTAMP

Booléen

BOOLEAN

Remarque

Les exemples suivants illustrent les représentations des types internes :

  • LONG : données entières dans un fichier OSS-HDFS, par exemple 123456789.

  • DOUBLE : données à virgule flottante dans un fichier OSS-HDFS, par exemple 3.1415.

  • BOOLEAN : données booléennes dans un fichier OSS-HDFS, telles que true ou false. La casse n'est pas prise en compte.

  • DATE : données de date et d'heure dans un fichier OSS-HDFS, par exemple 2014-12-31 00:00:00.

Écriture hors ligne

OSS-HDFS Writer écrit des fichiers aux formats TextFile, ORCFile et ParquetFile dans un chemin spécifié du système de fichiers OSS-HDFS.

Catégorie de type

Types de données OSS-HDFS

Entier

TINYINT, SMALLINT, INT, BIGINT

À virgule flottante

FLOAT, DOUBLE

Chaîne

CHAR, VARCHAR, STRING

Booléen

BOOLEAN

Date et heure

DATE, TIMESTAMP

Ajouter une source de données

Avant de développer une tâche de synchronisation dans DataWorks, ajoutez la source de données requise en suivant les instructions de la section Gestion des sources de données. Les descriptions des paramètres sont disponibles dans la console DataWorks lorsque vous ajoutez une source de données.

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

Configurer une tâche de synchronisation hors ligne pour une seule table

Configurer une tâche de synchronisation en temps réel pour une seule table

Consultez la rubrique Configurer la synchronisation incrémentielle en temps réel pour une seule table.

Configurer une tâche de synchronisation en temps réel complète et incrémentielle pour une base de données entière

Consultez la rubrique Configurer une tâche de synchronisation en temps réel pour une base de données entière.

Annexe : Démonstrations de scripts et descriptions des paramètres

Démonstration de script Reader

Tous les paramètres suivent le format de script unifié requis par l'éditeur de code. Pour plus de détails sur le format, consultez la rubrique Configurer une tâche dans l'éditeur de code.

{
    "type": "job",
    "version": "2.0",
    "steps": [
        {
            "stepType": "oss_hdfs",
            "parameter": {
                "path": "",
                "datasource": "",
                "column": [
                    {
                        "index": 0,
                        "type": "string"
                    },
                    {
                        "index": 1,
                        "type": "long"
                    },
                    {
                        "index": 2,
                        "type": "double"
                    },
                    {
                        "index": 3,
                        "type": "boolean"
                    },
                    {
                        "format": "yyyy-MM-dd HH:mm:ss",
                        "index": 4,
                        "type": "date"
                    }
                ],
                "fieldDelimiter": ",",
                "encoding": "UTF-8",
                "fileFormat": ""
            },
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "stream",
            "parameter": {},
            "name": "Writer",
            "category": "writer"
        }
    ],
    "setting": {
        "errorLimit": {
            "record": ""
        },
        "speed": {
            "concurrent": 3,
            "throttle": true,
            "mbps": "12"
        }
    },
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    }
}

Paramètres du script Reader

Paramètre

Description

Obligatoire

Valeur par défaut

path

Chemin du fichier ou du répertoire à lire. Trois styles d'entrée sont pris en charge : OPTION 1 : Fichier unique — OSS-HDFS Reader utilise un seul thread pour lire le fichier. OPTION 2 : Plusieurs fichiers — OSS-HDFS Reader lit les fichiers de manière concurrente. Le nombre réel de threads correspond à la valeur la plus faible entre le nombre de fichiers et le paramètre concurrent. Utilisez des modèles regex simples tels que /hadoop/data_201704*, ou utilisez des paramètres de planification pour les noms de fichiers basés sur l'heure. OPTION 3 : Chemin avec caractère générique — OSS-HDFS Reader parcourt les fichiers correspondants. Spécifier / permet de lire tous les fichiers du répertoire racine. Seuls les caractères génériques * et ? sont pris en charge. Tous les fichiers d'une même tâche de synchronisation sont traités comme une seule table de données ; assurez-vous que tous les fichiers partagent le même schéma. La paire AccessKey configurée dans la source de données doit disposer des autorisations de lecture sur le chemin OSS-HDFS correspondant.

Oui

Aucune

fileFormat

Type de fichier. Valeurs valides : text, orc, csv, parquet. OSS-HDFS Reader détecte automatiquement le type de fichier et applique la stratégie de lecture correspondante. Avant le début de la synchronisation, il vérifie que tous les fichiers du chemin spécifié correspondent à la valeur de fileFormat. La tâche échoue en cas de non-concordance.

Oui

Aucune

column

Liste des champs à lire. Définissez la valeur sur ["*"] pour lire toutes les colonnes en tant que STRING. Pour spécifier des colonnes individuelles, indiquez le type et soit l'index (lit depuis le fichier de données, en commençant par 0), soit la value (génère une colonne constante sans lire le fichier). Une seule des clés index ou value peut être définie par entrée de colonne.

Oui

Aucune

fieldDelimiter

Délimiteur de champ pour la lecture des données TextFile. Non requis pour les fichiers ORC ou Parquet.

Non

,

encoding

Encodage du fichier.

Non

utf-8

nullFormat

Chaîne à traiter comme une valeur null. Par exemple, définir nullFormat: "null" amène Data Integration à traiter la chaîne source null comme un champ null.

Non

Aucune

compress

Format de compression. Valeurs valides : gzip, bzip2, snappy.

Non

Aucune

Démonstration de script Writer

{
    "type": "job",
    "version": "2.0",
    "steps": [
        {
            "stepType": "stream",
            "parameter": {},
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "oss_hdfs",
            "parameter": {
                "path": "",
                "fileName": "",
                "compress": "",
                "datasource": "",
                "column": [
                    {
                        "name": "col1",
                        "type": "string"
                    },
                    {
                        "name": "col2",
                        "type": "int"
                    },
                    {
                        "name": "col3",
                        "type": "double"
                    },
                    {
                        "name": "col4",
                        "type": "boolean"
                    },
                    {
                        "name": "col5",
                        "type": "date"
                    }
                ],
                "writeMode": "",
                "fieldDelimiter": ",",
                "encoding": "",
                "fileFormat": "text"
            },
            "name": "Writer",
            "category": "writer"
        }
    ],
    "setting": {
        "errorLimit": {
            "record": ""
        },
        "speed": {
            "concurrent": 3,
            "throttle": false
        }
    },
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    }
}

Paramètres du script Writer

Paramètre

Description

Obligatoire

Valeur par défaut

fileFormat

Type de fichier. Valeurs valides : text, orc, parquet.

Oui

Aucune

path

Chemin du système de fichiers OSS-HDFS où les données sont stockées. OSS-HDFS Writer écrit plusieurs fichiers dans ce répertoire selon la configuration de concurrence. Lors de l'association avec une table Hive, spécifiez le chemin de stockage de la table Hive sur OSS-HDFS.

Oui

Aucune

fileName

Nom de base des fichiers de sortie. Un suffixe aléatoire est ajouté à ce nom pour chaque thread simultané afin de créer les noms de fichiers réels.

Oui

Aucune

column

Champs à écrire. L'écriture dans un sous-ensemble de colonnes n'est pas prise en charge. Lors de l'association avec une table Hive, spécifiez tous les noms et types de champs. Utilisez name pour le nom du champ et type pour le type de champ. Non requis lorsque fileFormat est défini sur parquet.

Oui (non requis si fileFormat est défini sur parquet)

Aucune

writeMode

Manière dont OSS-HDFS Writer gère les fichiers existants avant l'écriture. OSS-HDFS Writer utilise une stratégie d'écriture puis de renommage : les données sont d'abord écrites dans un répertoire temporaire nommé selon la règle path_random, puis déplacées vers le chemin de destination une fois toutes les écritures terminées, avec garantie de noms de fichiers uniques. Après le déplacement, le répertoire temporaire est automatiquement supprimé. Si la connexion est interrompue, le répertoire temporaire et les fichiers partiellement écrits ne sont pas nettoyés automatiquement ; supprimez-les manuellement avant de réessayer. Valeurs valides : append — écrit directement sans prétraitement, garantissant l'absence de conflits de noms de fichiers. nonConflict — signale une erreur si un fichier avec le préfixe fileName existe déjà dans le répertoire. truncate — supprime tous les fichiers correspondant au préfixe fileName avant l'écriture (par exemple, si fileName est défini sur abc, tous les fichiers commençant par abc dans le répertoire sont d'abord supprimés).

Oui

Aucune

fieldDelimiter

Délimiteur de champ pour les fichiers de sortie. Seuls les délimiteurs à caractère unique sont pris en charge ; plusieurs caractères provoquent une erreur d'exécution. Non requis lorsque fileFormat est défini sur parquet.

Oui (non requis si fileFormat est défini sur parquet)

Aucune

compress

Format de compression pour les fichiers texte. Valeurs valides : gzip, bzip2. Laissez vide pour écrire sans compression.

Non

Aucune

encoding

Encodage du fichier.

Non

utf-8

parquetSchema

Définition du schéma pour les fichiers de sortie Parquet. Ne prend effet que lorsque fileFormat est défini sur parquet. Utilisez le format suivant : `message {

optional> ; ... }`. Types de données pris en charge : BOOLEAN, INT32, INT64, INT96, FLOAT, DOUBLE, BINARY (utilisez BINARY pour les types de chaîne), FIXED_LEN_BYTE_ARRAY. Utilisez optional pour les champs pouvant être null et required pour les champs non null. Il est recommandé de définir tous les champs sur optional. Chaque définition de ligne doit se terminer par un point-virgule, y compris la dernière. Exemple : message m { optional int64 id; optional binary username; optional int32 status; }

Non

Aucune