Object

za.co.absa.enceladus.kafka

KafkaDispatcher

Related Doc: package kafka

Permalink

object KafkaDispatcher

This class dispatches columns from a Dataframe to Kafka clusters in Avro format. The connection and dispatching of data are controlled by Spark. The conversion to Avro is performed by ABRiS.

Specs:

1. The settings used to communicate with the Kafka cluster must be defined in a java.util.Properties file, whose address must be informed as a parameter to the dispatcher method. 2. There are two mandatory parameters: 'kafka.bootstrap.servers' and 'topic'. 3. Optional settings (e.g. SSL credentials) must be prefixed with 'option.' (e.g. option.kafka.security.protocol=SSL). 4. The Dataframe must contain a schema, otherwise there is no way to convert it into an Avro record. 5. Spark operations (e.g. Dataframe caching) must be performed outside this component. 6. There will be no exception thrown if the properties file is invalid, or if properties are misnamed. This is a functional requirement that nothing else breaks (a.k.a. the whole job) in case of errors in the Kafka configuration. HOWEVER, problems related to Spark operations (e.g. wrong column names) are not guaranteed and may throw, since it would mean wrong assumptions about the system on the user side, and as such, must be uncovered asap.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. KafkaDispatcher
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. def dispatch(dataframe: Dataset[Row], configurationPath: Option[String]): Unit

    Permalink

    Dispatches columns from a Dataframe to a Kafka broker in Avro format.

    Dispatches columns from a Dataframe to a Kafka broker in Avro format. It will also send files to executors and genrate Avro schemas, if specified in the .properties configuration file. WILL NOT throw if something goes wrong, thus, it is necessary to check the logs to find errors.

  7. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  8. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  9. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  10. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  11. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  12. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  13. val log: Logger

    Permalink
  14. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  15. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  16. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  17. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  18. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  19. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  20. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped