我理解:
对于print,map 等无状态操作,不存储数据。
对于window 这种有状态操作,只存储窗口内的数据。
对于groupby 这种有状态操作,随着key越多,存储的数据越多,默认不清理,可以配置清理策略。
-------
我的数据是接的kafka数据源,接到数据后注册成表,我想知道通过这种方式创建的表,表里的数据会一直追加吗?
是否会一直存在导致占用内存越来越大的问题???如何清理过期数据???
注册表代码如下:
//获取订单回调kafka数据
DataStreamSource<String&gt; dataStreamSource =
KafkaConfigUtil.buildKafka(env).setParallelism(1);
//订单数据展开成所需数据格式
SingleOutputStreamOperator<OrderDetail&gt; orderDetails =
dataStreamSource.flatMap(new OrderSplitService())
.setParallelism(parameterTool.getInt(STREAM_PARALLELISM, 5));
//过滤
SingleOutputStreamOperator<OrderDetail&gt; simpleResults =
orderDetails.flatMap(new OrderDetailFilterService())
.setParallelism(parameterTool.getInt(STREAM_PARALLELISM, 5));
Table orderDetailTable = tableEnv.fromDataStream(simpleResults,
$("orderNo"),
$("memberId"),$("merchantId"),$("storeId"),$("internalId"),$("type"),
$("quantity"),$("unitPrice"),$("gmtPaidLong"),$("gmtPaid"),$("gmtPaidTimeStamp"),$("userActionTime").proctime());注册后的表内数据,试过打印,但是每次接到一次kafka只会打印一条数据。后续还需要用这个表的数据做滑动窗口。
</quote>
--
Sent from:
http://apache-flink.147419.n8.nabble.com/