Tous les produits
Search
Centre de documentation

DataWorks:MariaDB

Dernière mise à jour :Aug 10, 2026

La source de données MariaDB connecte DataWorks à MariaDB pour une synchronisation hors ligne bidirectionnelle : lecture depuis et écriture dans les bases de données et vues MariaDB. Cette rubrique présente les versions prises en charge, les types de champs, la configuration des comptes et les paramètres de script pour les tâches de synchronisation hors ligne.

Prérequis

Pour connecter DataWorks à une base de données MariaDB, procédez comme suit :

  1. Vérifiez que votre version de MariaDB est prise en charge.

  2. Créez un compte dédié à la synchronisation et accordez les autorisations requises.

  3. Ajoutez la source de données MariaDB dans DataWorks.

  4. Développez une tâche de synchronisation.

Versions de MariaDB prises en charge

Versions prises en charge : 5,5.x, 10,0.x, 10,1.x, 10,2.x et 10,3.x.

La synchronisation hors ligne prend également en charge la lecture depuis des vues.

Types de champs pris en charge

Le tableau suivant répertorie les types de champs pris en charge pour MariaDB 10,3.x. Pour les autres versions, consultez la documentation officielle de MariaDB.

Type de champ Lecture hors ligne (lecteur MariaDB) Écriture hors ligne (éditeur MariaDB)
TINYINT Pris en charge Pris en charge
SMALLINT Pris en charge Pris en charge
INTEGER Pris en charge Pris en charge
BIGINT Pris en charge Pris en charge
FLOAT Pris en charge Pris en charge
DOUBLE Pris en charge Pris en charge
DECIMAL/NUMERIC Pris en charge Pris en charge
REAL Non pris en charge Non pris en charge
VARCHAR Pris en charge Pris en charge
JSON Pris en charge Pris en charge
TEXT Pris en charge Pris en charge
MEDIUMTEXT Pris en charge Pris en charge
LONGTEXT Pris en charge Pris en charge
VARBINARY Pris en charge Pris en charge
BINARY Pris en charge Pris en charge
TINYBLOB Pris en charge Pris en charge
MEDIUMBLOB Pris en charge Pris en charge
LONGBLOB Pris en charge Pris en charge
ENUM Pris en charge Pris en charge
SET Pris en charge Pris en charge
BOOLEAN Pris en charge Pris en charge
BIT Pris en charge Pris en charge
DATE Pris en charge Pris en charge
DATETIME Pris en charge Pris en charge
TIMESTAMP Pris en charge Pris en charge
TIME Pris en charge Pris en charge
YEAR Pris en charge Pris en charge
LINESTRING Non pris en charge Non pris en charge
POLYGON Non pris en charge Non pris en charge
MULTIPOINT Non pris en charge Non pris en charge
MULTILINESTRING Non pris en charge Non pris en charge
MULTIPOLYGON Non pris en charge Non pris en charge
GEOMETRYCOLLECTION Non pris en charge Non pris en charge

Configuration des autorisations du compte

Créez un compte MariaDB dédié permettant à DataWorks d'accéder à la source de données.

  1. Exécutez l'instruction suivante pour vérifier la version de MariaDB :

    SELECT VERSION();
  2. (Facultatif) Créez un compte de synchronisation. Consultez Créer un utilisateur MariaDB.

  3. Accordez les autorisations requises en fonction du sens de la synchronisation :

    • Lecture hors ligne : Le compte doit disposer de l'autorisation SELECT sur les tables à synchroniser.

    • Écriture hors ligne : Le compte doit disposer des autorisations INSERT, DELETE et UPDATE sur les tables à synchroniser.

  4. Exécutez la commande suivante pour accorder les autorisations. Remplacez sync_account par le nom de votre compte.

    -- CREATE USER 'sync_account'@'%' IDENTIFIED BY 'password';
    GRANT SELECT, INSERT, DELETE, UPDATE ON *.* TO 'sync_account'@'%';

    Vous pouvez également accorder directement l'autorisation SUPER.

Ajout d'une source de données

Ajoutez la source de données MariaDB dans DataWorks avant de développer une tâche de synchronisation. Suivez les instructions disponibles dans la rubrique Gestion des sources de données. Les descriptions des paramètres sont accessibles dans la console DataWorks lors de l'ajout de la source de données.

Développement d'une tâche de synchronisation des données

Synchronisation hors ligne pour une seule table

Pour configurer la tâche dans l'éditeur de code, consultez Configurer une tâche dans l'éditeur de code. Pour tous les paramètres de script et exemples, reportez-vous à la section Paramètres de script et exemples.

Paramètres de script et exemples

Tous les exemples utilisent le format de l'éditeur de code avec "version": "2.0". Configurez le script selon les exigences de format unifié décrites dans Configurer une tâche dans l'éditeur de code.

Lecteur

Exemple de script

{
    "type": "job",
    "version": "2.0",
    "steps": [
        {
            "stepType": "mariadb",
            "parameter": {
                "column": [
                    "id"
                ],
                "connection": [
                    {
                        "querySql": ["select a,b from join1 c join join2 d on c.id = d.id;"],
                        "datasource": "",
                        "table": [
                            "xxx"
                        ]
                    }
                ],
                "where": "",
                "splitPk": "",
                "encoding": "UTF-8"
            },
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "stream",
            "parameter": {},
            "name": "Writer",
            "category": "writer"
        }
    ],
    "setting": {
        "errorLimit": {
            "record": "0"
        },
        "speed": {
            "throttle": true,
            "concurrent": 1,
            "mbps": "12"
        }
    },
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    }
}

Paramètres du lecteur

Paramètre Description Obligatoire Par défaut
datasource Nom de la source de données. Doit correspondre au nom de la source de données ajoutée dans DataWorks. Oui Aucune
table Table à lire. Prend en charge la syntaxe de plage pour les tables fragmentées ; par exemple, table_[0-99] lit depuis table_0 jusqu'à table_99. Pour les suffixes numériques de longueur fixe, utilisez ["table_00[0-9]", "table_0[10-99]", "table_[100-999]"]. La tâche lit toutes les tables correspondantes et échoue si une table ou une colonne spécifiée n'existe pas. Oui Aucune
column Colonnes à synchroniser, sous forme de tableau JSON. Par défaut, toutes les colonnes (["*"]). Prend en charge l'élagage des colonnes, le réordonnancement des colonnes et les valeurs constantes conformément à la syntaxe SQL de MariaDB. Ne doit pas être vide. Oui Aucune
splitPk Colonne utilisée pour partitionner les données lors des lectures simultanées. Utilisez la clé primaire pour une distribution uniforme. Seuls les types entiers sont pris en charge ; les types non pris en charge entraînent un retour à une synchronisation sur un seul canal. Laissez ce champ vide pour utiliser un seul canal. Non Aucune
where Condition de filtre SQL WHERE, par exemple gmt_create>$bizdate pour une synchronisation quotidienne incrémentielle. Omettez le paramètre ou laissez-le vide pour synchroniser toutes les données. Les clauses LIMIT ne sont pas prises en charge. Non Aucune
querySql Requête SQL personnalisée qui remplace table, column, where et splitPk. Utilisez cette option pour les jointures multitable, par exemple select a,b from table_a join table_b on table_a.id = table_b.id. Le paramètre datasource est toujours utilisé pour les informations d'identification. Ce paramètre est sensible à la casse (querySql, et non querysql) et n'est pas pris en charge dans l'interface sans code. Non Aucune

Éditeur

Exemple de script

{
    "type": "job",
    "version": "2.0",
    "steps": [
        {
            "stepType": "stream",
            "parameter": {},
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "mariadb",
            "parameter": {
                "postSql": [],
                "datasource": "",
                "column": [
                    "id",
                    "value"
                ],
                "writeMode": "insert",
                "batchSize": 1024,
                "table": "",
                "preSql": [
                    "delete from XXX;"
                ]
            },
            "name": "Writer",
            "category": "writer"
        }
    ],
    "setting": {
        "errorLimit": {
            "record": "0"
        },
        "speed": {
            "throttle": true,
            "concurrent": 1,
            "mbps": "12"
        }
    },
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    }
}

Paramètres de l'éditeur

Paramètre Description Obligatoire Par défaut
datasource Nom de la source de données. Doit correspondre au nom de la source de données ajoutée dans DataWorks. Oui Aucune
table Table de destination dans laquelle écrire. Oui Aucune
column Colonnes de destination dans lesquelles écrire, sous forme de tableau JSON ; par exemple, ["id", "name", "age"]. Pour écrire dans toutes les colonnes dans l'ordre, utilisez ["*"]. Oui Aucune
writeMode Mode d'écriture. Trois modes sont pris en charge : insert (INSERT INTO — les conflits sont traités comme des données erronées), update (ON DUPLICATE KEY UPDATE — les conflits mettent à jour les champs spécifiés dans updateColumn), et replace (REPLACE INTO — les conflits suppriment la ligne existante et insèrent la nouvelle ligne). Non insert into
updateColumn Colonnes à mettre à jour en cas de conflit de clé primaire ou d'index unique. Ce paramètre est utilisé lorsque writeMode est défini sur update. Séparez les colonnes par des virgules ; par exemple, ["name", "age"]. Non Aucune
preSql Instruction SQL à exécuter avant la tâche de synchronisation. L'interface sans code prend en charge une instruction ; l'éditeur de code en prend en charge plusieurs. Exemple : truncate table tablename. Les transactions ne sont pas prises en charge pour plusieurs instructions. Non Aucune
postSql Instruction SQL à exécuter après la tâche de synchronisation. L'interface sans code prend en charge une instruction ; l'éditeur de code en prend en charge plusieurs. Exemple : ALTER TABLE tablename ADD colname TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP. Les transactions ne sont pas prises en charge pour plusieurs instructions. Non Aucune
batchSize Nombre d'enregistrements soumis par lot. Des valeurs plus élevées réduisent les allers-retours réseau et améliorent le débit, mais des valeurs très élevées peuvent provoquer des erreurs de dépassement de mémoire (OOM). Non 256