Search in sources :

Example 6 with StateTtlConfig

use of org.apache.flink.api.common.state.StateTtlConfig in project flink by apache.

the class MiniBatchIncrementalGroupAggFunction method open.

@Override
public void open(ExecutionContext ctx) throws Exception {
    super.open(ctx);
    ClassLoader classLoader = ctx.getRuntimeContext().getUserCodeClassLoader();
    StateTtlConfig ttlConfig = createTtlConfig(stateRetentionTime);
    partialAgg = genPartialAggsHandler.newInstance(classLoader);
    partialAgg.open(new PerKeyStateDataViewStore(ctx.getRuntimeContext()));
    finalAgg = genFinalAggsHandler.newInstance(classLoader);
    finalAgg.open(new PerKeyStateDataViewStore(ctx.getRuntimeContext(), ttlConfig));
    resultRow = new JoinedRowData();
}
Also used : JoinedRowData(org.apache.flink.table.data.utils.JoinedRowData) StateTtlConfig(org.apache.flink.api.common.state.StateTtlConfig) PerKeyStateDataViewStore(org.apache.flink.table.runtime.dataview.PerKeyStateDataViewStore)

Example 7 with StateTtlConfig

use of org.apache.flink.api.common.state.StateTtlConfig in project flink by apache.

the class GroupTableAggFunction method open.

@Override
public void open(Configuration parameters) throws Exception {
    super.open(parameters);
    // instantiate function
    StateTtlConfig ttlConfig = createTtlConfig(stateRetentionTime);
    function = genAggsHandler.newInstance(getRuntimeContext().getUserCodeClassLoader());
    function.open(new PerKeyStateDataViewStore(getRuntimeContext(), ttlConfig));
    InternalTypeInfo<RowData> accTypeInfo = InternalTypeInfo.ofFields(accTypes);
    ValueStateDescriptor<RowData> accDesc = new ValueStateDescriptor<>("accState", accTypeInfo);
    if (ttlConfig.isEnabled()) {
        accDesc.enableTimeToLive(ttlConfig);
    }
    accState = getRuntimeContext().getState(accDesc);
}
Also used : ValueStateDescriptor(org.apache.flink.api.common.state.ValueStateDescriptor) RowData(org.apache.flink.table.data.RowData) StateTtlConfig(org.apache.flink.api.common.state.StateTtlConfig) PerKeyStateDataViewStore(org.apache.flink.table.runtime.dataview.PerKeyStateDataViewStore)

Example 8 with StateTtlConfig

use of org.apache.flink.api.common.state.StateTtlConfig in project flink by apache.

the class DeduplicateFunctionBase method open.

@Override
public void open(Configuration configure) throws Exception {
    super.open(configure);
    ValueStateDescriptor<T> stateDesc = new ValueStateDescriptor<>("deduplicate-state", typeInfo);
    StateTtlConfig ttlConfig = createTtlConfig(stateRetentionTime);
    if (ttlConfig.isEnabled()) {
        stateDesc.enableTimeToLive(ttlConfig);
    }
    state = getRuntimeContext().getState(stateDesc);
}
Also used : ValueStateDescriptor(org.apache.flink.api.common.state.ValueStateDescriptor) StateTtlConfig(org.apache.flink.api.common.state.StateTtlConfig)

Example 9 with StateTtlConfig

use of org.apache.flink.api.common.state.StateTtlConfig in project flink by apache.

the class DataStreamStateTTLTestProgram method main.

public static void main(String[] args) throws Exception {
    final ParameterTool pt = ParameterTool.fromArgs(args);
    final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
    setupEnvironment(env, pt);
    setBackendWithCustomTTLTimeProvider(env);
    TtlTestConfig config = TtlTestConfig.fromArgs(pt);
    StateTtlConfig ttlConfig = StateTtlConfig.newBuilder(config.ttl).cleanupFullSnapshot().build();
    env.addSource(new TtlStateUpdateSource(config.keySpace, config.sleepAfterElements, config.sleepTime)).name("TtlStateUpdateSource").keyBy(TtlStateUpdate::getKey).flatMap(new TtlVerifyUpdateFunction(ttlConfig, config.reportStatAfterUpdatesNum)).name("TtlVerifyUpdateFunction").addSink(new PrintSinkFunction<>()).name("PrintFailedVerifications");
    env.execute("State TTL test job");
}
Also used : ParameterTool(org.apache.flink.api.java.utils.ParameterTool) PrintSinkFunction(org.apache.flink.streaming.api.functions.sink.PrintSinkFunction) StreamExecutionEnvironment(org.apache.flink.streaming.api.environment.StreamExecutionEnvironment) StateTtlConfig(org.apache.flink.api.common.state.StateTtlConfig)

Example 10 with StateTtlConfig

use of org.apache.flink.api.common.state.StateTtlConfig in project flink by apache.

the class ChangelogBackendLogApplier method restoreKvMetaData.

private static RegisteredKeyValueStateBackendMetaInfo restoreKvMetaData(ChangelogKeyedStateBackend<?> backend, StateMetaInfoSnapshot snapshot, DataInputView in) throws Exception {
    RegisteredKeyValueStateBackendMetaInfo meta = new RegisteredKeyValueStateBackendMetaInfo(snapshot);
    StateTtlConfig ttlConfig = readTtlConfig(in);
    Object defaultValue = readDefaultValue(in, meta);
    // Use regular API to create states in both changelog and the base backends the metadata is
    // persisted in log before data changes.
    // An alternative solution to load metadata "natively" by the base backends would require
    // base state to be always present, i.e. the 1st checkpoint would have to be "full" always.
    StateDescriptor stateDescriptor = toStateDescriptor(meta, defaultValue);
    // todo: support changing ttl (FLINK-23143)
    if (ttlConfig.isEnabled()) {
        stateDescriptor.enableTimeToLive(ttlConfig);
    }
    backend.getOrCreateKeyedState(meta.getNamespaceSerializer(), stateDescriptor);
    return meta;
}
Also used : ReducingStateDescriptor(org.apache.flink.api.common.state.ReducingStateDescriptor) MapStateDescriptor(org.apache.flink.api.common.state.MapStateDescriptor) ListStateDescriptor(org.apache.flink.api.common.state.ListStateDescriptor) AggregatingStateDescriptor(org.apache.flink.api.common.state.AggregatingStateDescriptor) StateDescriptor(org.apache.flink.api.common.state.StateDescriptor) ValueStateDescriptor(org.apache.flink.api.common.state.ValueStateDescriptor) StateTtlConfig(org.apache.flink.api.common.state.StateTtlConfig) RegisteredKeyValueStateBackendMetaInfo(org.apache.flink.runtime.state.RegisteredKeyValueStateBackendMetaInfo)

Aggregations

StateTtlConfig (org.apache.flink.api.common.state.StateTtlConfig)14 ValueStateDescriptor (org.apache.flink.api.common.state.ValueStateDescriptor)7 RowData (org.apache.flink.table.data.RowData)5 PerKeyStateDataViewStore (org.apache.flink.table.runtime.dataview.PerKeyStateDataViewStore)5 ListStateDescriptor (org.apache.flink.api.common.state.ListStateDescriptor)4 MapStateDescriptor (org.apache.flink.api.common.state.MapStateDescriptor)4 JoinedRowData (org.apache.flink.table.data.utils.JoinedRowData)4 StateDescriptor (org.apache.flink.api.common.state.StateDescriptor)3 FlinkFnApi (org.apache.flink.fnexecution.v1.FlinkFnApi)3 ByteString (org.apache.beam.vendor.grpc.v1p26p0.com.google.protobuf.ByteString)2 AggregatingStateDescriptor (org.apache.flink.api.common.state.AggregatingStateDescriptor)1 ListState (org.apache.flink.api.common.state.ListState)1 MapState (org.apache.flink.api.common.state.MapState)1 ReducingStateDescriptor (org.apache.flink.api.common.state.ReducingStateDescriptor)1 ListSerializer (org.apache.flink.api.common.typeutils.base.ListSerializer)1 Transformation (org.apache.flink.api.dag.Transformation)1 ParameterTool (org.apache.flink.api.java.utils.ParameterTool)1 RegisteredKeyValueStateBackendMetaInfo (org.apache.flink.runtime.state.RegisteredKeyValueStateBackendMetaInfo)1 StreamExecutionEnvironment (org.apache.flink.streaming.api.environment.StreamExecutionEnvironment)1 PrintSinkFunction (org.apache.flink.streaming.api.functions.sink.PrintSinkFunction)1