Class MongoDbIO.Write

java.lang.Object
org.apache.beam.sdk.transforms.PTransform<PCollection<Document>,PDone>
org.apache.beam.sdk.io.mongodb.MongoDbIO.Write
All Implemented Interfaces:
Serializable, HasDisplayData
Enclosing class:
MongoDbIO

public abstract static class MongoDbIO.Write extends PTransform<PCollection<Document>,PDone>
A PTransform to write to a MongoDB database.
See Also:
  • Constructor Details

    • Write

      public Write()
  • Method Details

    • withUri

      public MongoDbIO.Write withUri(String uri)
      Define the location of the MongoDB instances using an URI. The URI describes the hosts to be used and some options.

      The format of the URI is:

      
       mongodb://[username:password@]host1[:port1],...[,hostN[:portN]]][/[database][?options]]
       

      Where:

      • mongodb:// is a required prefix to identify that this is a string in the standard connection format.
      • username:password@ are optional. If given, the driver will attempt to login to a database after connecting to a database server. For some authentication mechanisms, only the username is specified and the password is not, in which case the ":" after the username is left off as well.
      • host1 is the only required part of the URI. It identifies a server address to connect to.
      • :portX is optional and defaults to :27017 if not provided.
      • /database is the name of the database to login to and thus is only relevant if the username:password@ syntax is used. If not specified, the "admin" database will be used by default. It has to be equivalent with the database you specific with withDatabase(String).
      • ?options are connection options. Note that if database is absent there is still a / required between the last host and the ? introducing the options. Options are name=value pairs and the pairs are separated by "&". You can pass the MaxConnectionIdleTime connection option via withMaxConnectionIdleTime(int).
    • withMaxConnectionIdleTime

      public MongoDbIO.Write withMaxConnectionIdleTime(int maxConnectionIdleTime)
      Sets the maximum idle time for a pooled connection.
    • withSSLEnabled

      public MongoDbIO.Write withSSLEnabled(boolean sslEnabled)
      Enable ssl for connection.
    • withSSLInvalidHostNameAllowed

      public MongoDbIO.Write withSSLInvalidHostNameAllowed(boolean invalidHostNameAllowed)
      Enable invalidHostNameAllowed for ssl for connection.
    • withOrdered

      public MongoDbIO.Write withOrdered(boolean ordered)
      Enables ordered bulk insertion (default: true).
      See Also:
    • withIgnoreSSLCertificate

      public MongoDbIO.Write withIgnoreSSLCertificate(boolean ignoreSSLCertificate)
      Enable ignoreSSLCertificate for ssl for connection (allow for self signed certificates).
    • withDatabase

      public MongoDbIO.Write withDatabase(String database)
      Sets the database to use.
    • withCollection

      public MongoDbIO.Write withCollection(String collection)
      Sets the collection where to write data in the database.
    • withBatchSize

      public MongoDbIO.Write withBatchSize(long batchSize)
      Define the size of the batch to group write operations.
    • withUpdateConfiguration

      public MongoDbIO.Write withUpdateConfiguration(UpdateConfiguration updateConfiguration)
    • expand

      public PDone expand(PCollection<Document> input)
      Description copied from class: PTransform
      Override this method to specify how this PTransform should be expanded on the given InputT.

      NOTE: This method should not be called directly. Instead apply the PTransform should be applied to the InputT using the apply method.

      Composite transforms, which are defined in terms of other transforms, should return the output of one of the composed transforms. Non-composite transforms, which do not apply any transforms internally, should return a new unbound output and register evaluators (via backend-specific registration methods).

      Specified by:
      expand in class PTransform<PCollection<Document>,PDone>
    • populateDisplayData

      public void populateDisplayData(DisplayData.Builder builder)
      Description copied from class: PTransform
      Register display data for the given transform or component.

      populateDisplayData(DisplayData.Builder) is invoked by Pipeline runners to collect display data via DisplayData.from(HasDisplayData). Implementations may call super.populateDisplayData(builder) in order to register display data in the current namespace, but should otherwise use subcomponent.populateDisplayData(builder) to use the namespace of the subcomponent.

      By default, does not register any display data. Implementors may override this method to provide their own display data.

      Specified by:
      populateDisplayData in interface HasDisplayData
      Overrides:
      populateDisplayData in class PTransform<PCollection<Document>,PDone>
      Parameters:
      builder - The builder to populate with display data.
      See Also: