Todos os produtos
Search
Central de documentação

DataWorks:Fonte de dados do MongoDB

Última atualização: Sep 25, 2026

O DataWorks fornece sincronização bidirecional de dados com o MongoDB. Este tópico descreve os recursos de sincronização de dados que o DataWorks oferece para o MongoDB.

Versões suportadas

O suporte é limitado às versões 4.x, 5.x, 6.x, 7.x e 8.0 do MongoDB.

Observações de uso

  • Conecte-se a um banco de dados MongoDB usando uma conta criada para esse banco. Ao usar uma fonte de dados do ApsaraDB for MongoDB, o sistema cria uma conta root por padrão. Por motivos de segurança, recomendamos não usar a conta root ao adicionar uma fonte de dados do MongoDB.

  • Se você usar um cluster fragmentado do MongoDB, será necessário configurar o endereço de um nó mongos para a fonte de dados. Não configure o endereço de um nó mongod/shard. Caso contrário, uma tarefa de sincronização poderá consultar dados apenas do shard especificado, em vez de todo o conjunto de dados. Para obter mais informações sobre mongos e mongod, consulte a documentação do mongos e do mongod.

  • Se a simultaneidade for maior que 1, todos os campos _id na coleção configurada para a tarefa de sincronização devem ter o mesmo tipo de dados. Por exemplo, todos os campos _id devem ser do tipo string ou ObjectId. Caso contrário, alguns dados podem não ser sincronizados.

    Nota
    • Quando a simultaneidade é maior que 1, o sistema divide a tarefa com base no campo _id. Portanto, não há suporte para tipos de dados mistos no campo _id neste cenário. Se o campo _id contiver vários tipos de dados, defina a simultaneidade como 1 para a sincronização de dados. Para isso, não configure o parâmetro splitFactor ou defina o parâmetro splitFactor como 1.

  • O Data Integration não suporta o tipo array. No entanto, o MongoDB suporta o tipo array e oferece um recurso de indexação poderoso. Você pode configurar parâmetros específicos para converter strings em arrays do MongoDB. Após a conversão, você pode gravar os dados no MongoDB em paralelo.

  • Bancos de dados MongoDB autogerenciados não suportam acesso por rede pública. O acesso a eles ocorre apenas pela rede interna da Alibaba Cloud.

  • Não há suporte para clusters do MongoDB implantados com Docker.

  • Não é possível usar o parâmetro query para ler dados de colunas específicas.

  • Em uma tarefa de sincronização em lote, se o Data Integration não conseguir recuperar a estrutura de campos do MongoDB, ele gerará mapeamentos de campos para seis campos por padrão. Os nomes dos campos são col1, col2, col3, col4, col5 e col6.

  • Durante a execução da tarefa, o sistema usa o comando splitVector por padrão para fragmentar a tarefa. Algumas versões do MongoDB não suportam o comando splitVector, o que pode causar um erro no such cmd splitVector. Para evitar esse erro, clique em ícone image na configuração da tarefa, alterne para o editor de código e adicione o seguinte parâmetro à configuração de parâmetros do MongoDB para impedir o uso do splitVector.

    "useSplitVector" : false

Tipos de campo suportados

Tipos de dados do MongoDB suportados pelo MongoDB Reader

O Data Integration suporta a maioria, mas não todos, os tipos de dados do MongoDB. Certifique-se de que os seus tipos de dados tenham suporte.

Quando o Data Integration lê os tipos de dados compatíveis, ele executa as seguintes operações:

  • Para tipos de dados primitivos, o Data Integration lê automaticamente os dados do caminho correspondente com base no nome do campo configurado no parâmetro column. Para obter mais informações, consulte Apêndice: Script de exemplo e descrição de parâmetros para o MongoDB. O Data Integration também converte automaticamente o tipo de dados. Não é necessário especificar a propriedade type para a coluna.

    Tipo

    Leitura em lote (MongoDB Reader)

    Descrição

    ObjectId

    Suportado

    O tipo de ID de objeto.

    Double

    Suportado

    O tipo de número de ponto flutuante de 64 bits.

    Inteiro de 32 bits

    Suportado

    Um inteiro de 32 bits.

    Inteiro de 64 bits

    Suportado

    Um inteiro de 64 bits.

    Decimal128

    Suportado

    O tipo Decimal128.

    Nota

    Se um campo for configurado como um tipo aninhado ou um tipo combine, o sistema o processa como um objeto durante a serialização JSON. Você deve adicionar o parâmetro decimal128OutputType e defini-lo como bigDecimal para exportar os dados como um decimal.

    String

    Suportado

    O tipo string.

    Boolean

    Suportado

    O tipo booleano.

    Timestamp

    Suportado

    O tipo timestamp.

    Nota

    O BsonTimestamp armazena timestamps. Não é necessário considerar o impacto dos fusos horários. Para obter mais informações, consulte Problemas de fuso horário no MongoDB.

    Date

    Suportado

    O tipo data.

  • Para alguns tipos de dados complexos, você pode configurar a propriedade type para a coluna a fim de executar um processamento personalizado.

    Tipo

    Leitura em lote (MongoDB Reader)

    Descrição

    Document

    Suportado

    O tipo de documento embutido.

    • Se a propriedade type não estiver configurada, o sistema converte o Document diretamente por serialização JSON.

    • Se a propriedade type estiver definida como document, o campo será um tipo aninhado. O MongoDB Reader lê as propriedades do Document com base no caminho. Para ver um exemplo detalhado, consulte Exemplo 2: Analisando recursivamente um Document aninhado em vários níveis abaixo.

    Array

    Suportado

    O tipo array.

    • Se type estiver definido como array.json ou arrays, o sistema processa os dados diretamente por serialização JSON.

    • Se type estiver definido como array ou document.array, os elementos serão concatenados em uma string. O separador, especificado na propriedade splitter da coluna, é uma vírgula (,) por padrão.

    Importante

    O Data Integration não suporta o tipo array. No entanto, o MongoDB suporta o tipo array e oferece um recurso de indexação poderoso. Você pode configurar parâmetros específicos para converter strings em arrays do MongoDB. Após a conversão, você pode gravar os dados no MongoDB em paralelo.

Tipo de dados especial do Data Integration: combine

Tipo

Leitura em lote (MongoDB Reader)

Descrição

Combine

Suportado

Um tipo de dados personalizado no Data Integration.

Se type estiver definido como combine, o MongoDB Reader remove as chaves correspondentes às colunas configuradas e serializa todas as outras informações em todo o Document em uma saída JSON. Para ver um exemplo detalhado, consulte Exemplo 1: Usando o tipo combine abaixo.

Mapeamentos de tipos de dados do MongoDB Reader

A tabela a seguir lista os mapeamentos entre os tipos de dados do MongoDB e os tipos de dados do Data Integration para o MongoDB Reader.

Categoria de tipo convertido

Tipo de dados do MongoDB

LONG

INT, LONG, document.INT e document.LONG

DOUBLE

DOUBLE e document.DOUBLE

STRING

STRING, ARRAY, document.STRING, document.ARRAY e COMBINE

DATE

DATE e document.DATE

BOOLEAN

BOOL e document.BOOL

BYTES

BYTES e document.BYTES

Mapeamentos de tipos de dados do MongoDB Writer

Categoria de tipo

Tipo de dados do MongoDB

Inteiro

INT e LONG

Ponto flutuante

DOUBLE

String

STRING e ARRAY

Data e hora

DATE

Booleano

BOOL

Binário

BYTES

Exemplo 1: Usando o tipo combine

O tipo de dados combine do plugin MongoDB Reader permite mesclar vários campos em um documento do MongoDB em uma única string JSON. Por exemplo, suponha que você queira importar campos de três documentos do MongoDB para o MaxCompute. No exemplo a seguir, os campos são representados por chaves em vez de pares chave-valor. Os campos a e b são comuns a todos os três documentos, e x_n é um campo variável.

  • doc1: a b x_1 x_2

  • doc2: a b x_2 x_3 x_4

  • doc3: a b x_5

No arquivo de configuração, especifique explicitamente os campos que exigem mapeamento um para um. Para os campos que deseja mesclar, atribua um novo nome diferente de qualquer nome de campo existente no documento e defina o tipo como COMBINE. O código a seguir apresenta um exemplo.

"column": [
{
"name": "a",
"type": "string",
},
{
"name": "b",
"type": "string",
},
{
"name": "doc",
"type": "combine",
}
]

A tabela a seguir mostra a saída final no MaxCompute.

odps_column1

odps_column2

odps_column3

a

b

{x_1,x_2}

a

b

{x_2,x_3,x_4}

a

b

{x_5}

Nota

Após o uso do tipo combine para mesclar vários campos em um documento do MongoDB, o sistema exclui automaticamente os campos comuns quando a saída é mapeada para o MaxCompute. O sistema mantém apenas os campos exclusivos do documento.

Por exemplo, a e b são campos comuns em todos os documentos. Após a mesclagem dos campos no documento doc1: a b x_1 x_2 com o tipo combine, a saída é {a,b,x_1,x_2}. Quando esse resultado é mapeado para o MaxCompute, o sistema exclui os campos comuns a e b. A saída final é {x_1,x_2}.

Exemplo 2: Analisando recursivamente um Document aninhado em vários níveis

Se um documento no MongoDB tiver vários níveis de aninhamento, você pode configurar o tipo document para analisá-lo recursivamente. O código a seguir apresenta um exemplo.

  • Dados de origem no MongoDB:

    {
        "name": "name1",
        "a":
        {
            "b":
            {
                "c": "this is value"
            }
        }
    }
  • Configuração de coluna do MongoDB:

    {"name":"_id","type":"string"}
    {"name":"name","type":"string"}
    {"name":"a.b.c","type":"document"}

    Após a conclusão da configuração, o mapeamento dos campos de origem e de destino ocorre da seguinte forma: _id é mapeado para id, name é mapeado para name e a.b.c é mapeado para c.

Com a configuração anterior, o sistema grava o valor do campo de origem aninhado a.b.c no campo de destino c. Após a execução da tarefa de sincronização, os dados gravados no destino correspondem a this is value.

Adicionar uma fonte de dados

Antes de desenvolver uma tarefa de sincronização no DataWorks, você deve adicionar a fonte de dados necessária ao DataWorks seguindo as instruções em Configuração da fonte de dados. visualize as descrições de parâmetros no console do DataWorks para entender o significado dos parâmetros ao adicionar uma fonte de dados.

Desenvolver uma tarefa de sincronização de dados

Para obter informações sobre o ponto de entrada e o procedimento de configuração de uma tarefa de sincronização, consulte os seguintes guias de configuração.

Configure uma tarefa de sincronização em lote para uma única tabela

Configure uma tarefa de sincronização em tempo real para uma única tabela

Consulte Configure uma tarefa de sincronização em tempo real para uma única tabela.

Configure uma tarefa de sincronização para um banco de dados inteiro

Você pode configurar tarefas para sincronização em lote, sincronização em tempo real completa e incremental ou sincronização em tempo real a partir de bancos de dados fragmentados para um banco de dados inteiro. Para obter mais informações, consulte Tarefa de sincronização em lote para um banco de dados inteiro e Configure uma tarefa de sincronização em tempo real para um banco de dados inteiro.

Melhores práticas

Perguntas frequentes

Apêndice: Script de exemplo e descrição de parâmetros para o MongoDB

Configure uma tarefa de sincronização em lote usando o editor de código

Se você quiser configurar uma tarefa de sincronização em lote usando o editor de código, deverá configurar os parâmetros relacionados no script com base nos requisitos unificados de formato de script. Para obter mais informações, consulte Configuração do modo de script. As informações a seguir descrevem os parâmetros que você deve configurar para fontes de dados ao configurar uma tarefa de sincronização em lote usando o editor de código.

Exemplo de script do Reader

O script a seguir é um exemplo de um job configurado para extrair dados do MongoDB para um ambiente local. Para obter mais informações sobre os parâmetros, consulte as descrições de parâmetros a seguir.

Importante
  • Antes de executar o código, exclua os comentários.

  • Não é possível extrair elementos específicos de um array.

{
    "type":"job",
    "version":"2.0",// Version number.
    "steps":[
        {
            "category": "reader",
            "name": "Reader",
            "parameter": {
                "datasource": "datasourceName", // Data source name.
                "collectionName": "tag_data", // Collection name.
                "query": "", // Data filtering query.
                "column": [
                    {
                        "name": "unique_id", // Field name.
                        "type": "string" // Field type.
                    },
                    {
                        "name": "sid",
                        "type": "string"
                    },
                    {
                        "name": "user_id",
                        "type": "string"
                    },
                    {
                        "name": "auction_id",
                        "type": "string"
                    },
                    {
                        "name": "content_type",
                        "type": "string"
                    },
                    {
                        "name": "pool_type",
                        "type": "string"
                    },
                    {
                        "name": "frontcat_id",
                        "type": "array",
                        "splitter": ""
                    },
                    {
                        "name": "categoryid",
                        "type": "array",
                        "splitter": ""
                    },
                    {
                        "name": "gmt_create",
                        "type": "string"
                    },
                    {
                        "name": "taglist",
                        "type": "array",
                        "splitter": " "
                    },
                    {
                        "name": "property",
                        "type": "string"
                    },
                    {
                        "name": "scorea",
                        "type": "int"
                    },
                    {
                        "name": "scoreb",
                        "type": "int"
                    },
                    {
                        "name": "scorec",
                        "type": "int"
                    },
                    {
                        "name": "a.b",
                        "type": "document.int"
                    },
                    {
                        "name": "a.b.c",
                        "type": "document.array",
                        "splitter": " "
                    }
                ]
            },
            "stepType": "mongodb"
        },
        { 
            "stepType":"stream",
            "parameter":{},
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "common": { 
            "column": { 
                "timeZone": "GMT+0" // Time zone.
            } 
        },
        "errorLimit":{
            "record":"0"// Number of error records.
        },
        "speed":{
            "throttle":true,// Specifies whether to enable throttling. If you set this parameter to false, throttling is disabled and the mbps parameter does not take effect. If you set this parameter to true, throttling is enabled.
            "concurrent":1, // Number of concurrent jobs.
            "mbps":"12"// Throttling rate. 1 mbps = 1 MB/s.
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Parâmetro

Descrição

datasource

O nome da fonte de dados. No editor de código, o valor deste parâmetro deve ser igual ao nome da fonte de dados adicionada.

collectionName

O nome da coleção do MongoDB.

hint

O parâmetro hint força o otimizador de consultas a usar um índice específico para uma consulta, o que pode melhorar o desempenho. Para obter mais informações, consulte parâmetro hint. Exemplo:

{
"collectionName":"test_collection",
"hint":"{age:1}"
}

column

Um array que especifica os campos do documento a serem lidos do MongoDB.

  • name: O nome da coluna.

  • Os tipos compatíveis para o parâmetro type incluem o seguinte:

    • string: String.

    • long: Inteiro.

    • double: Número de ponto flutuante.

    • date: Data.

    • bool: Valor booleano.

    • bytes: Sequência binária.

    • arrays: Lida como uma string JSON, como ["a","b","c"].

    • array: Lida como uma string com elementos separados pelo splitter, como a,b,c. Recomendamos o uso do formato arrays.

    • combine: Ao usar o plugin MongoDB Reader para ler dados, você pode mesclar vários campos em um documento do MongoDB em uma única string JSON.

  • splitter: O MongoDB suporta o tipo array, mas o framework do Data Integration não. Portanto, o tipo array lido do MongoDB deve ser mesclado em uma string usando este separador.

batchSize

O número de registros a serem recuperados em um lote. Este parâmetro é opcional. Valor padrão: 1000.

cursorTimeoutInMs

O período de timeout do cursor. Este parâmetro é opcional. Valor padrão: 1000 60 10 = 600000. Se cursorTimeoutInMs for definido como um valor negativo, o cursor nunca atingirá o timeout.

Nota
  • Não recomendamos definir o cursor para nunca atingir o timeout. Se o programa cliente for encerrado inesperadamente, um cursor que nunca atinge o timeout permanecerá no servidor MongoDB até que o service seja reiniciado.

  • Se ocorrer um timeout de cursor, execute as seguintes operações:

    • Diminua o número de registros recuperados em um lote usando o parâmetro batchSize.

    • Aumente o período de timeout do cursor usando o parâmetro cursorTimeoutInMs.

query

Use este parâmetro para filtrar os dados retornados do MongoDB. Apenas os formatos de data e hora especificados são compatíveis. O formato de timestamp UNIX não é suportado diretamente.

Nota
  • O parâmetro query não suporta sintaxe JavaScript.

  • Não há suporte para leitura de dados de colunas especificadas.

O código a seguir apresenta exemplos comuns para o parâmetro query:

  • Buscar dados com status normal.

    {
      ...
      "query":"{ status: "normal"}"
      ...
    }
  • status: "normal"

    {
      ...
      "query":"{ status: { $in: [ "normal", "forbidden" ] }}"
      ...
    }
  • Sintaxe AND: Busque dados com status normal e idade menor que 30.

    {
      ...
      "query":"{ status: "normal", age: { $lt: 30 }}"
      ...
    }
  • Sintaxe de data: Busque dados com hora de criação maior ou igual a 2022-12-01 00:00:00.000. +0800 indica o fuso horário UTC+8.

    {
      ...
      "query":"{ createTime:{$gte:ISODate('2022-12-01T00:00:00.000+0800')}}"
      ...
    }
  • Sintaxe de data com placeholder de parâmetro de agendamento: Busque dados com hora de criação maior ou igual a um ponto específico no tempo.

    {
      ...
      "query":"{ createTime:{$gte:ISODate('$[yyyy-mm-dd]T00:00:00.000+0800')}}"
      ...
    }
    Nota

    Para obter mais informações sobre parâmetros de agendamento, consulte Cenários: Cenários de aplicação típicos de parâmetros de agendamento no Data Integration. Para obter informações sobre como implementar a sincronização incremental para tarefas em lote, consulte Usar parâmetros de agendamento no Data Integration.

  • Sincronização incremental para campos não temporais.

    Você pode usar um nó de atribuição para processar um campo para o tipo de dados de destino e, em seguida, passá-lo para o Data Integration para sincronização de dados. Por exemplo, se o campo incremental no MongoDB for um timestamp UNIX, você pode usar um nó de atribuição para converter um campo do tipo tempo em um timestamp UNIX usando uma função do mecanismo. Em seguida, você pode passar o timestamp para a tarefa de sincronização em lote. Para obter mais informações sobre como usar um nó de atribuição, consulte Nó de atribuição.

Nota

Para obter mais informações sobre a sintaxe de consulta do MongoDB, consulte a documentação oficial do MongoDB.

splitFactor

Se existir uma distorção severa de dados, considere aumentar o splitFactor para obter uma fragmentação de granulação mais fina sem aumentar a concorrência.

Exemplo de script do Writer

O script a seguir é um exemplo de um job de sincronização de dados configurado para gravar dados no MongoDB. Para obter mais informações sobre os parâmetros, consulte as descrições de parâmetros a seguir.

{
    "type": "job",
    "version": "2.0",// Version number.
    "steps": [
        {
            "stepType": "stream",
            "parameter": {},
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "mongodb",// Plugin name.
            "parameter": {
                "datasource": "",// Data source name.
                "column": [
                    {
                        "name": "_id",// Column name.
                        "type": "ObjectId"// Data type. If replaceKey is _id, you must set type to ObjectId. If you set type to string, the replacement fails.
                    },
                    {
                        "name": "age",
                        "type": "int"
                    },
                    {
                        "name": "id",
                        "type": "long"
                    },
                    {
                        "name": "wealth",
                        "type": "double"
                    },
                    {
                        "name": "hobby",
                        "type": "array",
                        "splitter": " "
                    },
                    {
                        "name": "valid",
                        "type": "boolean"
                    },
                    {
                        "name": "date_of_join",
                        "format": "yyyy-MM-dd HH:mm:ss",
                        "type": "date"
                    }
                ],
                "writeMode": {// Write mode.
                    "isReplace": "true",
                    "replaceKey": "_id"
                },
                "collectionName": "datax_test"// Collection name.
            },
            "name": "Writer",
            "category": "writer"
        }
    ],
    "setting": {
        "errorLimit": {// Number of error records.
            "record": "0"
        },
        "speed": {
            "throttle": true,// Specifies whether to enable throttling. If you set this parameter to false, throttling is disabled and the mbps parameter does not take effect. If you set this parameter to true, throttling is enabled.
            "concurrent": 1,// Number of concurrent jobs.
            "mbps": "1"// Throttling rate. 1 mbps = 1 MB/s.
        },
       "jvmOption": "-Xms1024m -Xmx1024m"
    },
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    }
}

Parâmetros do script do Writer

Parâmetro

Descrição

Obrigatório

Valor padrão

datasource

O nome da fonte de dados. No editor de código, o valor deste parâmetro deve ser igual ao nome da fonte de dados adicionada.

Sim

Nenhum

collectionName

O nome da coleção do MongoDB.

Sim

Nenhum

column

Um array que especifica os campos do documento a serem gravados no MongoDB.

  • name: O nome da coluna.

  • type: O tipo da coluna.

    • int: Um inteiro de 32 bits.

    • string: Uma string.

    • array: O parâmetro splitter é obrigatório. Ele é usado para separar a string de origem. Por exemplo:

      Se os dados de origem forem a,b,c e splitter estiver definido como uma vírgula (,), os dados serão divididos no array ["a","b","c"] e gravados no MongoDB.

      {"type":"array","name":"col_split_array","splitter":",","itemtype":"string"}
      Nota

      Para o tipo array, o parâmetro itemtype suporta os seguintes tipos de enumeração: double, int, long, bool, bytes e string.

    • json: Uma string JSON.

    • long: Um inteiro longo.

    • date: Uma data.

    • double: Um número de ponto flutuante.

    Nota

    O MongoDB Writer também suporta a gravação de tipos aninhados. Adicione o prefixo document. ao type para indicar um tipo aninhado. Você pode configurar um nome em cascata para o parâmetro name. Exemplo:

    {"type":"document.string","name":"col_nest.col_string"}
        {"type":"document.array","name":"col_nest.col_split_array","splitter":",","itemtype":"string"}
  • splitter: Um separador especial. Use este parâmetro apenas quando uma string precisar ser dividida em um array de caracteres. A string é dividida em um array usando o separador especificado e armazenada no MongoDB.

Sim

Nenhum

writeMode

Especifica se deve sobrescrever os dados durante a transmissão. Inclui isReplace e replaceKey:

  • isReplace: Se definido como true, o sistema realiza uma operação de sobrescrita para o mesmo replaceKey. Se definido como false, nenhuma operação de sobrescrita é realizada.

  • replaceKey: Especifica a chave primária de negócios para cada registro, que é usada para sobrescrita. Não há suporte para várias chaves no replaceKey. Isso geralmente se refere à chave primária no MongoDB.

Nota

Se isReplace estiver definido como true e um campo diferente do campo _id for configurado como o replaceKey, um erro semelhante ao seguinte poderá ocorrer durante a execução:

After applying the update, the (immutable) field '_id' was found to have been altered to _id: "2"

Isso ocorre porque os dados a serem gravados contêm registros onde o _id não corresponde ao replaceKey. Para obter mais informações, consulte as Perguntas frequentes: Error: After applying the update, the (immutable) field '_id' was found to have been altered to _id: "2".

Não

Nenhum

preSql

Uma pré-operação a ser executada antes de gravar dados no MongoDB, como limpar dados históricos. Se preSql estiver vazio, nenhuma pré-operação será configurada. Ao configurar o preSql, certifique-se de que seu valor esteja em conformidade com a sintaxe JSON.

Não

Nenhum

Quando você executa um job do Data Integration, o sistema executa o preSql configurado primeiro. A fase real de gravação de dados começa apenas após a conclusão da execução do preSql. O parâmetro preSql não afeta o conteúdo dos dados que são gravados. O parâmetro preSql garante a execução idempotente para o Data Integration. Por exemplo, seu preSql pode ser usado para limpar dados históricos antes de cada execução de tarefa com base em suas regras de negócios. Nesse caso, se uma tarefa falhar, você pode simplesmente reexecutar o job do Data Integration.

Os requisitos de formato para preSql são os seguintes:

  • Você deve configurar o campo type para especificar o tipo de pré-operação. Os valores compatíveis são drop e remove. Exemplo: "preSql":{"type":"remove"}.

    • drop: Exclui a coleção e os dados nela contidos. A coleção a ser excluída é especificada pelo parâmetro collectionName.

    • remove: Exclui dados com base em uma condição.

    • json: Você pode usar um objeto JSON para especificar as condições para exclusão de dados. Exemplo: "preSql":{"type":"remove", "json":"{'operationTime':{'$gte':ISODate('${last_day}T00:00:00.424+0800')}}"}. Neste exemplo, ${last_day} é um parâmetro de agendamento do DataWorks no formato $[yyyy-mm-dd]. Você também pode usar outros operadores condicionais compatíveis com o MongoDB (como $gt, $lt, $gte e $lte), operadores lógicos (como and e or) ou funções (como max, min, sum, avg e ISODate) conforme necessário.

      O Data Integration executa a exclusão de dados usando a seguinte API padrão do MongoDB:

      query=(BasicDBObject) com.mongodb.util.JSON.parse(json);        
      col.deleteMany(query);
      Nota

      Para excluir dados com base em condições, recomendamos o uso da configuração JSON.

    • item: Você pode configurar o nome da coluna (name), condição (condition) e valor da coluna (value) para filtragem de dados em um item. Exemplo: "preSql":{"type":"remove","item":[{"name":"pv","value":"100","condition":"$gt"},{"name":"pid","value":"10"}]}.

      O Data Integration constrói uma condição de consulta com base nas condições de item configuradas e, em seguida, executa a exclusão usando uma API padrão do MongoDB. Por exemplo: col.deleteMany(query);.

  • Se o sistema não reconhecer o preSql, ele não realizará nenhuma operação de pré-exclusão.