Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Opções de configuração de gravação em lote

Você pode configurar as seguintes propriedades ao gravar dados no MongoDB no modo de lote.

Observação

Se você usar SparkConf para definir as configurações de gravação do conector, insira spark.mongodb.write. como prefixo em cada propriedade.

Nome da propriedade
Descrição

connection.uri

Obrigatório.
A chave de configuração da string de conexão.

Padrão: mongodb://localhost:27017/

database

Obrigatório.
A configuração do nome do banco de dados.

collection

Obrigatório.
A configuração do nome da coleção.

comment

O comentário a ser anexado à operação de gravação. Os comentários aparecem na saída do profiler de banco de dados.

Padrão: nenhum

mongoClientFactory

Chave de configuração do MongoClientFactory.
Você pode especificar uma implementação personalizada que deve implementar a interface com.mongodb.spark.sql.connector.connection.MongoClientFactory.

Padrão: com.mongodb.spark.sql.connector.connection.DefaultMongoClientFactory

convertJson

Especifica se o conector analisa valores de string e converte JSON estendido em BSON.

Esta configuração aceita os seguintes valores:

  • any: o conector converte todos os valores JSON em BSON.

    • "{a: 1}" torna-se {a: 1}.

    • "[1, 2, 3]" torna-se [1, 2, 3].

    • "true" torna-se true.

    • "01234" torna-se 1234.

    • "{a:b:c}" não se altera.

  • objectOrArrayOnly: o conector converte apenas objetos e matrizes JSON em BSON.

    • "{a: 1}" torna-se {a: 1}.

    • "[1, 2, 3]" torna-se [1, 2, 3].

    • "true" não se altera.

    • "01234" não se altera.

    • "{a:b:c}" não se altera.

  • false: o conector converte todos os valores em strings.

Padrão: false

idFieldList

Especifica um campo ou uma lista de campos pelos quais dividir os dados da coleção. Para especificar múltiplos campos, separe-os com vírgula, como no exemplo abaixo:

"fieldName1,fieldName2"

Padrão: _id

ignoreNullValues

Quando true, o conector ignora quaisquer valores null ao gravar, incluindo valores de null em array e documentos aninhados.

Padrão: false

maxBatchSize

Especifica o número máximo de operações para lote em operações em massa.

Padrão: 512

operationType

Especifica o tipo de operação de gravação a ser executada. Você pode definir isso como um dos valores a seguir:

  • insert: insere os dados.

  • replace: substitui um documento existente que corresponda ao valor idFieldList inserindo os novos dados. Se não houver correspondência, o valor de upsertDocument indica se um novo documento é inserido pelo conector.

  • update: atualiza um documento existente que corresponda ao valor idFieldList inserindo os novos dados. Se não houver correspondência, o valor de upsertDocument indica se um novo documento é inserido pelo conector.


Padrão: replace

ordered

Especifica se devem ser executadas operações em massa ordenadas.

Padrão: true

upsertDocument

Quando true, as operações de substituição e atualização inserem os dados se não houver correspondência.

Para coleções de séries temporais, você deve definir upsertDocument como false.

Padrão: true

writeConcern.w

Especifica w, uma opção de write concern que solicita confirmação de que a operação de gravação se propagou para um número especificado de nós do MongoDB.

Para obter uma lista de valores permitidos para essa opção, consulte WriteConcern w Option no manual do MongoDB Server.

Padrão: Acknowledged

writeConcern.journal

Especifica j, uma opção de write concern que solicita confirmação de que os dados foram gravados no diário em disco para os critérios especificados na opção w. Você pode especificar true ou false.

Para obter mais informações sobre os valores j, consulte Opção j de WriteConcern no manual do MongoDB Server.

writeConcern.wTimeoutMS

Especifica wTimeoutMS, uma opção de write concern para retornar um erro quando uma operação de gravação exceder o número especificado de milissegundos. Se você usar essa configuração opcional, deverá especificar um número inteiro não negativo.

Para obter mais informações sobre os valores de wTimeoutMS, consulte WriteConcern wtimeout no manual do MongoDB Server.

truncateMode

Especifica como truncar uma coleção ao executar uma substituição. Você pode definir esta opção para um dos seguintes valores:

  • TruncateMode.DROP: Padrão. Descarta a coleção.

  • TruncateMode.TRUNCATE: exclui todas as entradas na coleção, mas preserva índices, opções de coleção e qualquer configuração de fragmentação. Isso é mais lento do que uma operação de descartar.

ignoreDuplicatesOnInsert

Quando definido como true, o conector ignora erros de chave duplicada ao executar operações de inserção não ordenadas. Os dados que estão sendo inseridos devem incluir um valor de campo _id ou quaisquer campos especificados na opção idFieldList.

Padrão: false

Se você usa SparkConf para especificar qualquer uma das configurações anteriores, você poderá incluí-las na configuração do connection.uri ou listá-las individualmente.

O exemplo de código a seguir mostra como especificar o banco de dados, a coleção e a configuração convertJson como parte da configuração connection.uri:

spark.mongodb.write.connection.uri=mongodb://127.0.0.1/myDB.myCollection?convertJson=any

Para manter o connection.uri curto e facilitar a leitura das configurações, você pode especificá-las individualmente:

spark.mongodb.write.connection.uri=mongodb://127.0.0.1/
spark.mongodb.write.database=myDB
spark.mongodb.write.collection=myCollection
spark.mongodb.write.convertJson=any

Importante

Se você especificar uma configuração em connection.uri e em sua própria linha, a configuração connection.uri terá precedência. Por exemplo, na configuração abaixo, o banco de dados de conexão é foobar:

spark.mongodb.write.connection.uri=mongodb://127.0.0.1/foobar
spark.mongodb.write.database=bar