Consumed by row aggregator after decoding.
Mutation is the general case of an Event Imagine a user impression/view stream - impressions/views are immutable events Imagine a stream of changes to a credit card transaction stream.
Mutation is the general case of an Event Imagine a user impression/view stream - impressions/views are immutable events Imagine a stream of changes to a credit card transaction stream.
The schema needs to contain a ts(milliseconds as a java Long)
For the entities case, mutation_ts when absent will use ts as a replacement
Java types corresponding to the schema types. StreamDecoder should produce mutations that comply. NOTE: everything is nullable (hence boxed) IntType java.lang.Integer LongType java.lang.Long DoubleType java.lang.Double FloatType java.lang.Float ShortType java.lang.Short BooleanType java.lang.Boolean ByteType java.lang.Byte StringType java.lang.String BinaryType Array[Byte] ListType java.util.List[Byte] MapType java.util.Map[Byte] StructType Array[Any]
Consumed by row aggregator after decoding. Mutations follow the same schema as input for value indices. However there are two main differences. * ts and reversal columns are required for computation * Mutation ts takes on the role of ts. Since the schema is the same with the sole difference of the added columns, we add these columns on the tail of the Array and extract them accordingly. i.e. for mutations: reversal index = ArrayRow.length - (Constants.MutationAvroColumns.length - (index of reversal in Constants.MutationAvroColumns)