[
https://issues.apache.org/jira/browse/BEAM-8045?focusedWorklogId=315801&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-315801
]
ASF GitHub Bot logged work on BEAM-8045:
----------------------------------------
Author: ASF GitHub Bot
Created on: 20/Sep/19 17:03
Start Date: 20/Sep/19 17:03
Worklog Time Spent: 10m
Work Description: soyrice commented on pull request #9406: [BEAM-8045]
Custom windows patterns
URL: https://github.com/apache/beam/pull/9406#discussion_r326720531
##########
File path: website/src/documentation/patterns/custom-windows.md
##########
@@ -0,0 +1,112 @@
+---
+layout: section
+title: "Custom window patterns"
+section_menu: section-menu/documentation.html
+permalink: /documentation/patterns/custom-windows/
+---
+<!--
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+# Custom window patterns
+The samples on this page demonstrate common custom window patterns. You can
create custom windows with [`WindowFn` functions]({{ site.baseurl
}}/documentation/programming-guide/#provided-windowing-functions). For more
information, see the [programming guide section on windowing]({{ site.baseurl
}}/documentation/programming-guide/#windowing).
+
+**Note**: Custom merging windows isn't supported in Python.
+
+## Using data to dynamically set session window gaps
+
+You can modify the
[`assignWindows`](https://beam.apache.org/releases/javadoc/current/index.html?org/apache/beam/sdk/transforms/windowing/SlidingWindows.html)
function to use data-driven gaps instead of fixed windows.
+
+Access the `assignWindows` function through
`WindowFn.AssignContext.element()`. The original, fixed-duration
`assignWindows` function is:
+
+```java
+{% github_sample
/apache/beam/blob/master/examples/java/src/main/java/org/apache/beam/examples/snippets/Snippets.java
tag:CustomSessionWindow1
+%}
+```
+
+### Creating data-driven gaps
+To use data-driven gaps, add the following snippets to the `assignWindows`
function:
+- A default value for when the custom gap is not present in the data
+- A way to set the attribute from the main pipeline as a method of the custom
windows
+
+For example, the following function assigns each element to a window between
the timestamp and `gapDuration`:
+
+```java
+{% github_sample
/apache/beam/blob/master/examples/java/src/main/java/org/apache/beam/examples/snippets/Snippets.java
tag:CustomSessionWindow3
+%}
+```
+
+In this function, the `withDefaultGapDuration` and `withGapAttribute` methods
are:
Review comment:
Updated/clarified. It's just the first two lines. The region tag for this
code snippet was broken but I fixed it in this PR
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
Issue Time Tracking
-------------------
Worklog Id: (was: 315801)
Time Spent: 2h (was: 1h 50m)
> Publish custom windows pattern
> ------------------------------
>
> Key: BEAM-8045
> URL: https://issues.apache.org/jira/browse/BEAM-8045
> Project: Beam
> Issue Type: Improvement
> Components: website
> Reporter: Cyrus Maden
> Assignee: Cyrus Maden
> Priority: Minor
> Time Spent: 2h
> Remaining Estimate: 0h
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)