Todos os produtos
Search
Central de documentação

DataWorks:Gravar dados no MongoDB com uma tarefa em lote

Última atualização: Jun 27, 2026

O plugin MongoDB Writer no DataWorks Data Integration sincroniza dados de outras fontes para o MongoDB. Este tópico explica como sincronizar dados em lote do MaxCompute para o MongoDB.

Pré-requisitos

Antes de começar, verifique se os seguintes requisitos foram atendidos:

  • O DataWorks está ativado e uma source de dados do MaxCompute foi adicionada.

  • Este tutorial utiliza um grupo de recursos exclusivo para Data Integration para executar a tarefa em lote. Adquira e configure esse grupo de recursos antes de prosseguir. Para mais informações, consulte Usar um grupo de recursos exclusivo para Data Integration.

    Nota

    Também é possível utilizar um grupo de recursos serverless. Para mais informações, consulte Usar um grupo de recursos serverless.

Preparar dados de exemplo

Prepare uma coleção do MongoDB e uma tabela do MaxCompute para a sincronização em lote.

  1. Crie uma tabela no MaxCompute e adicione dados a ela.

    1. Crie uma tabela particionada chamada test_write_mongo. Defina o campo de partição como 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. Adicione uma partição com o valor 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. Verifique se a tabela particionada foi criada corretamente.

      SELECT * FROM test_write_mongo
      WHERE pt='20230215';
  2. Prepare a coleção de destino no MongoDB.

    Este tutorial usa o ApsaraDB for MongoDB como exemplo. Crie uma coleção chamada test_write_mongo.

    db.createCollection('test_write_mongo')

Configuração da tarefa em lote

Etapa 1: Adicionar uma source de dados do MongoDB

Adicione uma source de dados do MongoDB e estabeleça uma conexão de rede entre ela e o grupo de recursos exclusivo para Data Integration. Para mais informações, consulte Configurar uma source de dados do MongoDB.

Etapa 2: Criar e configurar um nó de sincronização em lote

No DataStudio do DataWorks, crie um nó de sincronização em lote e configure sua origem e destino. Esta seção descreve apenas os parâmetros principais. Mantenha os demais parâmetros com seus valores padrão. Para instruções detalhadas, consulte Configurar uma tarefa na interface sem código.

  1. Configure a conexão de rede para sincronização.

    Selecione a source de dados do MongoDB, a source de dados do MaxCompute e o grupo de recursos exclusivo para Data Integration. Em seguida, teste a conectividade.

  2. Configure a origem e o destino.

    Selecione a tabela particionada do MaxCompute e a coleção do MongoDB. A tabela a seguir descreve os parâmetros principais.

    Parâmetro

    Descrição

    write mode

    Determina se os dados existentes devem ser sobrescritos. Essa funcionalidade envolve duas configurações relacionadas: write mode e business primary key:

    • write mode:

      • Ao selecionar No, o plugin insere cada registro como um novo documento. Esta é a opção padrão.

      • Ao selecionar Yes, especifique uma business primary key. O plugin então sobrescreve os registros que possuem a mesma chave primária de negócio.

    • business primary key: Especifica a chave primária de negócio para cada registro, utilizada na operação de sobrescrita. Apenas um campo pode ser especificado. No MongoDB, isso geralmente corresponde ao campo _id.

    Nota

    Se write mode estiver definido como Yes e você especificar um campo diferente de _id como chave primária de negócio, poderá ocorrer um erro semelhante ao seguinte: After applying the update, the (immutable) field '_id' was found to have been altered to _id: "2". Esse erro acontece porque os dados de entrada contêm um registro cujo _id não corresponde ao _id do documento existente identificado pela chave primária de negócio. Para mais informações, consulte Erro: After applying the update, the (immutable) field '_id' was found to have been altered to _id: "2".

    Pre-Import Statement

    Especifica uma pré-condição (PreSQL) executada antes da tarefa de importação. A configuração deve estar no formato JSON e incluir as propriedades type e json.

    • type: Obrigatório. Os valores válidos são remove e drop (em letras minúsculas).

    • json:

      • Quando type estiver definido como remove, este parâmetro é obrigatório. Seu valor deve ser uma consulta padrão do MongoDB. Para mais informações, consulte Query Documents.

      • Caso type esteja definido como drop, este parâmetro não é necessário.

  3. Configure o mapeamento de campos.

    Quando a source de dados é o MongoDB, o Peer mapping é usado por padrão. Clique em no ícone icon para editar manualmente os campos da tabela de origem. Veja abaixo um exemplo de edição manual.

    {"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":","}

    Após editar os campos manualmente, a interface exibe o mapeamento entre os campos de origem e de destino.

    Campo de origem

    Campo de destino

    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":","}

Etapa 3: Confirmar e implantar o nó de sincronização em lote

Para executar essa tarefa periodicamente em um workspace no modo padrão, confirme e implante o nó de sincronização em lote no ambiente de produção. Para mais informações, consulte implantação de nós.

Etapa 4: Executar o nó de sincronização em lote e visualizar os resultados

Após configurar o nó, execute-o. Quando a tarefa for concluída, visualize os dados sincronizados na coleção do MongoDB. A tarefa cria um documento no banco de dados de destino com os seguintes campos e valores: _id é 63ecc513143e565c9b037623, col_array é [1, 2, 3], col_bigint é 111, col_boolean é true, col_date é 2023-02-15T07:01:01.000Z, col_decimal é 1.22, col_int é 1, col_string é name11 e id é 11.

Apêndice: Conversão de tipos de dados

Valores suportados para o parâmetro type

Os valores suportados para o parâmetro type são: INT, LONG, DOUBLE, STRING, BOOL, DATE e ARRAY.

Tipo Array

Para gravar dados como um array do MongoDB, defina o parâmetro type como ARRAY e configure a propriedade splitter. Por exemplo:

  • Os dados de origem são a string: a,b,c.

  • Na configuração da tarefa, type está definido como ARRAY e splitter está definido como ,.

  • Após a execução da tarefa, os dados resultantes no MongoDB serão: ["a","b","c"].