flink1.18.0 flink维表join新思路

以往常见实现 通过Lookup join来实现维表join

弊端:

        虽然缓存可以减轻维表负担,但是如果事实表数据量很大,每秒千万条,维度表只有百万条,也就是说 你会看到大量的无法关联的数据仍然需要查询维度表.  cache缓存千万数据量内存压力又比较大, 那么怎么减轻维表数据库压力,还能做到低延迟.

新方法 借助  新特性: Configure Operator-level State TTL 配合 regular join + flinkCDC

以往双流join ; a join b,默认两侧状态都一直保留,虽然可以通过  table.exec.state.ttl   配置全局状态过期时间,但是不适合维度表join的场景.

新思路: 

a join b(维度表)  既然新版本支持了算子级别的state,那么我们配置a的stateTTL是0,立马失效;

b的state配置为永久,即维度表数据永久不失效. 这里的b表需借助flinkCDC通过维表全量数据和后续增量过来,如果你们以前是hbase,这种方法不适合. 这样做到了状态存储了全量维表数据(前提维度表数据量不能太大)  

总结: 维表支持cdc 且数据量不会太大(state存的下 且性能够用) 则可以用方法2

问题: 

[FLINK-34001] doc of "Configure Operator-level State TTL" error - ASF JIRA

目前测试发现 文档写两侧配置ttl=0ms表示不保留状态,但是实际测试发现保留了两侧的状态,且永久保留,目前等待jira回复

相关推荐

  1. flink1.18.0 flinkjoin思路

    2024-01-07 20:34:01       49 阅读
  2. Flink基于HudiJoin缺陷解析及解决方案

    2024-01-07 20:34:01       24 阅读
  3. Flink:Lookup Join 实现与示例代码

    2024-01-07 20:34:01       18 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-07 20:34:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-07 20:34:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-07 20:34:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-07 20:34:01       20 阅读

热门阅读

  1. 【Github】上传代码

    2024-01-07 20:34:01       41 阅读
  2. redis

    redis

    2024-01-07 20:34:01      43 阅读
  3. 【题解】leetcode---69. x 的平方(二分查找入门)

    2024-01-07 20:34:01       36 阅读
  4. vue项目打包体积大优化之-productionSourceMap设置

    2024-01-07 20:34:01       37 阅读