Java 如何在ApacheFlink上正确初始化任务状态?

Java 如何在ApacheFlink上正确初始化任务状态?,java,initialization,apache-flink,Java,Initialization,Apache Flink,我正在研究基于ApacheFlink的金融反欺诈系统。我需要根据金融交易计算许多不同的总量。我使用Kafka作为流数据源。例如,在平均交易金额计算中,我使用MapState存储总交易计数和每张卡的总金额。存储在Apache Accumulo上的聚合数据。我知道Flink中的持续状态,但这不是我需要的。在计算开始之前,有没有办法将初始数据加载到Flink中?是否可以通过使用两个连接的流以及来自Accumulo的数据以及最新计算的聚合和事务流来完成?事务流是无限的,由聚合而不是流。我该往哪边挖?感谢

我正在研究基于ApacheFlink的金融反欺诈系统。我需要根据金融交易计算许多不同的总量。我使用Kafka作为流数据源。例如,在平均交易金额计算中,我使用MapState存储总交易计数和每张卡的总金额。存储在Apache Accumulo上的聚合数据。我知道Flink中的持续状态,但这不是我需要的。在计算开始之前,有没有办法将初始数据加载到Flink中?是否可以通过使用两个连接的流以及来自Accumulo的数据以及最新计算的聚合和事务流来完成?事务流是无限的,由聚合而不是流。我该往哪边挖?感谢您的帮助


我考虑过异步IO,但状态不能与异步函数一起使用。我的想法是:检查内存状态下的聚合。若这里并没有卡的数据—代码调用存储服务,从中提取数据,在内存状态下执行计算和更新,所以,该卡的下一个事务不需要通过调用外部数据服务来处理。但我认为这是一个很大的瓶颈。

你可以这样尝试:

TASK::setInitialState
    TASK::invoke
        create basic utils (config, etc) and load the chain of operators
        setup-operators
        task-specific-init
        initialize-operator-states
        open-operators
        run
        close-operators
        dispose-operators
        task-specific-cleanup
        common-cleanup

您可以这样尝试:

TASK::setInitialState
    TASK::invoke
        create basic utils (config, etc) and load the chain of operators
        setup-operators
        task-specific-init
        initialize-operator-states
        open-operators
        run
        close-operators
        dispose-operators
        task-specific-cleanup
        common-cleanup