开发者社区> 问答> 正文

flink sql怎么计算新增用户?

hi各位,我想计算每日新增用户的数量,用户的登录日志在kafka中,在当日之前登录过的用户即为老用户,目前我的做法是将用户登录信息用flink sql写到下游mysql表A中,表中存储用户id和第一次登录的ts,然后再用另外一个流join这张表判断该用户是否在今天之前是否登录过,如果未登录则计算为当日新增玩家。

现在的问题是在0点时,可能由于数据延迟或者乱序,导致前天11:55的用户数据还没有写到A表中,但是0:01的数据到了,所以这个用户会被计算为新用户,或者另外一种情况时,写入表A的流消费比较慢,导致另外一个流join到的数据不全,老用户也会被判定为今日新增用户,请问这种情况我要如何计算到准确的每日实时新增用户呢?

考虑过使用10分钟窗口+5分钟延迟的形式,但是这样延迟就变成了15分钟,延迟时间过长*来自志愿者整理的flink邮件归档

展开
收起
彗星halation 2021-12-02 16:46:41 929 0
1 条回答
写回答
取消 提交回答
  • 听起来 event time temporal join 符合你的需求。详见

    https://ci.apache.org/projects/flink/flink-docs-release-1.13/zh/docs/dev/table/sql/queries/joins/#event-time-temporal-join*来自志愿者整理的FLINK邮件归档

    2021-12-02 16:59:36
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server在电子商务中的应用与实践 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载