Class MongoDbIO.Read

All Implemented Interfaces:
Serializable, HasDisplayData
Enclosing class:
MongoDbIO

public abstract static class MongoDbIO.Read extends PTransform<PBegin,PCollection<Document>>
A PTransform to read data from MongoDB.
See Also:
  • Constructor Details

    • Read

      public Read()
  • Method Details

    • withUri

      public MongoDbIO.Read 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.Read withMaxConnectionIdleTime(int maxConnectionIdleTime)
      Sets the maximum idle time for a pooled connection.
    • withSSLEnabled

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

      public MongoDbIO.Read withSSLInvalidHostNameAllowed(boolean invalidHostNameAllowed)
      Enable invalidHostNameAllowed for ssl for connection.
    • withIgnoreSSLCertificate

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

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

      public MongoDbIO.Read withCollection(String collection)
      Sets the collection to consider in the database.
    • withNumSplits

      public MongoDbIO.Read withNumSplits(int numSplits)
      Sets the user defined number of splits.
    • withBucketAuto

      public MongoDbIO.Read withBucketAuto(boolean bucketAuto)
      Sets weather to use $bucketAuto or not.
    • withQueryFn

      Sets a queryFn. The provided queryFn must be one of the predefined classes in the MongoDbIO package such as FindQuery() or AggregationQuery().
    • expand

      public PCollection<Document> expand(PBegin 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<PBegin,PCollection<Document>>
    • getDocumentCount

      public long getDocumentCount()
    • 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<PBegin,PCollection<Document>>
      Parameters:
      builder - The builder to populate with display data.
      See Also: