Class MongoDbIO.Write

  • All Implemented Interfaces:
    java.io.Serializable, org.apache.beam.sdk.transforms.display.HasDisplayData
    Enclosing class:
    MongoDbIO

    public abstract static class MongoDbIO.Write
    extends org.apache.beam.sdk.transforms.PTransform<org.apache.beam.sdk.values.PCollection<org.bson.Document>,​org.apache.beam.sdk.values.PDone>
    A PTransform to write to a MongoDB database.
    See Also:
    Serialized Form
    • Constructor Detail

      • Write

        public Write()
    • Method Detail

      • withUri

        public MongoDbIO.Write withUri​(java.lang.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.
      • withIgnoreSSLCertificate

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

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

        public MongoDbIO.Write withCollection​(java.lang.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.
      • expand

        public org.apache.beam.sdk.values.PDone expand​(org.apache.beam.sdk.values.PCollection<org.bson.Document> input)
        Specified by:
        expand in class org.apache.beam.sdk.transforms.PTransform<org.apache.beam.sdk.values.PCollection<org.bson.Document>,​org.apache.beam.sdk.values.PDone>
      • populateDisplayData

        public void populateDisplayData​(org.apache.beam.sdk.transforms.display.DisplayData.Builder builder)
        Specified by:
        populateDisplayData in interface org.apache.beam.sdk.transforms.display.HasDisplayData
        Overrides:
        populateDisplayData in class org.apache.beam.sdk.transforms.PTransform<org.apache.beam.sdk.values.PCollection<org.bson.Document>,​org.apache.beam.sdk.values.PDone>