1、简述

在基于flink的实时计算中,会有实时流join的需求,公司目前使用的是flink1.11版本,是实际的生产中,发现效果不好,甚至几乎join不到,同时多流join显得比较复杂,和同事沟通同时结合自己实践经验,想到使用union + window groupby的方式来实现 多流jion。

flink 双流join 文档:Apache Flink 1.12 Documentation: 流上的 Join

2、代码实践

insert into table_sink
SELECT 
    user_id,
    min(client_time) client_time,
    record_id,
    max(client_ip) client_ip,
    max(card_name) card_name,
    max(event_type) event_type
FROM  (
 
    select
        client_time,
    user_id
        record_id,
        client_ip,
        '' card_name,
        '' event_type
    from table_a
    where REGEXP(substr(client_time,1,10),'[0-9]{4}-[0-9]{2}-[0-9]{2}')
 
    union all
 
    select
        client_time,
        user_id
        record_id,
        '' client_ip,
        '' card_name,
        '' event_type
    from table_b
    where REGEXP(substr(client_time,1,10),'[0-9]{4}-[0-9]{2}-[0-9]{2}')
    
    union all
 
    select
        client_time,
        user_id
        record_id,
        '' client_ip,
 
        card_name,
        event_type
    from table_c
    where REGEXP(substr(client_time,1,10),'[0-9]{4}-[0-9]{2}-[0-9]{2}')
 
)x GROUP BY  user_id, record_id,TUMBLE(proctime(), INTERVAL '10' second)
3、实践经验

上面sql代码,公司业务每天的数据量有几个亿,同时在3秒内完成业务流程。实际分配的exectur是4G,发现超过10秒窗口后,就频繁GC报错,所以根据实际的业务场景,时间窗口越大,资源消耗越大,这一点需要注意。

flink 双流jion 使用union all + groupby方式实现相关推荐

  1. 面试官: Flink双流JOIN了解吗? 简单说说其实现原理

    摘要:今天和大家聊聊Flink双流Join问题.这是一个高频面试点,也是工作中常遇到的一种真实场景. 本文分享自华为云社区<万字直通面试:Flink双流JOIN>,作者:大数据兵工厂 . ...

  2. Flink双流JOIN

    1.引子 1.1 数据库SQL中的JOIN 我们先来看看数据库SQL中的JOIN操作.如下所示的订单查询SQL,通过将订单表的id和订单详情表order_id关联,获取所有订单下的商品信息. sele ...

  3. Flink 双流 Join 的3种操作示例

    在数据库中的静态表上做 OLAP 分析时,两表 join 是非常常见的操作.同理,在流式处理作业中,有时也需要在两条流上做 join 以获得更丰富的信息.Flink DataStream API 为用 ...

  4. Flink结合Iceberg的一种实现方式笔记

    前言 当前Iceberg仅支持flink 1.11.x 使用Datastream和Table API写iceberg表,鉴于hive catalog 的测试暂时未通过 参考ISSUE, 故以下使用ha ...

  5. Flink处理迟到数据的几种方式

    方式1:设置水位线延迟时间 水位线延迟设置,一般设置为毫秒到秒级别. SingleOutputStreamOperator<Event> watermarks = streamOperat ...

  6. Flink SQL的打印输出的几种方式

    打广告!!!!!!!!!!!!!!!!!!!!!!!!!: 先跟鸡哥打个广告 ,博客地址: https://me.csdn.net/weixin_47482194 写的博客很有水平的,上了几次官网推荐 ...

  7. 阿里云大数据开发三面面经,已过,面试题已配答案

    一面:阿里云大数据开发一面面经,已过,面试题已配答案_蓦然_的博客-CSDN博客 二面:阿里云大数据开发二面面经,已过,面试题已配答案_蓦然_的博客-CSDN博客 1.SQL题 自由发挥 2.实习经历 ...

  8. Flink教程(20)- Flink高级特性(双流Join)

    文章目录 01 引言 02 双流join介绍 03 Window Join 3.1 Tumbling Window Join 3.2 Sliding Window Join 3.3 Session W ...

  9. flink读写hive-代码方式

    注意: flink读写hive有两种方式, 一种是connector方式, 一种是jdbc方式. jdbc因为性能上的问题,该方式没有尝试的意义. ########################## ...

最新文章

  1. 磁盘显示执行页内操作时的错误要如何找到资料
  2. APM - Hello Javaagent
  3. 页面放在哪_seo页面怎么优化?seo页面优化有哪些方法?
  4. java 10000阶乘_Java ForkJoinPool: 3秒计算100万的阶乘
  5. java ajax html复选框,HTMLjavaSkcriptCSSjQueryajax(九)(示例代码)
  6. 顺序结构实现【数据结构】
  7. 使用静态内置类实现线程安全的单例设计模式
  8. C语言实现粒子群算法(PSO)一
  9. 我为啥不想用Python
  10. jni回调java类中函数_Andriod JNI编程之C++回调Java函数
  11. iOS多线程(一):GCD的基本使用
  12. 3篇SCI定A类博士!直聘副教授七级!有偿70㎡住房+30万安家费+25万科启
  13. Editor\Data\il2cpp/build/deploy/net471/il2cpp.exe did not run properly!
  14. wps如何保存最终状态_Word 无法保存“最终状态”
  15. Android集成招行一网通
  16. esp8266_arduino源码
  17. 解析单存储库:定义、优势与挑战
  18. 身份证OCR实名认证接口
  19. 周杰伦:他们只顾嘲讽,却不知眼前是神的降生
  20. 关于交换机的现网接入配置简述

热门文章

  1. 收藏了很多大牛的博客
  2. html5图片动画源码,不容错过的jQuery图片动画及源码
  3. Office2016PPT图标变白板解决办法
  4. 动态规划法求解游艇租用问题C++代码
  5. 自动化测试教程(18)发送邮件
  6. 图像变换——向前映射和向后映射
  7. 【微软漏洞分析】MS10-015 Windows 内核异常处理程序漏洞(CVE-2010-0232)
  8. EWT/经验小波变换/EWT安装包下载
  9. 电机轴承故障诊断EWT与EEMD方法对比时遇见的问题
  10. 2.2Ad Hoc 网络的MAC协议