Packages

c

com.adform.streamloader.sink.batch

RecordBatchingSinker

class RecordBatchingSinker[B <: RecordBatch] extends PartitionGroupSinker with Logging with Metrics

A PartitionGroupSinker that accumulates records to batches and stores them to some storage once ready.

B

Type of record batches persisted to storage.

Self Type
RecordBatchingSinker[B]
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. RecordBatchingSinker
  2. Metrics
  3. Logging
  4. PartitionGroupSinker
  5. AnyRef
  6. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new RecordBatchingSinker(groupName: String, groupPartitions: Set[TopicPartition], recordBatcher: RecordBatcher[B], batchStorage: RecordBatchStorage[B], batchCommitQueueSize: Int, retryPolicy: Policy)

    groupName

    The partition group name (used for metrics and logs).

    groupPartitions

    Set of Kafka topic partitions to sink.

    recordBatcher

    A record batcher to use.

    batchStorage

    A storage to use.

    batchCommitQueueSize

    Size of the batch commit queue, once full further attempts to store batches will block.

    retryPolicy

    The retry policy to use for all retriable operations.

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  6. def close(): Unit

    Cleans up and closes the sinker.

    Cleans up and closes the sinker.

    Definition Classes
    RecordBatchingSinkerPartitionGroupSinker
  7. def commitQueueSize: Int
  8. def createCounter(name: String, tags: Seq[MetricTag] = Seq()): Counter
    Attributes
    protected
    Definition Classes
    Metrics
  9. def createDistribution(name: String, tags: Seq[MetricTag] = Seq()): DistributionSummary
    Attributes
    protected
    Definition Classes
    Metrics
  10. def createGauge[T <: AnyRef](name: String, metric: T, tdf: ToDoubleFunction[T], tags: Seq[MetricTag] = Seq()): Gauge
    Attributes
    protected
    Definition Classes
    Metrics
  11. def createTimer(name: String, tags: Seq[MetricTag] = Seq(), maxDuration: Duration = null): Timer
    Attributes
    protected
    Definition Classes
    Metrics
  12. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  14. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  15. val groupName: String

    Name of the partition group, can be used in metrics and logs to differentiate between group sinkers.

    Name of the partition group, can be used in metrics and logs to differentiate between group sinkers.

    Definition Classes
    RecordBatchingSinkerPartitionGroupSinker
  16. val groupPartitions: Set[TopicPartition]

    The Kafka topic partitions that this sinker is responsible for.

    The Kafka topic partitions that this sinker is responsible for.

    Definition Classes
    RecordBatchingSinkerPartitionGroupSinker
  17. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  18. def heartbeat(): Unit

    Notifies the sinker that record consumption is still active.

    Notifies the sinker that record consumption is still active. Gives the sinker an opportunity to perform flushing with very low traffic streams.

    Definition Classes
    RecordBatchingSinkerPartitionGroupSinker
  19. def initialize(context: KafkaContext): Map[TopicPartition, Option[StreamPosition]]

    Initializes the sinker and returns the stream positions where topic partitions should be reset to before loading.

    Initializes the sinker and returns the stream positions where topic partitions should be reset to before loading. Should be called once before any subsequent calls to write. This is most likely a blocking call since it queries Kafka/storage for offsets.

    returns

    The initial loader positions in the owned topic partitions. If no position is returned the position will not be reset explicitly, meaning that the consumer will either reset it to the earliest/latest based on the configuration value of auto.offset.reset, or will reset to the offset stored in Kafka, if any.

    Definition Classes
    RecordBatchingSinkerPartitionGroupSinker
  20. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  21. var kafkaContext: KafkaContext
    Attributes
    protected
  22. val log: Logger
    Attributes
    protected
    Definition Classes
    Logging
  23. val metricsRoot: String

    A common prefix for all created metrics.

    A common prefix for all created metrics.

    Definition Classes
    RecordBatchingSinkerMetrics
  24. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  25. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  26. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  27. def removeMeters(meters: Meter*): Unit
    Attributes
    protected
    Definition Classes
    Metrics
  28. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  29. def toString(): String
    Definition Classes
    AnyRef → Any
  30. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  31. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  32. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  33. def write(record: StreamRecord): Unit

    Writes a given stream record to storage.

    Writes a given stream record to storage.

    Calling this method does not ensure that the record will be flushed to storage, e.g. the sinker might implement batching thus delaying the actual storage.

    Definition Classes
    RecordBatchingSinkerPartitionGroupSinker

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

    (Since version 9)

Inherited from Metrics

Inherited from Logging

Inherited from PartitionGroupSinker

Inherited from AnyRef

Inherited from Any

Ungrouped