【Flink精讲】双流Join之Regular Join(即普通Join)

Regular Join

普通Join

  • 通过条件关联两条实时数据流:动态表Join动态表
  • 支持Inner Join、Left Join、Right Join、Full Join。
    1. Inner Join(Join):只有两边数据流都关联上才输出+[L,R]
    2. Left Join(Left Outer Join):只要左流有数据即输出+[L,NULL],右流数据到达时会产生撤回流-[L,NULL],并输出+[L,R]
    3. Right Join(Right Outer Join):和Left Join逻辑相反
    4. Full Join(Full Outer Join):左流有数据输出+[L,NULL],右流有数据即输出+[NULL,R],两个数据流关联上之后产生回撤流并输出完整结果
图例
Inner Join
  • 注意:Inner Join不会产生回撤流
Left Join

回撤流:使用的是-D,而不是-U

输出流:+I(大写i)

  • 注意:Left Join会产生回撤流
Right Join
  • 注意:Right Join会产生回撤流
Full Join
  • 注意:Full Join会产生回撤流
案例实战

订单表和支付表进行关联构建宽表

  • 设置state的TTL防止内存过大
  • left join/right join/full join时要支持回撤,kafka不支持回撤流
    1. upsert-kafka的connector支持回撤流
      upsert-kafka必须指定主键字段:PRIMARY KEY(order_id) NOT ENFORCED
    2. order_id为空报错
      full join时可以case when哪张表有用哪张表的
相关推荐
gqkmiss11 分钟前
Git 常用命令集与实际使用 Demo
大数据·git·elasticsearch·git 命令·git 命令大全
企鹅不耐热.42 分钟前
Spark-Core编程2
大数据·分布式·spark
一个天蝎座 白勺 程序猿2 小时前
大数据(7.5)Kafka Edge在5G边缘计算中的革新实践:解锁毫秒级实时处理的无限可能
大数据·kafka·edge
小伍_Five2 小时前
使用Java操作Neo4j数据库
大数据·数据库·nosql数据库·neo4j
2305_797882092 小时前
美食推荐小程序
大数据·微信小程序·小程序
發發期权酱2 小时前
期权中的Gamma指标详解
大数据·人工智能
永洪科技3 小时前
AI领域再突破,永洪科技荣获“2025人工智能+创新案例”奖
大数据·人工智能·科技·数据分析·数据可视化
Elastic 中国社区官方博客3 小时前
Elasticsearch 向量数据库,原生支持 Google Cloud Vertex AI 平台
大数据·数据库·人工智能·elasticsearch·搜索引擎·语言模型·自然语言处理
简单的心110 小时前
window部署虚拟机VirtualBox来部署flink
大数据·windows·flink