Modified: samza/site/learn/documentation/versioned/api/javadocs/org/apache/samza/operators/windows/Windows.html URL: http://svn.apache.org/viewvc/samza/site/learn/documentation/versioned/api/javadocs/org/apache/samza/operators/windows/Windows.html?rev=1784679&r1=1784678&r2=1784679&view=diff ============================================================================== --- samza/site/learn/documentation/versioned/api/javadocs/org/apache/samza/operators/windows/Windows.html (original) +++ samza/site/learn/documentation/versioned/api/javadocs/org/apache/samza/operators/windows/Windows.html Tue Feb 28 01:45:28 2017 @@ -2,8 +2,8 @@ <!-- NewPage --> <html lang="en"> <head> -<!-- Generated by javadoc (1.8.0_74) on Mon Feb 27 17:42:11 PST 2017 --> -<title>Windows (samza-api 0.12.0 API)</title> +<!-- Generated by javadoc (1.8.0_74) on Mon Feb 27 17:44:11 PST 2017 --> +<title>Windows (samza-api 0.13.0-SNAPSHOT API)</title> <meta name="date" content="2017-02-27"> <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style"> <script type="text/javascript" src="../../../../../script.js"></script> @@ -12,7 +12,7 @@ <script type="text/javascript"><!-- try { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Windows (samza-api 0.12.0 API)"; + parent.document.title="Windows (samza-api 0.13.0-SNAPSHOT API)"; } } catch(err) { @@ -113,11 +113,11 @@ public final class <span class="typeName extends java.lang.Object</pre> <div class="block">APIs for creating different types of <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a>s. - Groups the incoming <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a>s in the <a href="../../../../../org/apache/samza/operators/MessageStream.html" title="interface in org.apache.samza.operators"><code>MessageStream</code></a> into finite windows for processing. + Groups the incoming messages in the <a href="../../../../../org/apache/samza/operators/MessageStream.html" title="interface in org.apache.samza.operators"><code>MessageStream</code></a> into finite windows for processing. <p> Each window is uniquely identified by its <a href="../../../../../org/apache/samza/operators/windows/WindowKey.html" title="class in org.apache.samza.operators.windows"><code>WindowKey</code></a>. A window can have one or more associated <a href="../../../../../org/apache/samza/operators/triggers/Trigger.html" title="interface in org.apache.samza.operators.triggers"><code>Trigger</code></a>s that determine when results from the <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> are emitted. Each emitted result contains one or more - <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a>s in the window and is called a <a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows"><code>WindowPane</code></a>. + messages in the window and is called a <a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows"><code>WindowPane</code></a>. <p> A window can have early triggers that allow emitting <a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows"><code>WindowPane</code></a>s speculatively before all data for the window has arrived or late triggers that allow handling of late data arrivals. @@ -153,14 +153,14 @@ incoming message stream ------+ <li> Session Windows: A session window groups a <a href="../../../../../org/apache/samza/operators/MessageStream.html" title="interface in org.apache.samza.operators"><code>MessageStream</code></a> into sessions. A <i>session</i> captures some period of activity over a <a href="../../../../../org/apache/samza/operators/MessageStream.html" title="interface in org.apache.samza.operators"><code>MessageStream</code></a>. - The boundary for a session is defined by a <code>sessionGap</code>. All <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a>s that that arrive within + The boundary for a session is defined by a <code>sessionGap</code>. All messages that that arrive within the gap are grouped into the same session. <li> Global Windows: A global window defines a single infinite window over the entire <a href="../../../../../org/apache/samza/operators/MessageStream.html" title="interface in org.apache.samza.operators"><code>MessageStream</code></a>. An early trigger must be specified when defining a global window. </ul> - <p> A <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> is defined as "keyed" when the incoming <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a>s are first grouped based on their key + <p> A <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> is defined as "keyed" when the incoming messages are first grouped based on their key and triggers are fired and window panes are emitted per-key. It is possible to construct "keyed" variants of all the above window types.</div> </li> @@ -182,72 +182,72 @@ incoming message stream ------+ <th class="colLast" scope="col">Method and Description</th> </tr> <tr id="i0" class="altColor"> -<td class="colFirst"><code>static <M extends <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data">MessageEnvelope</a>><br><a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,java.lang.Void,java.util.Collection<M>,<a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows">WindowPane</a><java.lang.Void,java.util.Collection<M>>></code></td> +<td class="colFirst"><code>static <M> <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,java.lang.Void,java.util.Collection<M>></code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/samza/operators/windows/Windows.html#globalWindow--">globalWindow</a></span>()</code> -<div class="block">Creates a <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a>s into a single global window.</div> +<div class="block">Creates a <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming messages into a single global window.</div> </td> </tr> <tr id="i1" class="rowColor"> -<td class="colFirst"><code>static <M extends <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data">MessageEnvelope</a>,WV><br><a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,java.lang.Void,WV,<a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows">WindowPane</a><java.lang.Void,WV>></code></td> +<td class="colFirst"><code>static <M,WV> <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,java.lang.Void,WV></code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/samza/operators/windows/Windows.html#globalWindow-java.util.function.BiFunction-">globalWindow</a></span>(java.util.function.BiFunction<M,WV,WV> foldFn)</code> -<div class="block">Creates a <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a>s into a single global window.</div> +<div class="block">Creates a <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming messages into a single global window.</div> </td> </tr> <tr id="i2" class="altColor"> -<td class="colFirst"><code>static <M extends <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data">MessageEnvelope</a>,K><br><a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,K,java.util.Collection<M>,<a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows">WindowPane</a><K,java.util.Collection<M>>></code></td> +<td class="colFirst"><code>static <M,K> <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,K,java.util.Collection<M>></code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/samza/operators/windows/Windows.html#keyedGlobalWindow-java.util.function.Function-">keyedGlobalWindow</a></span>(java.util.function.Function<M,K> keyFn)</code> -<div class="block">Returns a global <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a>s using the provided keyFn.</div> +<div class="block">Returns a global <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming messages using the provided keyFn.</div> </td> </tr> <tr id="i3" class="rowColor"> -<td class="colFirst"><code>static <M extends <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data">MessageEnvelope</a>,K,WV><br><a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,K,WV,<a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows">WindowPane</a><K,WV>></code></td> +<td class="colFirst"><code>static <M,K,WV> <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,K,WV></code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/samza/operators/windows/Windows.html#keyedGlobalWindow-java.util.function.Function-java.util.function.BiFunction-">keyedGlobalWindow</a></span>(java.util.function.Function<M,K> keyFn, java.util.function.BiFunction<M,WV,WV> foldFn)</code> -<div class="block">Returns a global <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a>s using the provided keyFn.</div> +<div class="block">Returns a global <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming messages using the provided keyFn.</div> </td> </tr> <tr id="i4" class="altColor"> -<td class="colFirst"><code>static <M extends <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data">MessageEnvelope</a>,K><br><a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,K,java.util.Collection<M>,<a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows">WindowPane</a><K,java.util.Collection<M>>></code></td> +<td class="colFirst"><code>static <M,K> <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,K,java.util.Collection<M>></code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/samza/operators/windows/Windows.html#keyedSessionWindow-java.util.function.Function-java.time.Duration-">keyedSessionWindow</a></span>(java.util.function.Function<M,K> keyFn, java.time.Duration sessionGap)</code> -<div class="block">Creates a <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a>s into sessions per-key based on the provided <code>sessionGap</code>.</div> +<div class="block">Creates a <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming messages into sessions per-key based on the provided <code>sessionGap</code>.</div> </td> </tr> <tr id="i5" class="rowColor"> -<td class="colFirst"><code>static <M extends <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data">MessageEnvelope</a>,K,WV><br><a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,K,WV,<a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows">WindowPane</a><K,WV>></code></td> +<td class="colFirst"><code>static <M,K,WV> <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,K,WV></code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/samza/operators/windows/Windows.html#keyedSessionWindow-java.util.function.Function-java.time.Duration-java.util.function.BiFunction-">keyedSessionWindow</a></span>(java.util.function.Function<M,K> keyFn, java.time.Duration sessionGap, java.util.function.BiFunction<M,WV,WV> foldFn)</code> -<div class="block">Creates a <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a>s into sessions per-key based on the provided <code>sessionGap</code> +<div class="block">Creates a <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming messages into sessions per-key based on the provided <code>sessionGap</code> and applies the provided fold function to them.</div> </td> </tr> <tr id="i6" class="altColor"> -<td class="colFirst"><code>static <M extends <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data">MessageEnvelope</a>,K><br><a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,K,java.util.Collection<M>,<a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows">WindowPane</a><K,java.util.Collection<M>>></code></td> +<td class="colFirst"><code>static <M,K> <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,K,java.util.Collection<M>></code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/samza/operators/windows/Windows.html#keyedTumblingWindow-java.util.function.Function-java.time.Duration-">keyedTumblingWindow</a></span>(java.util.function.Function<M,K> keyFn, java.time.Duration interval)</code> -<div class="block">Creates a <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a>s into fixed-size, non-overlapping +<div class="block">Creates a <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming messages into fixed-size, non-overlapping processing time based windows using the provided keyFn.</div> </td> </tr> <tr id="i7" class="rowColor"> -<td class="colFirst"><code>static <M extends <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data">MessageEnvelope</a>,K,WV><br><a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,K,WV,<a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows">WindowPane</a><K,WV>></code></td> +<td class="colFirst"><code>static <M,K,WV> <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,K,WV></code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/samza/operators/windows/Windows.html#keyedTumblingWindow-java.util.function.Function-java.time.Duration-java.util.function.BiFunction-">keyedTumblingWindow</a></span>(java.util.function.Function<M,K> keyFn, java.time.Duration interval, java.util.function.BiFunction<M,WV,WV> foldFn)</code> -<div class="block">Creates a <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a>s into fixed-size, non-overlapping processing +<div class="block">Creates a <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming messages into fixed-size, non-overlapping processing time based windows based on the provided keyFn and applies the provided fold function to them.</div> </td> </tr> <tr id="i8" class="altColor"> -<td class="colFirst"><code>static <M extends <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data">MessageEnvelope</a>><br><a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,java.lang.Void,java.util.Collection<M>,<a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows">WindowPane</a><java.lang.Void,java.util.Collection<M>>></code></td> +<td class="colFirst"><code>static <M> <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,java.lang.Void,java.util.Collection<M>></code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/samza/operators/windows/Windows.html#tumblingWindow-java.time.Duration-">tumblingWindow</a></span>(java.time.Duration duration)</code> -<div class="block">Creates a <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a>s into fixed-size, non-overlapping +<div class="block">Creates a <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming messages into fixed-size, non-overlapping processing time based windows.</div> </td> </tr> <tr id="i9" class="rowColor"> -<td class="colFirst"><code>static <M extends <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data">MessageEnvelope</a>,WV><br><a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,java.lang.Void,WV,<a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows">WindowPane</a><java.lang.Void,WV>></code></td> +<td class="colFirst"><code>static <M,WV> <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,java.lang.Void,WV></code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/samza/operators/windows/Windows.html#tumblingWindow-java.time.Duration-java.util.function.BiFunction-">tumblingWindow</a></span>(java.time.Duration duration, java.util.function.BiFunction<M,WV,WV> foldFn)</code> <div class="block">Creates a <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that windows values into fixed-size processing time based windows and aggregates @@ -282,10 +282,10 @@ incoming message stream ------+ <ul class="blockList"> <li class="blockList"> <h4>keyedTumblingWindow</h4> -<pre>public static <M extends <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data">MessageEnvelope</a>,K,WV> <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,K,WV,<a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows">WindowPane</a><K,WV>> keyedTumblingWindow(java.util.function.Function<M,K> keyFn, - java.time.Duration interval, - java.util.function.BiFunction<M,WV,WV> foldFn)</pre> -<div class="block">Creates a <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a>s into fixed-size, non-overlapping processing +<pre>public static <M,K,WV> <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,K,WV> keyedTumblingWindow(java.util.function.Function<M,K> keyFn, + java.time.Duration interval, + java.util.function.BiFunction<M,WV,WV> foldFn)</pre> +<div class="block">Creates a <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming messages into fixed-size, non-overlapping processing time based windows based on the provided keyFn and applies the provided fold function to them. <p>The below example computes the maximum value per-key over fixed size 10 second windows. @@ -294,19 +294,19 @@ incoming message stream ------+ MessageStream<UserClick> stream = ...; Function<UserClick, String> keyFn = ...; BiFunction<UserClick, Integer, Integer> maxAggregator = (m, c)-> Math.max(parseInt(m), c); - MessageStream<WindowOutput<WindowKey<String>, Integer>> windowedStream = stream.window( - Windows.keyedTumblingWindow(keyFn, Duration.ofSeconds(10), maxAggregator)); + MessageStream<WindowPane<String, Integer>> windowedStream = stream.window( + Windows.keyedTumblingWindow(keyFn, Duration.ofSeconds(10), maxAggregator)); </code> </pre></div> <dl> <dt><span class="paramLabel">Type Parameters:</span></dt> -<dd><code>M</code> - the type of the input <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a></dd> +<dd><code>M</code> - the type of the input message</dd> <dd><code>WV</code> - the type of the <a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows"><code>WindowPane</code></a> output value</dd> <dd><code>K</code> - the type of the key in the <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a></dd> <dt><span class="paramLabel">Parameters:</span></dt> -<dd><code>keyFn</code> - the function to extract the window key from a <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a></dd> +<dd><code>keyFn</code> - the function to extract the window key from a message</dd> <dd><code>interval</code> - the duration in processing time</dd> -<dd><code>foldFn</code> - the function to aggregate <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a>s in the <a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows"><code>WindowPane</code></a></dd> +<dd><code>foldFn</code> - the function to aggregate messages in the <a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows"><code>WindowPane</code></a></dd> <dt><span class="returnLabel">Returns:</span></dt> <dd>the created <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> function.</dd> </dl> @@ -318,9 +318,9 @@ incoming message stream ------+ <ul class="blockList"> <li class="blockList"> <h4>keyedTumblingWindow</h4> -<pre>public static <M extends <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data">MessageEnvelope</a>,K> <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,K,java.util.Collection<M>,<a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows">WindowPane</a><K,java.util.Collection<M>>> keyedTumblingWindow(java.util.function.Function<M,K> keyFn, - java.time.Duration interval)</pre> -<div class="block">Creates a <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a>s into fixed-size, non-overlapping +<pre>public static <M,K> <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,K,java.util.Collection<M>> keyedTumblingWindow(java.util.function.Function<M,K> keyFn, + java.time.Duration interval)</pre> +<div class="block">Creates a <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming messages into fixed-size, non-overlapping processing time based windows using the provided keyFn. <p>The below example groups the stream into fixed-size 10 second windows for each key. @@ -328,16 +328,16 @@ incoming message stream ------+ <pre> <code> MessageStream<UserClick> stream = ...; Function<UserClick, String> keyFn = ...; - MessageStream<WindowOutput<WindowKey<String>, Collection<UserClick>>> windowedStream = stream.window( - Windows.keyedTumblingWindow(keyFn, Duration.ofSeconds(10))); + MessageStream<WindowPane<String, Collection<UserClick>>> windowedStream = stream.window( + Windows.keyedTumblingWindow(keyFn, Duration.ofSeconds(10))); </code> </pre></div> <dl> <dt><span class="paramLabel">Type Parameters:</span></dt> -<dd><code>M</code> - the type of the input <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a></dd> +<dd><code>M</code> - the type of the input message</dd> <dd><code>K</code> - the type of the key in the <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a></dd> <dt><span class="paramLabel">Parameters:</span></dt> -<dd><code>keyFn</code> - function to extract key from the <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a></dd> +<dd><code>keyFn</code> - function to extract key from the message</dd> <dd><code>interval</code> - the duration in processing time</dd> <dt><span class="returnLabel">Returns:</span></dt> <dd>the created <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> function</dd> @@ -350,8 +350,8 @@ incoming message stream ------+ <ul class="blockList"> <li class="blockList"> <h4>tumblingWindow</h4> -<pre>public static <M extends <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data">MessageEnvelope</a>,WV> <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,java.lang.Void,WV,<a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows">WindowPane</a><java.lang.Void,WV>> tumblingWindow(java.time.Duration duration, - java.util.function.BiFunction<M,WV,WV> foldFn)</pre> +<pre>public static <M,WV> <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,java.lang.Void,WV> tumblingWindow(java.time.Duration duration, + java.util.function.BiFunction<M,WV,WV> foldFn)</pre> <div class="block">Creates a <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that windows values into fixed-size processing time based windows and aggregates them applying the provided function. @@ -360,17 +360,17 @@ incoming message stream ------+ <pre> <code> MessageStream<String> stream = ...; BiFunction<String, Integer, Integer> maxAggregator = (m, c)-> Math.max(parseInt(m), c); - MessageStream<WindowOutput<WindowKey, Integer>> windowedStream = stream.window( - Windows.tumblingWindow(Duration.ofSeconds(10), maxAggregator)); + MessageStream<WindowPane<Void, Integer>> windowedStream = stream.window( + Windows.tumblingWindow(Duration.ofSeconds(10), maxAggregator)); </code> </pre></div> <dl> <dt><span class="paramLabel">Type Parameters:</span></dt> -<dd><code>M</code> - the type of the input <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a></dd> +<dd><code>M</code> - the type of the input message</dd> <dd><code>WV</code> - the type of the <a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows"><code>WindowPane</code></a> output value</dd> <dt><span class="paramLabel">Parameters:</span></dt> <dd><code>duration</code> - the duration in processing time</dd> -<dd><code>foldFn</code> - to aggregate <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a>s in the <a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows"><code>WindowPane</code></a></dd> +<dd><code>foldFn</code> - to aggregate messages in the <a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows"><code>WindowPane</code></a></dd> <dt><span class="returnLabel">Returns:</span></dt> <dd>the created <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> function</dd> </dl> @@ -382,8 +382,8 @@ incoming message stream ------+ <ul class="blockList"> <li class="blockList"> <h4>tumblingWindow</h4> -<pre>public static <M extends <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data">MessageEnvelope</a>> <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,java.lang.Void,java.util.Collection<M>,<a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows">WindowPane</a><java.lang.Void,java.util.Collection<M>>> tumblingWindow(java.time.Duration duration)</pre> -<div class="block">Creates a <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a>s into fixed-size, non-overlapping +<pre>public static <M> <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,java.lang.Void,java.util.Collection<M>> tumblingWindow(java.time.Duration duration)</pre> +<div class="block">Creates a <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming messages into fixed-size, non-overlapping processing time based windows. <p>The below example groups the stream into fixed-size 10 second windows and computes a windowed-percentile. @@ -392,13 +392,13 @@ incoming message stream ------+ MessageStream<Long> stream = ...; Function<Collection<Long, Long>> percentile99 = .. - MessageStream<WindowOutput<WindowKey, Collection<Long>>> windowedStream = integerStream.window(Windows.tumblingWindow(Duration.ofSeconds(10))); + MessageStream<WindowPane<Void, Collection<Long>>> windowedStream = integerStream.window(Windows.tumblingWindow(Duration.ofSeconds(10))); MessageStream<Long> windowedPercentiles = windowed.map(windowedOutput -> percentile99(windowedOutput.getMessage()); </code> </pre></div> <dl> <dt><span class="paramLabel">Type Parameters:</span></dt> -<dd><code>M</code> - the type of the input <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a></dd> +<dd><code>M</code> - the type of the input message</dd> <dt><span class="paramLabel">Parameters:</span></dt> <dd><code>duration</code> - the duration in processing time</dd> <dt><span class="returnLabel">Returns:</span></dt> @@ -412,14 +412,14 @@ incoming message stream ------+ <ul class="blockList"> <li class="blockList"> <h4>keyedSessionWindow</h4> -<pre>public static <M extends <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data">MessageEnvelope</a>,K,WV> <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,K,WV,<a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows">WindowPane</a><K,WV>> keyedSessionWindow(java.util.function.Function<M,K> keyFn, - java.time.Duration sessionGap, - java.util.function.BiFunction<M,WV,WV> foldFn)</pre> -<div class="block">Creates a <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a>s into sessions per-key based on the provided <code>sessionGap</code> +<pre>public static <M,K,WV> <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,K,WV> keyedSessionWindow(java.util.function.Function<M,K> keyFn, + java.time.Duration sessionGap, + java.util.function.BiFunction<M,WV,WV> foldFn)</pre> +<div class="block">Creates a <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming messages into sessions per-key based on the provided <code>sessionGap</code> and applies the provided fold function to them. <p>A <i>session</i> captures some period of activity over a <a href="../../../../../org/apache/samza/operators/MessageStream.html" title="interface in org.apache.samza.operators"><code>MessageStream</code></a>. - A session is considered complete when no new messages arrive within the <code>sessionGap</code>. All <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a>s that arrive within + A session is considered complete when no new messages arrive within the <code>sessionGap</code>. All messages that arrive within the gap are grouped into the same session. <p>The below example computes the maximum value per-key over a session window of gap 10 seconds. @@ -428,19 +428,19 @@ incoming message stream ------+ MessageStream<UserClick> stream = ...; BiFunction<UserClick, Integer, Integer> maxAggregator = (m, c)-> Math.max(parseInt(m), c); Function<UserClick, String> userIdExtractor = m -> m.getUserId()..; - MessageStream<WindowOutput<WindowKey<String>, Integer>> windowedStream = stream.window( - Windows.keyedSessionWindow(userIdExtractor, Duration.minute(1), maxAggregator)); + MessageStream<WindowPane<String, Integer>> windowedStream = stream.window( + Windows.keyedSessionWindow(userIdExtractor, Duration.minute(1), maxAggregator)); </code> </pre></div> <dl> <dt><span class="paramLabel">Type Parameters:</span></dt> -<dd><code>M</code> - the type of the input <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a></dd> +<dd><code>M</code> - the type of the input message</dd> <dd><code>K</code> - the type of the key in the <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a></dd> <dd><code>WV</code> - the type of the output value in the <a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows"><code>WindowPane</code></a></dd> <dt><span class="paramLabel">Parameters:</span></dt> -<dd><code>keyFn</code> - the function to extract the window key from a <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a></dd> +<dd><code>keyFn</code> - the function to extract the window key from a message</dd> <dd><code>sessionGap</code> - the timeout gap for defining the session</dd> -<dd><code>foldFn</code> - the function to aggregate <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a>s in the <a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows"><code>WindowPane</code></a></dd> +<dd><code>foldFn</code> - the function to aggregate messages in the <a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows"><code>WindowPane</code></a></dd> <dt><span class="returnLabel">Returns:</span></dt> <dd>the created <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> function</dd> </dl> @@ -452,12 +452,12 @@ incoming message stream ------+ <ul class="blockList"> <li class="blockList"> <h4>keyedSessionWindow</h4> -<pre>public static <M extends <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data">MessageEnvelope</a>,K> <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,K,java.util.Collection<M>,<a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows">WindowPane</a><K,java.util.Collection<M>>> keyedSessionWindow(java.util.function.Function<M,K> keyFn, - java.time.Duration sessionGap)</pre> -<div class="block">Creates a <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a>s into sessions per-key based on the provided <code>sessionGap</code>. +<pre>public static <M,K> <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,K,java.util.Collection<M>> keyedSessionWindow(java.util.function.Function<M,K> keyFn, + java.time.Duration sessionGap)</pre> +<div class="block">Creates a <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming messages into sessions per-key based on the provided <code>sessionGap</code>. <p>A <i>session</i> captures some period of activity over a <a href="../../../../../org/apache/samza/operators/MessageStream.html" title="interface in org.apache.samza.operators"><code>MessageStream</code></a>. The - boundary for the session is defined by a <code>sessionGap</code>. All <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a>s that that arrive within + boundary for the session is defined by a <code>sessionGap</code>. All messages that that arrive within the gap are grouped into the same session. <p>The below example groups the stream into per-key session windows of gap 10 seconds. @@ -466,16 +466,16 @@ incoming message stream ------+ MessageStream<UserClick> stream = ...; BiFunction<UserClick, Integer, Integer> maxAggregator = (m, c)-> Math.max(parseIntField(m), c); Function<UserClick, String> userIdExtractor = m -> m.getUserId()..; - MessageStream<WindowOutput<WindowKey<String>, Collection<M>>> windowedStream = stream.window( - Windows.keyedSessionWindow(userIdExtractor, Duration.ofSeconds(10))); + MessageStream<WindowPane<String>, Collection<M>> windowedStream = stream.window( + Windows.keyedSessionWindow(userIdExtractor, Duration.ofSeconds(10))); </code> </pre></div> <dl> <dt><span class="paramLabel">Type Parameters:</span></dt> -<dd><code>M</code> - the type of the input <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a></dd> +<dd><code>M</code> - the type of the input message</dd> <dd><code>K</code> - the type of the key in the <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a></dd> <dt><span class="paramLabel">Parameters:</span></dt> -<dd><code>keyFn</code> - the function to extract the window key from a <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a></dd> +<dd><code>keyFn</code> - the function to extract the window key from a message}</dd> <dd><code>sessionGap</code> - the timeout gap for defining the session</dd> <dt><span class="returnLabel">Returns:</span></dt> <dd>the created <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> function</dd> @@ -488,8 +488,8 @@ incoming message stream ------+ <ul class="blockList"> <li class="blockList"> <h4>globalWindow</h4> -<pre>public static <M extends <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data">MessageEnvelope</a>,WV> <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,java.lang.Void,WV,<a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows">WindowPane</a><java.lang.Void,WV>> globalWindow(java.util.function.BiFunction<M,WV,WV> foldFn)</pre> -<div class="block">Creates a <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a>s into a single global window. This window does not have a +<pre>public static <M,WV> <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,java.lang.Void,WV> globalWindow(java.util.function.BiFunction<M,WV,WV> foldFn)</pre> +<div class="block">Creates a <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming messages into a single global window. This window does not have a default trigger. The triggering behavior must be specified by setting an early trigger. <p>The below example computes the maximum value over a count based window. The window emits <a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows"><code>WindowPane</code></a>s when @@ -498,16 +498,16 @@ incoming message stream ------+ <pre> <code> MessageStream<Long> stream = ...; BiFunction<Long, Long, Long> maxAggregator = (m, c)-> Math.max(m, c); - MessageStream<WindowOutput<WindowKey, Long>> windowedStream = stream.window(Windows.globalWindow(maxAggregator) + MessageStream<WindowPane<Void, Long>> windowedStream = stream.window(Windows.globalWindow(maxAggregator) .setEarlyTriggers(Triggers.repeat(Triggers.any(Triggers.count(50), Triggers.timeSinceFirstMessage(Duration.ofSeconds(10)))))) </code> </pre></div> <dl> <dt><span class="paramLabel">Type Parameters:</span></dt> -<dd><code>M</code> - the type of <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a></dd> +<dd><code>M</code> - the type of message</dd> <dd><code>WV</code> - type of the output value in the <a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows"><code>WindowPane</code></a></dd> <dt><span class="paramLabel">Parameters:</span></dt> -<dd><code>foldFn</code> - the function to aggregate <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a>s in the <a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows"><code>WindowPane</code></a></dd> +<dd><code>foldFn</code> - the function to aggregate messages in the <a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows"><code>WindowPane</code></a></dd> <dt><span class="returnLabel">Returns:</span></dt> <dd>the created <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> function.</dd> </dl> @@ -519,20 +519,20 @@ incoming message stream ------+ <ul class="blockList"> <li class="blockList"> <h4>globalWindow</h4> -<pre>public static <M extends <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data">MessageEnvelope</a>> <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,java.lang.Void,java.util.Collection<M>,<a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows">WindowPane</a><java.lang.Void,java.util.Collection<M>>> globalWindow()</pre> -<div class="block">Creates a <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a>s into a single global window. This window does not have a +<pre>public static <M> <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,java.lang.Void,java.util.Collection<M>> globalWindow()</pre> +<div class="block">Creates a <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming messages into a single global window. This window does not have a default trigger. The triggering behavior must be specified by setting an early trigger. The below example groups the stream into count based windows that trigger every 50 messages or every 10 minutes. <pre> <code> MessageStream<Long> stream = ...; - MessageStream<WindowOutput<WindowKey, Collection<Long>>> windowedStream = stream.window(Windows.globalWindow() + MessageStream<WindowPane<Void, Collection<Long>> windowedStream = stream.window(Windows.globalWindow() .setEarlyTrigger(Triggers.repeat(Triggers.any(Triggers.count(50), Triggers.timeSinceFirstMessage(Duration.ofSeconds(10)))))) </code> </pre></div> <dl> <dt><span class="paramLabel">Type Parameters:</span></dt> -<dd><code>M</code> - the type of <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a></dd> +<dd><code>M</code> - the type of message</dd> <dt><span class="returnLabel">Returns:</span></dt> <dd>the created <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> function.</dd> </dl> @@ -544,9 +544,9 @@ incoming message stream ------+ <ul class="blockList"> <li class="blockList"> <h4>keyedGlobalWindow</h4> -<pre>public static <M extends <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data">MessageEnvelope</a>,K,WV> <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,K,WV,<a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows">WindowPane</a><K,WV>> keyedGlobalWindow(java.util.function.Function<M,K> keyFn, - java.util.function.BiFunction<M,WV,WV> foldFn)</pre> -<div class="block">Returns a global <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a>s using the provided keyFn. +<pre>public static <M,K,WV> <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,K,WV> keyedGlobalWindow(java.util.function.Function<M,K> keyFn, + java.util.function.BiFunction<M,WV,WV> foldFn)</pre> +<div class="block">Returns a global <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming messages using the provided keyFn. The window does not have a default trigger. The triggering behavior must be specified by setting an early trigger. @@ -557,18 +557,18 @@ incoming message stream ------+ MessageStream<UserClick> stream = ...; BiFunction<UserClick, Long, Long> maxAggregator = (m, c)-> Math.max(parseLongField(m), c); Function<UserClick, String> keyFn = ...; - MessageStream<WindowOutput<WindowKey<String>, Long>> windowedStream = stream.window(Windows.keyedGlobalWindow(keyFn, maxAggregator) + MessageStream<WindowPane<String, Long>> windowedStream = stream.window(Windows.keyedGlobalWindow(keyFn, maxAggregator) .setEarlyTrigger(Triggers.repeat(Triggers.any(Triggers.count(50), Triggers.timeSinceFirstMessage(Duration.minutes(10)))))) </code> </pre></div> <dl> <dt><span class="paramLabel">Type Parameters:</span></dt> -<dd><code>M</code> - the type of <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a></dd> +<dd><code>M</code> - the type of message</dd> <dd><code>K</code> - type of the key in the <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a></dd> <dd><code>WV</code> - the type of the output value in the <a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows"><code>WindowPane</code></a></dd> <dt><span class="paramLabel">Parameters:</span></dt> -<dd><code>keyFn</code> - the function to extract the window key from a <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a></dd> -<dd><code>foldFn</code> - the function to aggregate <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a>s in the <a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows"><code>WindowPane</code></a></dd> +<dd><code>keyFn</code> - the function to extract the window key from a message</dd> +<dd><code>foldFn</code> - the function to aggregate messages in the <a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows"><code>WindowPane</code></a></dd> <dt><span class="returnLabel">Returns:</span></dt> <dd>the created <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> function</dd> </dl> @@ -580,8 +580,8 @@ incoming message stream ------+ <ul class="blockListLast"> <li class="blockList"> <h4>keyedGlobalWindow</h4> -<pre>public static <M extends <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data">MessageEnvelope</a>,K> <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,K,java.util.Collection<M>,<a href="../../../../../org/apache/samza/operators/windows/WindowPane.html" title="class in org.apache.samza.operators.windows">WindowPane</a><K,java.util.Collection<M>>> keyedGlobalWindow(java.util.function.Function<M,K> keyFn)</pre> -<div class="block">Returns a global <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a>s using the provided keyFn. +<pre>public static <M,K> <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows">Window</a><M,K,java.util.Collection<M>> keyedGlobalWindow(java.util.function.Function<M,K> keyFn)</pre> +<div class="block">Returns a global <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> that groups incoming messages using the provided keyFn. The window does not have a default trigger. The triggering behavior must be specified by setting an early trigger. <p> The below example groups the stream per-key into count based windows. The window triggers every 50 messages or @@ -590,16 +590,16 @@ incoming message stream ------+ <pre> <code> MessageStream<UserClick> stream = ...; Function<UserClick, String> keyFn = ...; - MessageStream<WindowOutput<WindowKey<String>, Collection<UserClick>>> windowedStream = stream.window(Windows.keyedGlobalWindow(keyFn) + MessageStream<WindowPane<String, Collection<UserClick>> windowedStream = stream.window(Windows.keyedGlobalWindow(keyFn) .setEarlyTrigger(Triggers.repeat(Triggers.any(Triggers.count(50), Triggers.timeSinceFirstMessage(Duration.minutes(10)))))) </code> </pre></div> <dl> <dt><span class="paramLabel">Type Parameters:</span></dt> -<dd><code>M</code> - the type of <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a></dd> +<dd><code>M</code> - the type of message</dd> <dd><code>K</code> - the type of the key in the <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a></dd> <dt><span class="paramLabel">Parameters:</span></dt> -<dd><code>keyFn</code> - the function to extract the window key from a <a href="../../../../../org/apache/samza/operators/data/MessageEnvelope.html" title="interface in org.apache.samza.operators.data"><code>MessageEnvelope</code></a></dd> +<dd><code>keyFn</code> - the function to extract the window key from a message</dd> <dt><span class="returnLabel">Returns:</span></dt> <dd>the created <a href="../../../../../org/apache/samza/operators/windows/Window.html" title="interface in org.apache.samza.operators.windows"><code>Window</code></a> function</dd> </dl>