Tous les produits
Search
Centre de documentation

DataWorks:Source de données DataHub

Dernière mise à jour :Aug 10, 2026

La source de données DataHub offre un canal bidirectionnel pour lire et écrire des données dans DataHub, ce qui facilite le traitement efficace de volumes de données importants. Cette rubrique décrit les fonctionnalités de synchronisation des données que DataWorks propose pour DataHub.

Versions prises en charge

  • DataHub Reader utilise le SDK DataHub pour Java afin de lire les données depuis DataHub. Le code suivant indique la version du SDK.

    <dependency>
        <groupId>com.aliyun.DataHub</groupId>
        <artifactId>aliyun-sdk-DataHub</artifactId>
        <version>2.9.1</version>
    </dependency>
  • DataHub Writer utilise le SDK DataHub pour Java afin d'écrire des données dans DataHub. Le code suivant indique la version du SDK.

    <dependency>
        <groupId>com.aliyun.datahub</groupId>
        <artifactId>aliyun-sdk-datahub</artifactId>
        <version>2.5.1</version>
    </dependency>

Limites

Lecture/écriture par lots

Le type de données STRING prend uniquement en charge l'encodage UTF-8. Une colonne STRING unique ne peut pas dépasser 1 Mo.

Lecture/écriture en temps réel

  • Les tâches de synchronisation en temps réel prennent en charge les groupes de ressources serverless.

  • Lorsque vous synchronisez des données vers DataHub en temps réel, le partitionnement des données s'effectue selon la valeur de hachage des données sources. Les enregistrements partageant la même valeur de hachage sont synchronisés vers le même shard.

Écriture en temps réel sur toute la base de données

Lors de l'exécution de la tâche, une tâche de synchronisation par lots écrit d'abord l'intégralité des données dans DataHub. Ensuite, une tâche de synchronisation en temps réel démarre pour synchroniser les données incrémentielles de la source vers la destination. L'écriture des données respecte les règles suivantes :

  • Les données ne peuvent être écrites que dans des topics DataHub de type TUPLE. Pour plus d'informations sur le type de données TUPLE, consultez la section Types de données.

  • Lors de la synchronisation des données vers DataHub en temps réel, cinq champs supplémentaires sont ajoutés aux champs de la table source. Vous pouvez également ajouter d'autres champs lors de la configuration de la tâche. Pour connaître le format final des messages envoyés à DataHub, reportez-vous à l'annexe Formats des messages DataHub.

Types de champs pris en charge

Lors de la synchronisation des données vers DataHub, les valeurs sont mappées aux types de champs correspondants. DataHub prend uniquement en charge les types de données BIGINT, STRING, BOOLEAN, DOUBLE, TIMESTAMP et DECIMAL.

Ajouter une source de données

Avant de développer une tâche de synchronisation dans DataWorks, ajoutez la source de données requise à DataWorks en suivant les instructions fournies dans la rubrique Configuration de la source de données. Consultez 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 connaître le point d'entrée et la procédure de configuration d'une tâche de synchronisation, consultez les guides de configuration suivants.

Configurer une tâche de synchronisation par lots pour une seule table

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

Pour la procédure, consultez la rubrique Configurer une tâche de synchronisation en temps réel.

Remarque

Pour plus d'informations sur les opérations prises en charge par les différents types de données DataHub, les stratégies de partitionnement, les formats de données et des exemples de messages associés, consultez l'annexe Formats des messages DataHub.

Configurer une tâche de synchronisation en temps réel sur toute la base de données

Pour la procédure, consultez la rubrique Configurer une tâche de synchronisation en temps réel sur toute la base de données.

FAQ

FAQ sur la synchronisation par lots

Annexe : Exemples de scripts et description des paramètres

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

Si vous souhaitez configurer une tâche de synchronisation par lots via l'éditeur de code, définissez les paramètres correspondants dans le script conformément aux 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 lots avec l'éditeur de code.

Exemple de script Reader

{ "type":"job", "version":"2.0",// Le numéro de version. "steps":[ { "job": { "content": [ { "reader": { "name": "DataHubreader", "parameter": { "endpoint": "xxx" // L'endpoint de DataHub. "accessId": "xxx", // L'AccessKey ID utilisé pour accéder à DataHub. "accessKey": "xxx", // L'AccessKey secret utilisé pour accéder à DataHub. "project": "xxx", // Le nom du projet DataHub. "topic": "xxx" // Le nom du topic DataHub. "batchSize": 1000, // Le nombre d'enregistrements à lire à la fois. "beginDateTime": "20180910111214", // L'heure de début de la consommation des données. "endDateTime": "20180910111614", // L'heure de fin de la consommation des données. "column": [ "col0", "col1", "col2", "col3", "col4" ] } }, "writer": { "name": "streamwriter", "parameter": { "print": false } } } ] } } ], "setting":{ "errorLimit":{ "record":"0"// Le nombre d'erreurs. }, "speed":{ "throttle":true,// Indique si la limitation de débit est activée. Si throttle est défini sur false, le paramètre mbps n'a aucun effet, ce qui signifie que la limitation de débit est désactivée. Si throttle est défini sur true, la limitation de débit est activée. "concurrent":1,// La concurrence. "mbps":"12"// Le taux de limitation. 1 mbps = 1 Mo/s. } }, "order":{ "hops":[ { "from":"Reader", "to":"Writer" } ] } }

Paramètres du script Reader

Paramètre

Description

Obligatoire

endpoint

L'endpoint de DataHub.

Oui

accessId

L'accessId utilisé pour accéder à DataHub.

Oui

accessKey

L'accessKey utilisé pour accéder à DataHub.

Oui

project

Le nom du projet DataHub. Un project constitue l'unité de base de gestion des ressources dans DataHub et sert à l'isolation des ressources et au contrôle d'accès.

Oui

topic

Le nom du topic DataHub.

Oui

batchSize

Le nombre d'enregistrements à lire à la fois. Valeur par défaut : 1 024.

Non

beginDateTime

L'heure de début de la consommation des données. Ce paramètre spécifie la borne gauche (inclusive) de la plage temporelle et doit être une chaîne de temps au format yyyyMMddHHmmss. Pour mettre en œuvre une synchronisation incrémentielle, utilisez ce paramètre conjointement avec les paramètres de planification de DataWorks. Par exemple, définissez le nom du paramètre du paramètre de planification du nœud sur bizdate et la valeur du paramètre sur $[yyyymmdd-1]. Définissez ensuite beginDateTime sur ${bizdate}000000, ce qui indique que l'heure de début de la consommation des données est 00:00:00 du jour précédent.

Remarque

Les paramètres beginDateTime et endDateTime doivent être utilisés conjointement.

Oui

endDateTime

L'heure de fin de la consommation des données. Ce paramètre spécifie la borne droite (exclusive) de la plage temporelle et doit être une chaîne de temps au format yyyyMMddHHmmss. Pour mettre en œuvre une synchronisation incrémentielle, utilisez ce paramètre conjointement avec les paramètres de planification de DataWorks. Par exemple, définissez le nom du paramètre du paramètre de planification du nœud sur bizdate et la valeur du paramètre sur $[yyyymmdd-1]. Définissez ensuite endDateTime sur ${bizdate}235959, ce qui indique que l'heure de fin de la consommation des données est 23:59:59 du jour précédent.

Remarque

Les paramètres beginDateTime et endDateTime doivent être utilisés conjointement.

Oui

Exemple de script Writer

{ "type": "job", "version": "2.0",// Le numéro de version. "steps": [ { "stepType": "stream", "parameter": {}, "name": "Reader", "category": "reader" }, { "stepType": "datahub",// Le nom du plug-in. "parameter": { "datasource": "",// La source de données. "topic": "",// Un topic est la plus petite unité d'abonnement et de publication dans DataHub. Vous pouvez utiliser un topic pour représenter un type ou une catégorie de données en flux continu. "maxRetryCount": 500,// Le nombre maximal de tentatives en cas d'échec de la tâche. "maxCommitSize": 1048576// Les données sont validées par lots vers la destination lorsque le tampon de données accumulé atteint la valeur maxCommitSize (en octets). // DataHub limite une seule requête à 10 000 enregistrements. Le dépassement de cette limite provoque une erreur de tâche. Définissez ce paramètre en fonction de la taille moyenne par enregistrement multipliée par 10 000. Par exemple, si chaque enregistrement fait 10 Ko, définissez ce paramètre sur une valeur inférieure à 10 × 10 000 Ko. }, "name": "Writer", "category": "writer" } ], "setting": { "errorLimit": { "record": ""// Le nombre d'erreurs. }, "speed": { "throttle":true,// Indique si la limitation de débit est activée. Si throttle est défini sur false, le paramètre mbps n'a aucun effet, ce qui signifie que la limitation de débit est désactivée. Si throttle est défini sur true, la limitation de débit est activée. "concurrent":20, // La concurrence. "mbps":"12"// Le taux de limitation. 1 mbps = 1 Mo/s. } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } }

Paramètres du script Writer

Paramètre

Description

Obligatoire

Valeur par défaut

accessId

L'accessId de DataHub.

Oui

S.O.

accessKey

L'accessKey de DataHub.

Oui

S.O.

endPoint

Pour accéder aux ressources DataHub, sélectionnez le nom de domaine approprié en fonction du service auquel la ressource appartient.

Oui

S.O.

maxRetryCount

Le nombre maximal de tentatives en cas d'échec de la tâche.

Non

S.O.

mode

Le mode d'écriture lorsque la valeur est de type STRING.

Oui

S.O.

parseContent

Le contenu à analyser.

Oui

S.O.

project

Un projet constitue l'unité organisationnelle de base pour les données DataHub. Un projet contient plusieurs topics.

Remarque

Les projets DataHub sont indépendants des projets MaxCompute. Les projets que vous créez dans MaxCompute ne peuvent pas être réutilisés dans DataHub. Vous devez créer les projets séparément.

Oui

S.O.

topic

Un topic est la plus petite unité d'abonnement et de publication dans DataHub. Vous pouvez utiliser un topic pour représenter un type ou une catégorie de données en flux continu.

Oui

S.O.

maxCommitSize

Pour améliorer l'efficacité d'écriture, DataX accumule les données dans un tampon et valide les données par lots vers la destination lorsque les données accumulées atteignent la valeur maxCommitSize (en octets). La valeur par défaut est 1 048 576, soit 1 Mo. DataHub limite une seule requête à 10 000 enregistrements. Le dépassement de cette limite provoque une erreur de tâche. Définissez ce paramètre en fonction de la taille moyenne par enregistrement multipliée par 10 000 afin de contrôler le nombre d'enregistrements écrits dans DataHub par requête.

Non

1 Mo