取决于具体的场景。想到的有如下几种方案:
1,group by student_id和student_name,而不是只group by
student_id。当然前提是修改同名名字不会推送一条消息到流1.
2,过滤掉update的消息
3,基于时间窗口的聚合,对于student表的数据,每n秒输出一个唯一的student_id,然后再与score流join。
-邮件原件-
发件人: xin Destiny
发送时间: Tuesday, January 14, 2020 6:39 PM
收件人: user-zh@flink.apache.org
主题: Re: 求助帖
不好意思,之前没看到这个问题。
Darwin-amd64就是mac上的可执行文件格式。信任他,直接可以执行的。
-邮件原件-
发件人: 陈帅
发送时间: Saturday, December 7, 2019 10:48 PM
收件人: user-zh@flink.apache.org
主题: Re: 如果用flink sql持续查询过去30分钟登录网站的人数?
请问这个平台生成可执行文件creek是如何实现的?对应的Dawin-amd64环境下载下来的文件是什么格式的?
Yuan,Youjun 于2019年12月7日周六 下午8:32写道:
> 是
首先通过一个自定义表函数(table function),将每条输入的消息变成3条消息,假设输入消息的时间为ts,产出的三条消息时间分别为:(ts-1,
0), (ts+1, 1), (ts+31, 0),
然后再用30分钟的range over窗口对前面的数值部分(0或者1)求SUM
袁尤军
-邮件原件-
发件人: 陈帅
发送时间: Wednesday, December 11, 2019 9:31 PM
收件人: user-zh@flink.apache.org
主题: flink持续查询过去30分钟登录网站的人数
例如,用户在以下时间点登录:无, 12:02
第一种情况,用firstvalue这种聚合函数; 第二种情况,用min聚合函数,然后group by id,是不是就是你要的结果?
-邮件原件-
发件人: Jimmy Wong
发送时间: Tuesday, December 10, 2019 4:40 PM
收件人: user-zh@flink.apache.org
主题: 窗口去重
Hi,All:
请教一个问题,现在有个实时场景:需要对每 5 分钟内数据进行去重,然后 Sink。
比如:
数据
{ts: 2019-12-10 16:24:00 id: 1}
{ts: 2019-12-10 16:22:00 id:
是的,与Flink完全一样的SQL接口,为边缘计算设计的流式计算框架。
-邮件原件-
发件人: 陈帅
发送时间: Saturday, December 7, 2019 11:36 AM
收件人: user-zh@flink.apache.org
主题: Re: 如果用flink sql持续查询过去30分钟登录网站的人数?
你们这个平台还挺方便快速验证的,是扩展了Flink SQL吗?
虽然没有完全解决我的问题,但还是要谢谢你。
Yuan,Youjun 于2019年12月5日周四 上午10:41写道:
> 可以用30分钟的range over窗口来处理,
Count=0的窗口如何能得到呢?没有数据就没有产出。
然而可以同rows over窗口,将两个前后窗口的sum-当前的count,可以间接得到两个窗口的count是否相等。同时辅以前后窗口时间的差,来辅助判断。
最终在自定义函数last_value_str/first_value_str的帮助下,勉强得以实现(尚不完美,可能出现连续的ONLINE的输出)
下面是我的SQL,仅供参考:
INSERT INTO mysink
SELECT userid, lastts, case when preCnt <= 0 OR tsdiff > 10 THEN 'ONLINE' ELSE
'of
谢谢你的回复。
这种方案比较有意思,只是还不能区分设备第一次心跳产生的count=1的消息(上线),和设备最后一次心跳产生的count=1的消息(下线)
-邮件原件-
发件人: 1193216154 <1193216...@qq.com>
发送时间: Wednesday, December 4, 2019 9:39 PM
收件人: user-zh
主题: 回复:如何用SQL表达对设备离在线监控
设定一个滑动窗口,窗口大小大于等于2n,滑动间隔大于等于n,若一次窗口结算,count 大于等于2,则在线,否则下线
---原始邮件---
发件人:
可以用30分钟的range over窗口来处理,但是你提到两个0值得输出恐怕做不到,没有数据,没有产出。
假设你得输入包含ts和userid两个字段,分别为时间戳和用户id,那么SQL应该这样:
INSERT INTO mysink
SELECT
ts, userid,
COUNT(userid)
OVER (PARTITION BY userid ORDER BY rowtime RANGE BETWEEN INTERVAL '30'
MINUTE PRECEDING AND CURRENT ROW) AS cnt
FROM mysrc
以如下输
Hi all,
假设我们有很多设备,设备正常工作期间会定时发送心跳到服务器。如果某个设备在超过N分钟的时间内,没有发送任何心跳到服务器,服务器会认为设备已经离线。直到下一次心跳,才判定设备为在线。
需求:在判定设备离线时,产出一条设备离线消息;在设备经过一次离线后,第一次心跳时,产出一条设备上线的消息;
假设设备上报的消息包含当前时间(ts)和设备id(deviceid):
1575456144,dev1
1575456146,dev2
1575456147,dev1
….
产出的离在线消息分别格式如下(第一列为设备离在线时间):
1575456158,dev1,offline
1575
内层query不是按时间窗查询的话,这恐怕是不支持。
如果内层query是按时间窗的,比如固定窗口,那还可以用tumble_rowtime来传递rowtime属性。
-邮件原件-
发件人: 金圣哲
发送时间: Friday, November 15, 2019 1:21 PM
收件人: user-zh@flink.apache.org
主题: flink sql 状态表嵌套窗口查询
各位老板好:
"selectrider_id, waybill_status as waybill_status ,count(id) as
waybill_status_co
SQL没有表达这种“最早一分钟”的逻辑。
如果在你的消息的开头,插入一个temperature=0的消息,那么你得到的第一个输出diff_temperature=0,不知道这种方式是否可以接受。
发件人: Chennet Steven
发送时间: Thursday, November 14, 2019 5:32 PM
收件人: user-zh@flink.apache.org; Yuan,Youjun
主题: 回复: Flink1.7.2,TableApi的自定义聚合函数中如何使用自定义状态
Yuan, 非常感谢大佬的回复和方案,我代码尝试了,这个方案的确可行,但在计算最早一分钟
这个场景应可以通过标准的SQL完成计算。大致思路如下:
1,内层查询统计每个设备一分钟的最大温度,max(temp) as max_temperature + tumble窗口
2,外层通过row over窗口,拿到当前分钟的max_temperature,和前后2分钟最大温度的和,即SUM(max_temperature) AS
sum_temperature
3,最外层,就直接select 2 * max_temperature - sum_temperature就是你需要的前后2个分钟最大温度的差了。
假设输入消息有三个字段:
Ts: 时间戳
Deviceid:设备编号
Temp:
1, 是
2,没有标准答案,是否可以本地先聚合?
3,AggFunc是指定做何种聚合,是sum, 还是avg, 还是count。不指定的话,Flink哪里指导你要计算啥?
-邮件原件-
发件人: 王佩
发送时间: Saturday, November 9, 2019 11:45 AM
收件人: user-zh
主题: Flink DataStream KeyedStream 与 AggregateFunction
请教下:
1、DataStream 如按用户ID KeyBy后,同一个用户ID的数据最终会被分到一个Partition中吗?
2、假设1成立,这样就会
源码参考:PeriodicWatermarkEmitter
-邮件原件-
发件人: Dino Zhang
发送时间: Tuesday, September 3, 2019 3:14 PM
收件人: user-zh@flink.apache.org
主题: Re: Flink 周期性创建watermark,200ms的周期是怎么控制的
hi venn,
基于EventTIme的Watermark间隔默认200ms,可以通过ExecutionConfig的setAutoWatermarkInterval方法进行设置,见StreamExecutionEnvironme
Sink -> “数据目的地”,我们的团队基本上都这么称呼。仅供参考
-邮件原件-
发件人: zhisheng
发送时间: Saturday, August 17, 2019 3:49 PM
收件人: user-zh
主题: Re: [Discuss] What should the "Data Source" be translated into Chinese
hi,
总感觉还是有点别扭,建议如果没找到合适的中文词语来翻译,那么还是用 Data Sink 来表示可能会更友好些
Kurt Young 于2019年8月13日周二 下午4:16写道:
> cc
并不是没条消息会触发watermark,而是有一定时间间隔的,默认是200ms触发一次watermark。
当你的数据来的比较集中的时候,经常会发生最新的消息的时间戳已经过了window end,但是window还没fire的情况。
-邮件原件-
发件人: Ever <439674...@qq.com>
发送时间: Sunday, July 14, 2019 5:00 PM
收件人: user-zh
主题: 回复: flink 1.8.1 时间窗口无法关闭以及消息丢失的问题
第四条数据来的时间戳是: 03:17:55, 水印时间这时候应该是03:17:50,
16 matches
Mail list logo