Tous les produits
Search
Centre de documentation

DataWorks:Écrire des données dans MongoDB avec une tâche par lots

Dernière mise à jour :Aug 10, 2026

Le plug-in MongoDB Writer de Data Integration pour DataWorks synchronise des données provenant d'autres sources vers MongoDB. Cette rubrique explique comment synchroniser par lots des données de MaxCompute vers MongoDB.

Prérequis

Avant de commencer, vérifiez que les conditions suivantes sont remplies :

Préparer les exemples de données

Préparez une collection MongoDB et une table MaxCompute pour la synchronisation par lots.

  1. Créez une table MaxCompute et ajoutez-y des données.

    1. Créez une table partitionnée nommée test_write_mongo. Définissez le champ de partition sur pt.

      CREATE TABLE IF NOT EXISTS test_write_mongo(
          id STRING ,
          col_string STRING,
          col_int int,
          col_bigint bigint,
          col_decimal decimal,
          col_date DATETIME,
          col_boolean boolean,
          col_array string
      ) PARTITIONED BY (pt STRING) LIFECYCLE 10;
    2. Ajoutez une partition avec la valeur 20230215.

      insert into test_write_mongo partition (pt='20230215')
      values ('11','name11',1,111,1.22,cast('2023-02-15 15:01:01' as datetime),true,'1,2,3');
    3. Vérifiez que la table partitionnée a été créée correctement.

      SELECT * FROM test_write_mongo
      WHERE pt='20230215';
  2. Préparez la collection MongoDB de destination.

    Ce tutoriel utilise ApsaraDB for MongoDB à titre d'exemple. Créez une collection nommée test_write_mongo.

    db.createCollection('test_write_mongo')

Configuration de la tâche par lots

Étape 1 : Ajouter une source de données MongoDB

Ajoutez une source de données MongoDB et établissez une connexion réseau entre celle-ci et le groupe de ressources exclusif pour Data Integration. Pour plus d'informations, consultez Configurer une source de données MongoDB.

Étape 2 : Créer et configurer un nœud de synchronisation par lots

Dans DataStudio DataWorks, créez un nœud de synchronisation par lots et configurez sa source et sa destination. Cette section décrit uniquement les paramètres clés. Laissez les autres paramètres tels quels. Pour obtenir des instructions détaillées, consultez Configurer une tâche dans l'interface sans code.

  1. Configurez la connexion réseau pour la synchronisation.

    Sélectionnez la source de données MongoDB, la source de données MaxCompute et le groupe de ressources exclusif pour Data Integration. Ensuite, testez la connectivité.

  2. Configurez la source et la destination.

    Sélectionnez la table partitionnée MaxCompute et la collection MongoDB. Le tableau suivant décrit les paramètres clés.

    Paramètre

    Description

    write mode

    Détermine s'il faut écraser les données existantes. Cette fonctionnalité implique deux paramètres connexes : write mode et business primary key :

    • write mode :

      • Si vous sélectionnez No, le plug-in insère chaque enregistrement sous forme de nouveau document. Il s'agit de l'option par défaut.

      • Si vous sélectionnez Yes, vous devez spécifier une business primary key. Le plug-in écrase alors les enregistrements ayant la même clé primaire métier.

    • business primary key : Spécifie la clé primaire métier pour chaque enregistrement, utilisée pour l'opération d'écrasement. Vous ne pouvez spécifier qu'un seul champ. Dans MongoDB, cela correspond généralement au champ _id.

    Remarque

    Si write mode est défini sur Yes et que vous spécifiez un champ autre que _id comme clé primaire métier, une erreur similaire à la suivante peut se produire : After applying the update, the (immutable) field '_id' was found to have been altered to _id: "2". Cette erreur survient car les données entrantes contiennent un enregistrement dont l'_id ne correspond pas à l'_id du document existant identifié par la clé primaire métier. Pour plus d'informations, consultez Erreur : After applying the update, the (immutable) field '_id' was found to have been altered to _id: "2".

    Pre-Import Statement

    Spécifie une condition préalable (PreSQL) à exécuter avant la tâche d'importation. La configuration doit être au format JSON et inclure les propriétés type et json.

    • type : Obligatoire. Les valeurs valides sont remove et drop (en minuscules).

    • json :

      • Si type est défini sur remove, ce paramètre est obligatoire. Sa valeur doit être une requête MongoDB standard. Pour plus d'informations, consultez Query Documents.

      • Si type est défini sur drop, ce paramètre n'est pas requis.

  3. Configurez le mappage des champs.

    Lorsque la source de données est MongoDB, l'option Map Fields in Same Row est utilisée par défaut. Vous pouvez également cliquer sur l'icône icon pour modifier manuellement les champs de la table source. Voici un exemple de modification manuelle.

    {"name":"id","type":"string"}
    {"name":"col_string","type":"string"}
    {"name":"col_int","type":"long"}
    {"name":"col_bigint","type":"long"}
    {"name":"col_decimal","type":"double"}
    {"name":"col_date","type":"date"}
    {"name":"col_boolean","type":"bool"}
    {"name":"col_array","type":"array","splitter":","}

    Après avoir modifié manuellement les champs, l'interface utilisateur affiche le mappage entre les champs source et destination.

    Champ source

    Champ de destination

    id

    {"name":"id","type":"string"}

    col_string

    {"name":"col_string","type":"string"}

    col_int

    {"name":"col_int","type":"long"}

    col_bigint

    {"name":"col_bigint","type":"long"}

    col_decimal

    {"name":"col_decimal","type":"double"}

    col_date

    {"name":"col_date","type":"date"}

    col_boolean

    {"name":"col_boolean","type":"bool"}

    col_array

    {"name":"col_array","type":"array","splitter":","}

Étape 3 : Valider et déployer le nœud de synchronisation par lots

Pour exécuter cette tâche périodiquement dans un espace de travail en mode standard, validez et déployez le nœud de synchronisation par lots dans l'environnement de production. Pour plus d'informations, consultez déploiement de nœud.

Étape 4 : Exécuter le nœud de synchronisation par lots et afficher les résultats

Une fois le nœud configuré, exécutez-le. Lorsque la tâche est terminée, consultez les données synchronisées dans la collection MongoDB. La tâche crée un document dans la base de données de destination avec les champs et valeurs suivants : _id vaut 63ecc513143e565c9b037623, col_array vaut [1, 2, 3], col_bigint vaut 111, col_boolean vaut true, col_date vaut 2023-02-15T07:01:01.000Z, col_decimal vaut 1.22, col_int vaut 1, col_string vaut name11 et id vaut 11.

Annexe : Conversion des types de données

Valeurs prises en charge pour le paramètre type

Les valeurs prises en charge pour le paramètre type sont : INT, LONG, DOUBLE, STRING, BOOL, DATE et ARRAY.

Type Array

Pour écrire des données sous forme de tableau MongoDB, définissez le paramètre type sur ARRAY et configurez la propriété splitter. Par exemple :

  • Les données source sont la chaîne : a,b,c.

  • Dans la configuration de la tâche, type est défini sur ARRAY et splitter est défini sur ,.

  • Une fois la tâche exécutée, les données résultantes dans MongoDB sont : ["a","b","c"].