Class FnApiStateAccessor<K>

  • All Implemented Interfaces:
    org.apache.beam.runners.core.SideInputReader, org.apache.beam.sdk.state.StateBinder

    public class FnApiStateAccessor<K>
    extends java.lang.Object
    implements org.apache.beam.runners.core.SideInputReader, org.apache.beam.sdk.state.StateBinder
    Provides access to side inputs and state via a BeamFnStateClient.
    • Constructor Summary

      Constructors 
      Constructor Description
      FnApiStateAccessor​(org.apache.beam.sdk.options.PipelineOptions pipelineOptions, java.util.Set<java.lang.String> runnerCapabilites, java.lang.String ptransformId, java.util.function.Supplier<java.lang.String> processBundleInstructionId, java.util.function.Supplier<java.util.List<org.apache.beam.model.fnexecution.v1.BeamFnApi.ProcessBundleRequest.CacheToken>> cacheTokens, java.util.function.Supplier<Cache<?,​?>> bundleCache, Cache<?,​?> processWideCache, java.util.Map<org.apache.beam.sdk.values.TupleTag<?>,​SideInputSpec> sideInputSpecMap, BeamFnStateClient beamFnStateClient, org.apache.beam.sdk.coders.Coder<K> keyCoder, org.apache.beam.sdk.coders.Coder<org.apache.beam.sdk.transforms.windowing.BoundedWindow> windowCoder)  
    • Method Summary

      All Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      <T> org.apache.beam.sdk.state.BagState<T> bindBag​(java.lang.String id, org.apache.beam.sdk.state.StateSpec<org.apache.beam.sdk.state.BagState<T>> spec, org.apache.beam.sdk.coders.Coder<T> elemCoder)  
      <ElementT,​AccumT,​ResultT>
      org.apache.beam.sdk.state.CombiningState<ElementT,​AccumT,​ResultT>
      bindCombining​(java.lang.String id, org.apache.beam.sdk.state.StateSpec<org.apache.beam.sdk.state.CombiningState<ElementT,​AccumT,​ResultT>> spec, org.apache.beam.sdk.coders.Coder<AccumT> accumCoder, org.apache.beam.sdk.transforms.Combine.CombineFn<ElementT,​AccumT,​ResultT> combineFn)  
      <ElementT,​AccumT,​ResultT>
      org.apache.beam.sdk.state.CombiningState<ElementT,​AccumT,​ResultT>
      bindCombiningWithContext​(java.lang.String id, org.apache.beam.sdk.state.StateSpec<org.apache.beam.sdk.state.CombiningState<ElementT,​AccumT,​ResultT>> spec, org.apache.beam.sdk.coders.Coder<AccumT> accumCoder, org.apache.beam.sdk.transforms.CombineWithContext.CombineFnWithContext<ElementT,​AccumT,​ResultT> combineFn)  
      <KeyT,​ValueT>
      org.apache.beam.sdk.state.MapState<KeyT,​ValueT>
      bindMap​(java.lang.String id, org.apache.beam.sdk.state.StateSpec<org.apache.beam.sdk.state.MapState<KeyT,​ValueT>> spec, org.apache.beam.sdk.coders.Coder<KeyT> mapKeyCoder, org.apache.beam.sdk.coders.Coder<ValueT> mapValueCoder)  
      <KeyT,​ValueT>
      org.apache.beam.sdk.state.MultimapState<KeyT,​ValueT>
      bindMultimap​(java.lang.String id, org.apache.beam.sdk.state.StateSpec<org.apache.beam.sdk.state.MultimapState<KeyT,​ValueT>> spec, org.apache.beam.sdk.coders.Coder<KeyT> keyCoder, org.apache.beam.sdk.coders.Coder<ValueT> valueCoder)  
      <T> org.apache.beam.sdk.state.OrderedListState<T> bindOrderedList​(java.lang.String id, org.apache.beam.sdk.state.StateSpec<org.apache.beam.sdk.state.OrderedListState<T>> spec, org.apache.beam.sdk.coders.Coder<T> elemCoder)  
      <T> org.apache.beam.sdk.state.SetState<T> bindSet​(java.lang.String id, org.apache.beam.sdk.state.StateSpec<org.apache.beam.sdk.state.SetState<T>> spec, org.apache.beam.sdk.coders.Coder<T> elemCoder)  
      <T> org.apache.beam.sdk.state.ValueState<T> bindValue​(java.lang.String id, org.apache.beam.sdk.state.StateSpec<org.apache.beam.sdk.state.ValueState<T>> spec, org.apache.beam.sdk.coders.Coder<T> coder)  
      org.apache.beam.sdk.state.WatermarkHoldState bindWatermark​(java.lang.String id, org.apache.beam.sdk.state.StateSpec<org.apache.beam.sdk.state.WatermarkHoldState> spec, org.apache.beam.sdk.transforms.windowing.TimestampCombiner timestampCombiner)
      Deprecated.
      The Fn API has no plans to implement WatermarkHoldState as of this writing and is waiting on resolution of BEAM-2535.
      <T> boolean contains​(org.apache.beam.sdk.values.PCollectionView<T> view)  
      void finalizeState()  
      <T> T get​(org.apache.beam.sdk.values.PCollectionView<T> view, org.apache.beam.sdk.transforms.windowing.BoundedWindow window)  
      boolean isEmpty()  
      void setKeyAndWindowContext​(FnApiStateAccessor.MutatingStateContext<K,​org.apache.beam.sdk.transforms.windowing.BoundedWindow> keyAndWindowContext)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • FnApiStateAccessor

        public FnApiStateAccessor​(org.apache.beam.sdk.options.PipelineOptions pipelineOptions,
                                  java.util.Set<java.lang.String> runnerCapabilites,
                                  java.lang.String ptransformId,
                                  java.util.function.Supplier<java.lang.String> processBundleInstructionId,
                                  java.util.function.Supplier<java.util.List<org.apache.beam.model.fnexecution.v1.BeamFnApi.ProcessBundleRequest.CacheToken>> cacheTokens,
                                  java.util.function.Supplier<Cache<?,​?>> bundleCache,
                                  Cache<?,​?> processWideCache,
                                  java.util.Map<org.apache.beam.sdk.values.TupleTag<?>,​SideInputSpec> sideInputSpecMap,
                                  BeamFnStateClient beamFnStateClient,
                                  org.apache.beam.sdk.coders.Coder<K> keyCoder,
                                  org.apache.beam.sdk.coders.Coder<org.apache.beam.sdk.transforms.windowing.BoundedWindow> windowCoder)
    • Method Detail

      • get

        public <T> T get​(org.apache.beam.sdk.values.PCollectionView<T> view,
                         org.apache.beam.sdk.transforms.windowing.BoundedWindow window)
        Specified by:
        get in interface org.apache.beam.runners.core.SideInputReader
      • contains

        public <T> boolean contains​(org.apache.beam.sdk.values.PCollectionView<T> view)
        Specified by:
        contains in interface org.apache.beam.runners.core.SideInputReader
      • isEmpty

        public boolean isEmpty()
        Specified by:
        isEmpty in interface org.apache.beam.runners.core.SideInputReader
      • bindValue

        public <T> org.apache.beam.sdk.state.ValueState<T> bindValue​(java.lang.String id,
                                                                     org.apache.beam.sdk.state.StateSpec<org.apache.beam.sdk.state.ValueState<T>> spec,
                                                                     org.apache.beam.sdk.coders.Coder<T> coder)
        Specified by:
        bindValue in interface org.apache.beam.sdk.state.StateBinder
      • bindBag

        public <T> org.apache.beam.sdk.state.BagState<T> bindBag​(java.lang.String id,
                                                                 org.apache.beam.sdk.state.StateSpec<org.apache.beam.sdk.state.BagState<T>> spec,
                                                                 org.apache.beam.sdk.coders.Coder<T> elemCoder)
        Specified by:
        bindBag in interface org.apache.beam.sdk.state.StateBinder
      • bindSet

        public <T> org.apache.beam.sdk.state.SetState<T> bindSet​(java.lang.String id,
                                                                 org.apache.beam.sdk.state.StateSpec<org.apache.beam.sdk.state.SetState<T>> spec,
                                                                 org.apache.beam.sdk.coders.Coder<T> elemCoder)
        Specified by:
        bindSet in interface org.apache.beam.sdk.state.StateBinder
      • bindMap

        public <KeyT,​ValueT> org.apache.beam.sdk.state.MapState<KeyT,​ValueT> bindMap​(java.lang.String id,
                                                                                                 org.apache.beam.sdk.state.StateSpec<org.apache.beam.sdk.state.MapState<KeyT,​ValueT>> spec,
                                                                                                 org.apache.beam.sdk.coders.Coder<KeyT> mapKeyCoder,
                                                                                                 org.apache.beam.sdk.coders.Coder<ValueT> mapValueCoder)
        Specified by:
        bindMap in interface org.apache.beam.sdk.state.StateBinder
      • bindMultimap

        public <KeyT,​ValueT> org.apache.beam.sdk.state.MultimapState<KeyT,​ValueT> bindMultimap​(java.lang.String id,
                                                                                                           org.apache.beam.sdk.state.StateSpec<org.apache.beam.sdk.state.MultimapState<KeyT,​ValueT>> spec,
                                                                                                           org.apache.beam.sdk.coders.Coder<KeyT> keyCoder,
                                                                                                           org.apache.beam.sdk.coders.Coder<ValueT> valueCoder)
        Specified by:
        bindMultimap in interface org.apache.beam.sdk.state.StateBinder
      • bindOrderedList

        public <T> org.apache.beam.sdk.state.OrderedListState<T> bindOrderedList​(java.lang.String id,
                                                                                 org.apache.beam.sdk.state.StateSpec<org.apache.beam.sdk.state.OrderedListState<T>> spec,
                                                                                 org.apache.beam.sdk.coders.Coder<T> elemCoder)
        Specified by:
        bindOrderedList in interface org.apache.beam.sdk.state.StateBinder
      • bindCombining

        public <ElementT,​AccumT,​ResultT> org.apache.beam.sdk.state.CombiningState<ElementT,​AccumT,​ResultT> bindCombining​(java.lang.String id,
                                                                                                                                                 org.apache.beam.sdk.state.StateSpec<org.apache.beam.sdk.state.CombiningState<ElementT,​AccumT,​ResultT>> spec,
                                                                                                                                                 org.apache.beam.sdk.coders.Coder<AccumT> accumCoder,
                                                                                                                                                 org.apache.beam.sdk.transforms.Combine.CombineFn<ElementT,​AccumT,​ResultT> combineFn)
        Specified by:
        bindCombining in interface org.apache.beam.sdk.state.StateBinder
      • bindCombiningWithContext

        public <ElementT,​AccumT,​ResultT> org.apache.beam.sdk.state.CombiningState<ElementT,​AccumT,​ResultT> bindCombiningWithContext​(java.lang.String id,
                                                                                                                                                            org.apache.beam.sdk.state.StateSpec<org.apache.beam.sdk.state.CombiningState<ElementT,​AccumT,​ResultT>> spec,
                                                                                                                                                            org.apache.beam.sdk.coders.Coder<AccumT> accumCoder,
                                                                                                                                                            org.apache.beam.sdk.transforms.CombineWithContext.CombineFnWithContext<ElementT,​AccumT,​ResultT> combineFn)
        Specified by:
        bindCombiningWithContext in interface org.apache.beam.sdk.state.StateBinder
      • bindWatermark

        @Deprecated
        public org.apache.beam.sdk.state.WatermarkHoldState bindWatermark​(java.lang.String id,
                                                                          org.apache.beam.sdk.state.StateSpec<org.apache.beam.sdk.state.WatermarkHoldState> spec,
                                                                          org.apache.beam.sdk.transforms.windowing.TimestampCombiner timestampCombiner)
        Deprecated.
        The Fn API has no plans to implement WatermarkHoldState as of this writing and is waiting on resolution of BEAM-2535.
        Specified by:
        bindWatermark in interface org.apache.beam.sdk.state.StateBinder
      • finalizeState

        public void finalizeState()