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
- Serializable
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
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( ... ) @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: Any): 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[_]
- 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, batchTails: Array[Option[Long]]): BatchIr
- 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( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
lazy val
windowMappings: Array[WindowMapping]
- Definition Classes
- SawtoothAggregator
- Annotations
- @transient()
-
lazy val
windowedAggregator: RowAggregator
- Definition Classes
- SawtoothAggregator
- Annotations
- @transient()