pub struct WindowedAggregate {
pub key_field: String,
pub win: WindowKind,
pub agg: AggKind,
/* private fields */
}Expand description
A stateful windowed aggregation operator supporting different windows & aggregations. A stateful windowed aggregation operator supporting different windows & aggregations.
Examples
use pulse_ops::WindowedAggregate;
// Tumbling count of words per 60s window
let op = WindowedAggregate::tumbling_count("word", 60_000);Fields§
§key_field: String§win: WindowKind§agg: AggKindImplementations§
Source§impl WindowedAggregate
impl WindowedAggregate
pub fn tumbling_count(key_field: impl Into<String>, size_ms: i64) -> Self
pub fn tumbling_sum( key_field: impl Into<String>, size_ms: i64, field: impl Into<String>, ) -> Self
pub fn tumbling_avg( key_field: impl Into<String>, size_ms: i64, field: impl Into<String>, ) -> Self
pub fn tumbling_distinct( key_field: impl Into<String>, size_ms: i64, field: impl Into<String>, ) -> Self
pub fn sliding_count( key_field: impl Into<String>, size_ms: i64, slide_ms: i64, ) -> Self
pub fn sliding_sum( key_field: impl Into<String>, size_ms: i64, slide_ms: i64, field: impl Into<String>, ) -> Self
pub fn sliding_avg( key_field: impl Into<String>, size_ms: i64, slide_ms: i64, field: impl Into<String>, ) -> Self
pub fn sliding_distinct( key_field: impl Into<String>, size_ms: i64, slide_ms: i64, field: impl Into<String>, ) -> Self
pub fn session_count(key_field: impl Into<String>, gap_ms: i64) -> Self
pub fn session_sum( key_field: impl Into<String>, gap_ms: i64, field: impl Into<String>, ) -> Self
pub fn session_avg( key_field: impl Into<String>, gap_ms: i64, field: impl Into<String>, ) -> Self
pub fn session_distinct( key_field: impl Into<String>, gap_ms: i64, field: impl Into<String>, ) -> Self
pub fn with_allowed_lateness(self, ms: i64) -> Self
Trait Implementations§
Source§impl Operator for WindowedAggregate
impl Operator for WindowedAggregate
fn on_element<'life0, 'life1, 'async_trait>(
&'life0 mut self,
ctx: &'life1 mut dyn Context,
rec: Record,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn on_watermark<'life0, 'life1, 'async_trait>(
&'life0 mut self,
ctx: &'life1 mut dyn Context,
wm: Watermark,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn on_timer<'life0, 'life1, 'async_trait>(
&'life0 mut self,
ctx: &'life1 mut dyn Context,
when: EventTime,
_key: Option<Vec<u8>>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Auto Trait Implementations§
impl Freeze for WindowedAggregate
impl RefUnwindSafe for WindowedAggregate
impl Send for WindowedAggregate
impl Sync for WindowedAggregate
impl Unpin for WindowedAggregate
impl UnsafeUnpin for WindowedAggregate
impl UnwindSafe for WindowedAggregate
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more