Tous les produits
Search
Centre de documentation

DataWorks:Source de données ApsaraDB for OceanBase

Dernière mise à jour :Aug 10, 2026

La source de données ApsaraDB for OceanBase permet de lire et d'écrire des données dans ApsaraDB for OceanBase. Utilisez cette source de données pour configurer les tâches de synchronisation des données dans DataWorks. Cette rubrique décrit les fonctionnalités de synchronisation des données avec ApsaraDB for OceanBase.

Versions prises en charge

Les modules Reader et Writer ApsaraDB for OceanBase prennent en charge les versions suivantes d'OceanBase pour les opérations de lecture et d'écriture par lots :

  • OceanBase 2.x

  • OceanBase 3.x

  • OceanBase 4.x

Limites

Lecture par lots

  • ApsaraDB for OceanBase prend en charge les modes locataire Oracle et MySQL. Lorsque vous configurez la clause where pour le filtrage des données ou les colonnes de fonction dans le paramètre column, veillez à ce que la syntaxe respecte les contraintes SQL du mode locataire correspondant. Sinon, l'instruction SQL risque d'échouer.

  • La lecture des données depuis une vue est possible.

  • Lors d'une lecture par lots, ne modifiez pas les données en cours de synchronisation afin d'éviter des problèmes de qualité des données, tels que la duplication ou la perte de données.

  • Si vous configurez la source de données pour la fonction Read by Partition, le compte utilisé pour accéder à la source de données doit disposer des autorisations system.

Écriture par lots

Remarque

La tâche de synchronisation requiert au minimum les autorisations insert into.... D'autres autorisations peuvent s'avérer nécessaires selon les instructions spécifiées dans les paramètres preSql et postSql.

  • Nous recommandons d'utiliser la méthode batch pour écrire les données. Cette méthode n'envoie une requête d'écriture que lorsque le nombre de lignes accumulées atteint un seuil prédéfini.

  • ApsaraDB for OceanBase prend en charge les modes locataire Oracle et MySQL. Lorsque vous configurez les paramètres preSql et postSql, assurez-vous que la syntaxe respecte les contraintes SQL du mode locataire correspondant. Sinon, l'instruction SQL risque d'échouer.

Lecture en temps réel

  • Cette fonctionnalité prend uniquement en charge le mode locataire MySQL d'OceanBase.

  • Pour synchroniser des données en temps réel, activez la fonctionnalité binlog. Pour plus d'informations, consultez les pages Opérations liées aux binlogs (instances Alibaba Cloud), Opérations liées aux binlogs (instances OB Cloud).

  • Les tâches de synchronisation complète de base de données en temps réel ne prennent pas en charge les sources de données en mode chaîne de connexion.

  • Pour les tâches de synchronisation complète de base de données en temps réel, la version de la base de données doit être la V3.0 ou ultérieure.

  • OceanBase est une base de données relationnelle distribuée capable d'intégrer les données de plusieurs bases de données physiquement distribuées en une seule base de données logique. Toutefois, la synchronisation en temps réel des données OceanBase vers AnalyticDB for MySQL ne prend actuellement en charge que les données provenant d'une seule base de données physique. La synchronisation des données d'une base de données logique n'est pas prise en charge.

Préparatifs avant la synchronisation des données

Avant de synchroniser des données dans DataWorks, préparez l'environnement ApsaraDB for OceanBase comme décrit dans cette rubrique. Cela garantit la configuration et l'exécution correctes des tâches de synchronisation des données ApsaraDB for OceanBase dans DataWorks. Les sections suivantes détaillent les préparatifs requis.

Configurer une liste d'autorisation

Ajoutez le bloc CIDR du VPC du Groupe de ressources Serverless ou du groupe de ressources exclusif pour Data Integration à la liste d'autorisation OceanBase. Pour plus d'informations, consultez la page Ajouter des entrées à la liste d'autorisation.

Créer un compte et configurer les autorisations

Créez un compte de base de données pour les opérations ultérieures. Ce compte doit disposer des autorisations requises sur OceanBase. Pour plus d'informations, consultez la page Créer un compte et configurer les autorisations.

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 de la page Configuration de la source de données. Consultez les descriptions des paramètres dans la console DataWorks pour comprendre leur signification lors de l'ajout d'une source de données.

Développer des tâches 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 suivants.

Synchronisation par lots sur table unique

Synchronisation en temps réel sur table unique

Synchronisation en temps réel de base de données complète

Annexe : exemples de scripts et descriptions des paramètres

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

Pour configurer une tâche de synchronisation par lots à l'aide de l'éditeur de code, définissez les paramètres associés dans le script conformément aux exigences de format de script unifié. Pour plus d'informations, consultez la page Configuration en mode script. Les informations suivantes décrivent les paramètres à configurer pour les sources de données lors de la configuration d'une tâche de synchronisation par lots à l'aide de l'éditeur de code.

Exemple de script Reader

{
    "type": "job",
    "steps": [
        {
            "stepType": "apsaradb_for_OceanBase", // The plug-in name.
            "parameter": {
                "datasource": "", // The data source name.
                "where": "",
                "column": [ // The columns.
                    "id",
                    "name"
                ],
                "splitPk": ""
            },
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "stream",
            "parameter": {
                "print": false,
                "fieldDelimiter": ","
            },
            "name": "Writer",
            "category": "writer"
        }
    ],
    "version": "2.0",
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    },
    "setting": {
        "errorLimit": {
            "record": "0" // The error count.
        },
        "speed": {
            "throttle": true, // Specifies whether to enable throttling. A value of false indicates that throttling is disabled and the mbps parameter does not take effect. A value of true indicates that throttling is enabled.
            "concurrent": 1, // The concurrency.
            "mbps":"12" // The throttling rate. 1 mbps = 1 MB/s.
        }
    }
}

Paramètres du script Reader

Paramètre

Description

Obligatoire

Valeur par défaut

datasource

Si l'édition DataWorks que vous utilisez prend en charge l'ajout de sources de données ApsaraDB for OceanBase, vous pouvez référencer une source de données ApsaraDB for OceanBase ajoutée par son nom.

Deux méthodes de configuration sont disponibles : jdbcUrl et username.

Oui

N/A

jdbcUrl

Les informations de connexion JDBC de la base de données de destination. Utilisez un tableau JSON pour la description. Vous pouvez spécifier plusieurs adresses de connexion pour une seule base de données.

Si plusieurs adresses sont configurées, le module Reader ApsaraDB for OceanBase teste la connectivité de chaque adresse IP séquentiellement jusqu'à ce qu'une adresse valide soit trouvée.

Si toutes les connexions échouent, le module Reader ApsaraDB for OceanBase signale une erreur.

Remarque

jdbcUrl doit être inclus dans l'unité de configuration connection.

Conformément à la spécification officielle d'ApsaraDB for OceanBase, jdbcUrl peut inclure des informations de contrôle de connexion supplémentaires. Par exemple, jdbc:oceanbase://127.0.0.1:3306/database. Vous devez utiliser soit ce paramètre, soit username, mais pas les deux.

Non

N/A

username

Le nom d'utilisateur de la source de données.

Non

N/A

password

Le mot de passe associé au nom d'utilisateur spécifié pour la source de données.

Non

N/A

table

Les tables à synchroniser. Utilisez un tableau JSON pour la description. Vous pouvez lire des données depuis plusieurs tables simultanément.

Lorsque plusieurs tables sont configurées, assurez-vous que toutes les tables ont le même schéma. Le module Reader ApsaraDB for OceanBase ne vérifie pas la cohérence du schéma entre les tables.

Remarque

table doit être inclus dans l'unité de configuration connection.

Oui

N/A

column

Les colonnes à synchroniser depuis les tables configurées. Utilisez un tableau JSON pour décrire les informations de colonne. Par défaut, toutes les colonnes sont utilisées, par exemple [*].

  • L'élagage des colonnes est pris en charge : vous pouvez exporter uniquement des colonnes spécifiques.

  • Le réordonnancement des colonnes est pris en charge : vous pouvez exporter les colonnes dans un ordre différent du schéma de la table.

  • La configuration de constantes est prise en charge. Par exemple, '123'.

  • Les colonnes de fonction sont prises en charge. Par exemple, date('now').

  • column doit spécifier explicitement l'ensemble des colonnes à synchroniser et ne peut pas être laissé vide.

Oui

N/A

splitPk

Si vous spécifiez splitPk lorsque le module Reader ApsaraDB for OceanBase extrait des données, les données sont divisées en fonction de la colonne spécifiée par splitPk. Le système de synchronisation des données lance ensuite des tâches concurrentes pour améliorer l'efficacité de la synchronisation.

  • Nous recommandons de définir splitPk sur la clé primaire de la table. La clé primaire est généralement distribuée de manière uniforme, ce qui permet d'éviter les points chauds de données entre les shards.

  • Actuellement, splitPk prend uniquement en charge le fractionnement de type entier. Les types chaîne, flottant, date et autres ne sont pas pris en charge. Si vous spécifiez un type non pris en charge, le module Reader ApsaraDB for OceanBase signale une erreur.

  • Si splitPk est laissé vide, le système considère que vous ne souhaitez pas diviser une seule table. Dans ce cas, un seul canal est utilisé pour l'extraction des données.

Non

Vide

where

Le module Reader ApsaraDB for OceanBase assemble une instruction SQL basée sur les paramètres column, table et where spécifiés, puis utilise l'instruction SQL assemblée pour extraire les données.

Par exemple, lors des tests, vous pouvez définir la condition where sur limit 10. Dans les scénarios commerciaux réels, vous synchronisez généralement les données générées le jour actuel en définissant la condition where sur gmt_create>$bizdate.

  • La condition where peut être utilisée pour la synchronisation incrémentielle des données.

  • Si la condition where n'est pas configurée ou laissée vide, toutes les données de la table sont synchronisées.

Non

N/A

querySql

Dans certains scénarios commerciaux, le paramètre where peut ne pas suffire à décrire les conditions de filtrage requises. Vous pouvez utiliser ce paramètre pour définir une instruction SQL de filtrage personnalisée. Lorsque ce paramètre est configuré, le système de synchronisation des données ignore les paramètres tables, columns et splitPk, et utilise l'instruction SQL configurée pour filtrer les données.

Lorsque vous configurez querySql, le module Reader ApsaraDB for OceanBase ignore les paramètres table, column, where et splitPk.

Non

N/A

fetchSize

Ce paramètre spécifie le nombre de lignes récupérées par lot entre le plug-in et le serveur de base de données. Cette valeur détermine le nombre d'interactions réseau entre le système de synchronisation des données et le serveur, et peut améliorer considérablement les performances d'extraction des données.

Remarque

Une valeur fetchSize trop élevée (>2048) peut provoquer une erreur de mémoire insuffisante (OOM) lors du processus de synchronisation des données.

Non

1 024

Exemple de script Writer

{
    "type":"job",
    "version":"2.0", // The version number.
    "steps":[
        {
            "stepType":"stream",
            "parameter":{},
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"apsaradb_for_OceanBase", // The plug-in name.
            "parameter":{
                "datasource": "Data source name",
                "column": [ // The columns.
                    "id",
                    "name"
                ],
                "table": "apsaradb_for_OceanBase_table", // The table name.
                "preSql": [ // The SQL statements to execute before the data synchronization task runs.
                    "delete from @table where db_id = -1"
                ],
                "postSql": [ // The SQL statements to execute after the data synchronization task runs.
                    "update @table set db_modify_time = now() where db_id = 1"
                ],
                "obWriteMode": "insert",
            },
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{
            "record":"0" // The error count.
        },
        "speed":{
            "throttle":true, // Specifies whether to enable throttling. A value of false indicates that throttling is disabled and the mbps parameter does not take effect. A value of true indicates that throttling is enabled.
            "concurrent":1, // The concurrency.
            "mbps":"12" // The 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

Si l'édition DataWorks que vous utilisez prend en charge l'ajout de sources de données ApsaraDB for OceanBase, vous pouvez référencer une source de données ApsaraDB for OceanBase ajoutée par son nom.

Deux méthodes de configuration sont disponibles : jdbcUrl et username.

Non

N/A

jdbcUrl

Les informations de connexion JDBC de la base de données de destination. jdbcUrl est inclus dans l'unité de configuration connection.

  • Vous ne pouvez configurer qu'une seule valeur pour une base de données unique. Les scénarios où la même base de données possède plusieurs nœuds principaux (importation double principal) ne sont pas pris en charge.

  • Le format de jdbcUrl est conforme à la spécification officielle d'ApsaraDB for OceanBase et peut inclure des paramètres de connexion supplémentaires. Par exemple, jdbc:oceanbase://127.0.0.1:3306/database.

Oui

N/A

username

Le nom d'utilisateur de la source de données.

Oui

N/A

password

Le mot de passe associé au nom d'utilisateur spécifié pour la source de données.

Oui

N/A

table

Le nom de la table dans laquelle les données sont écrites. Utilisez un tableau JSON pour la description.

Remarque

table doit être inclus dans l'unité de configuration connection.

Oui

N/A

column

Les colonnes de la table de destination dans lesquelles les données sont écrites. Séparez les noms de colonnes par des virgules (,). Par exemple, "column": ["id", "name", "age"].

Remarque

Le paramètre column doit être spécifié et ne peut pas être laissé vide.

Oui

N/A

obWriteMode

Le mode utilisé pour écrire les données dans la table de destination. Ce paramètre est facultatif.

  • insert : insert into ... Lorsqu'un conflit de clé primaire ou d'index unique se produit, les lignes conflictuelles ne peuvent pas être écrites.

  • update : ... on duplicate key update ... Utilisé en mode locataire MySQL. Les lignes conflictuelles sont mises à jour en cas de conflit.

  • merge : merge into ... matched then update ... Utilisé en mode locataire Oracle. Les lignes conflictuelles sont mises à jour en cas de conflit.

Non

insert

onClauseColumns

Remarque

Utilisé en mode locataire Oracle. Ce paramètre est requis lorsque obWriteMode est défini sur merge. Si ce paramètre n'est pas configuré, les données sont écrites en utilisant insert.

Définissez ce paramètre sur les colonnes de clé primaire ou les colonnes de contrainte unique. Séparez plusieurs colonnes par des virgules (,). Par exemple, ID,C1.

Non

N/A

obUpdateColumns

Remarque

Ce paramètre prend effet lorsque obWriteMode est défini sur merge ou update.

Les colonnes à mettre à jour lorsqu'un conflit d'écriture se produit. Séparez plusieurs colonnes par des virgules (,). Par exemple, c2,c3.

Non

Toutes les colonnes

preSql

Les instructions SQL standard à exécuter avant l'écriture des données dans la table de destination. Si vous devez référencer le nom de la table dans les instructions SQL, utilisez @table comme espace réservé. Le système remplace cette variable par le nom de table réel au moment de l'exécution.

Non

N/A

postSql

Les instructions SQL standard à exécuter après l'écriture des données dans la table de destination.

Non

N/A

batchSize

Le nombre d'enregistrements à soumettre par lot. Cette valeur peut réduire considérablement le nombre d'interactions réseau entre le système de synchronisation des données et le serveur, et améliorer le débit global.

Remarque

Une valeur fetchSize trop élevée (>2048) peut provoquer une erreur de mémoire insuffisante (OOM) lors du processus de synchronisation des données.

Non

1 024