MINOR: update Streams upgrade guide for 3.1 release (#12926)

Reviewers: John Roesler <john@confluent.io>, Bill Bejeck <bill@confluent.io>
This commit is contained in:
Matthias J. Sax 2022-12-14 11:32:14 -08:00
parent 9b23d9305d
commit de088a2e97
1 changed files with 36 additions and 0 deletions

View File

@ -105,6 +105,42 @@
More details about the new config <code>StreamsConfig#TOPOLOGY_OPTIMIZATION</code> can be found in <a href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-295%3A+Add+Streams+Configuration+Allowing+for+Optional+Topology+Optimization">KIP-295</a>.
</p>
<h3><a id="streams_api_changes_310" href="#streams_api_changes_310">Streams API changes in 3.1.0</a></h3>
<p>
The semantics of left/outer stream-stream join got improved via
<a href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-633%3A+Deprecate+24-hour+Default+Grace+Period+for+Windowed+Operations+in+Streams">KIP-633</a>.
Previously, left-/outer stream-stream join might have emitted so-call spurious left/outer results, due to an eager-emit strategy.
The implementation was changed to emit left/outer join result records only after the join window is closed.
The old API to specify the join window, i.e., <code>JoinWindows.of()</code> that enables the eager-emit strategy,
was deprecated in favor of a <code>JoinWindows.ofTimeDifferenceAndGrace()</code> and <code>JoinWindows.ofTimeDifferencWithNoGrace()</code>.
The new semantics are only enabled if you use the new join window builders.<br />
Additionally, KIP-633 makes setting a grace period also mandatory for windowed aggregations, i.e., for
<code>TimeWindows</code> (hopping/tumbling), <code>SessionWindows</code>, and <code>SlidingWindows</code>.
The corresponding builder methods <code>.of(...)</code> were deprecated in favor of the new
<code>.ofTimeDifferenceAndGrace()</code> and <code>.ofTimeDifferencWithNoGrace()</code> methods.
</p>
<p>
<a href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-761%3A+Add+Total+Blocked+Time+Metric+to+Streams">KIP-761</a>
adds new metrics that allow to track blocking times on the underlying consumer and producer clients.
Check out the section on <a href="/documentation/#kafka_streams_monitoring">Kafka Streams metrics</a> for more details.
</p>
<p>
<a href="/documentation/streams/developer-guide/interactive-queries.html">Interactive Queries</a> were improved via
<a href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-763%3A+Range+queries+with+open+endpoints">KIP-763</a>
<a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=186876596">KIP-766</a>.
Range queries now accept <code>null</code> as lower/upper key-range bound to indicate an open-ended lower/upper bound.
</p>
<p>
Foreign-key table-table joins now support custom partitioners via
<a href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-775%3A+Custom+partitioners+in+foreign+key+joins">KIP-775</a>.
Previously, if an input table was partitioned by a non-default partitioner, joining records might fail.
With KIP-775 you now can pass a custom <code>StreamPartitioner</code> into the join using the newly added
<code>TableJoined</code> object.
</p>
<h3><a id="streams_api_changes_300" href="#streams_api_changes_300">Streams API changes in 3.0.0</a></h3>
<p>
We improved the semantics of