class SawtoothMutationAggregator extends SawtoothAggregator
Mutations processing starts with an end of the day snapshot FinalBatchIR. On top of this FinalBatchIR mutations are processed.
update/merge/finalize are related to snapshot data. As such they follow the snapshot Schema and aggregators. However mutations come into play later in the group by and a finalized version of the snapshot data is created to be processed with the mutations rows. Since the dataframe inputs are aligned between mutations and snapshot (input) no additional schema is needed.
- Alphabetic
- By Inheritance
- SawtoothMutationAggregator
- SawtoothAggregator
- Serializable
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new SawtoothMutationAggregator(aggregations: Seq[Aggregation], inputSchema: Seq[(String, DataType)], resolution: Resolution = FiveMinuteResolution, tailBufferMillis: Long = new Window(2, TimeUnit.DAYS).millis)
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- lazy val baseAggregator: RowAggregator
- Definition Classes
- SawtoothAggregator
- Annotations
- @transient()
- lazy val baseIrIndices: Array[Int]
- Attributes
- protected
- Definition Classes
- SawtoothAggregator
- Annotations
- @transient()
- def batchIrSchema: Array[(String, DataType)]
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def computeWindows(hops: OutputArrayType, endTimes: Array[Long]): Array[Array[Any]]
- Definition Classes
- SawtoothAggregator
- def cumulate(inputs: Iterator[Row], sortedEndTimes: Array[Long], baseIR: Array[Any]): Array[Array[Any]]
- Definition Classes
- SawtoothAggregator
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- def finalizeSnapshot(batchIr: BatchIr): FinalBatchIr
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- val hopSizes: Array[Long]
- Attributes
- protected
- Definition Classes
- SawtoothAggregator
- val hopsAggregator: HopsAggregatorBase
- def init: BatchIr
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def lambdaAggregateIrMany(batchEndTs: Long, finalBatchIr: FinalBatchIr, sortedInputs: Array[Row], sortedEndTimes: Array[Long]): Array[Array[Any]]
Given aggregations FinalBatchIRs at the end of the Snapshot (batchEndTs) and mutation and query times, determine the values at the query times for the aggregations.
Given aggregations FinalBatchIRs at the end of the Snapshot (batchEndTs) and mutation and query times, determine the values at the query times for the aggregations. This is pretty much a mix of online with extra work for multiple queries ts support.
- def merge(batchIr1: BatchIr, batchIr2: BatchIr): BatchIr
- def mergeTailHops(ir: Array[Any], queryTs: Long, batchEndTs: Long, batchIr: FinalBatchIr): Array[Any]
Update the intermediate results with tail hops data from a FinalBatchIr.
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- lazy val perWindowAggs: Array[AggregationPart]
- Definition Classes
- SawtoothAggregator
- Annotations
- @transient()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- lazy val tailHopIndices: Array[Int]
- Attributes
- protected
- Definition Classes
- SawtoothAggregator
- Annotations
- @transient()
- def tailTs(batchEndTs: Long): Array[Option[Long]]
- def toString(): String
- Definition Classes
- AnyRef → Any
- lazy val unpackedAggs: UnpackedAggregations
- Definition Classes
- SawtoothAggregator
- Annotations
- @transient()
- def update(batchEndTs: Long, batchIr: BatchIr, row: Row): BatchIr
- def updateIr(ir: Array[Any], row: Row, queryTs: Long, hasReversal: Boolean = false): Unit
Go through the aggregators and update or delete the intermediate with the information of the row if relevant.
Go through the aggregators and update or delete the intermediate with the information of the row if relevant. Useful for both online and mutations
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- lazy val windowMappings: Array[WindowMapping]
- Definition Classes
- SawtoothAggregator
- Annotations
- @transient()
- lazy val windowedAggregator: RowAggregator
- Definition Classes
- SawtoothAggregator
- Annotations
- @transient()