[ 
https://issues.apache.org/jira/browse/BEAM-2953?focusedWorklogId=150818&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-150818
 ]

ASF GitHub Bot logged work on BEAM-2953:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 03/Oct/18 16:29
            Start Date: 03/Oct/18 16:29
    Worklog Time Spent: 10m 
      Work Description: akedin commented on a change in pull request #6540: 
[BEAM-2953] Advanced Timeseries examples.
URL: https://github.com/apache/beam/pull/6540#discussion_r222141398
 
 

 ##########
 File path: 
examples/java/src/main/java/org/apache/beam/examples/timeseries/Configuration/TSConfiguration.java
 ##########
 @@ -0,0 +1,94 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+package org.apache.beam.examples.timeseries.configuration;
+
+import com.google.auto.value.AutoValue;
+import java.io.Serializable;
+import javax.annotation.Nullable;
+import org.apache.beam.sdk.annotations.Experimental;
+import org.apache.beam.sdk.coders.AvroCoder;
+import org.apache.beam.sdk.coders.DefaultCoder;
+import org.joda.time.Duration;
+
+/** configuration options for the timeseries pipeline. */
+@SuppressWarnings("serial")
+@Experimental
+public class TSConfiguration implements Serializable{
+
+  /**
+   * Used to determine the backfill operation type. NONE : Do not backfill 
NULL : Do not set a value
+   * LAST_KNOWN_VALUE : Use the last known value
+   */
+  public enum BFillOptions {
+    NONE,
+    NULL,
+    LAST_KNOWN_VALUE
+  }
+
+  private  BFillOptions fillOption = BFillOptions.LAST_KNOWN_VALUE;
+
+  // The down sample period which must be set.
+  private  Duration downSampleDuration = Duration.standardSeconds(1);
+
+  // Once a key is observed we will generate a value during periods when the 
key has not been observed if the
+  // fillOption is set to anything other than NONE.
+  private Duration timeToLive = Duration.ZERO;
+
+  // Set if this is a streaming pipeline.
+  private boolean isStreaming = false;
+
+  public  BFillOptions fillOption() {return  fillOption;};
+
+  // The down sample period which must be set.
+  public  Duration downSampleDuration() { return downSampleDuration;};
+
+  // Once a key is observed we will generate a value during periods when the 
key has not been observed if the
+  // fillOption is set to anything other than NONE.
+  public Duration timeToLive() {return timeToLive;};
+
+  // Set if this is a streaming pipeline.
+  public boolean isStreaming() {return this.isStreaming;};
+
+  public static TSConfiguration builder(){
 
 Review comment:
   We usually use `@AutoValue` and `@AutoValue.Builder` for these cases

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on 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: 150818)
    Time Spent: 2h 10m  (was: 2h)

> Create more advanced Timeseries processing examples using state API
> -------------------------------------------------------------------
>
>                 Key: BEAM-2953
>                 URL: https://issues.apache.org/jira/browse/BEAM-2953
>             Project: Beam
>          Issue Type: Improvement
>          Components: examples-java
>    Affects Versions: 2.1.0
>            Reporter: Reza ardeshir rokni
>            Assignee: Reuven Lax
>            Priority: Minor
>          Time Spent: 2h 10m
>  Remaining Estimate: 0h
>
> As described in the phase 1 portion of this solution outline:
> https://cloud.google.com/solutions/correlating-time-series-dataflow
> BEAM can be used to build out some very interesting pre-processing stages for 
> time series data. Some examples that will be useful:
> - Downsampling time series based on simple AVG, MIN, MAX
> - Creating a value for each time window using generatesequence as a seed 
> - Loading the value of a downsample with the previous value (used in FX with 
> previous close being brought into current open value) 
> This will show some concrete examples of keyed state as well as the use of 
> combiners. 
> The samples can also be used to show how you can create a ordered list of 
> values per key from a unbounded topic which has multiple time series keys. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to