Re: Flink如何做到动态关联join多张维度表中的n张表?

2024-06-19 文章 xiaohui zhang
lookup join可以关联多张维表,但是维表的更新不会触发历史数据刷新。
多维表关联的时候,需要考虑多次关联导致的延迟,以及查询tps对维表数据库的压力。

斗鱼 <1227581...@qq.com.invalid> 于2024年6月19日周三 23:12写道:

> 好的,感谢大佬的回复,之前有了解到Flink的Lookup join好像可以实现类似逻辑,只是不知道Lookup join会不会支持多张动态维度表呢?
>
>
> 斗鱼
> 1227581...@qq.com
>
>
>
>  
>
>
>
>
> -- 原始邮件 --
> 发件人:
>   "user-zh"
> <
> xhzhang...@gmail.com>;
> 发送时间: 2024年6月19日(星期三) 下午5:55
> 收件人: "user-zh"
> 主题: Re: Flink如何做到动态关联join多张维度表中的n张表?
>
>
>
>
> 维表更新后要刷新历史的事实表吗?这个用flink来做的话,几乎不太可能实现,尤其是涉及到多个维表,相当于每次维表又更新了,就要从整个历史数据里面找到关联的数据,重新写入。不管是状态存储,还是更新数据量,需要的资源都太高,无法处理。
> 在我们目前的实时宽表应用里面,实时表部分一般都是流水类的,取到的维表信息,就应该是业务事实发生时的数据。
> 维表更新后刷新事实的,一般都是夜间批量再更新。如果有强实时更新需求的,只能在查询时再关联维表取最新值
>
> 王旭 
> > 互相交流哈,我们也在做类似的改造
> > 1.不确定需要关联几张维表的话,是否可以直接都关联了,然后再根据驱动数据中的字段判断要取哪几张维度表的数据,类似left join
> >
> >
> 2.维表变化后对应的结果表也要刷新这个场景,你有提到维表数据是亿级别,可想而知事实表数据更大,如果要反向关联全量事实表的数据,感觉不太适合用流处理;如果只是刷新部分的话,倒是可以将n天内的数据暂存至外部存储介质中
> >
> >
> >
> >  回复的原邮件 
> > | 发件人 | 斗鱼<1227581...@qq.com.INVALID> |
> > | 日期 | 2024年06月16日 21:08 |
> > | 收件人 | user-zh > | 抄送至 | |
> > | 主题 | 回复:Flink如何做到动态关联join多张维度表中的n张表? |
> >
> >
> 大佬,目前我们还处在调研阶段,SQL或datastream都可以,目前我们DWD或维度表设计是存在ClickHouse/Doris,目前在设计未来的架构,还没实现,只是想向各位大佬取经,麻烦大佬帮忙指教下
> >
> >
> > 斗鱼
> > 1227581...@qq.com
> >
> >
> >
> > &nbsp;
> >
> >
> >
> >
> > ----------&nbsp;原始邮件&nbsp;--
> > 发件人:
> >  
> "user-zh"
> >
> <
> > xwwan...@163.com&gt;;
> > 发送时间:&nbsp;2024年6月16日(星期天) 晚上9:03
> > 收件人:&nbsp;"user-zh" >
> > 主题:&nbsp;回复:Flink如何做到动态关联join多张维度表中的n张表?
> >
> >
> >
> > 你好,请问你们是用flink sql api还是datastream api实现这个场景的
> >
> >
> >
> >  回复的原邮件 
> > | 发件人 | 斗鱼<1227581...@qq.com.INVALID&gt; |
> > | 日期 | 2024年06月16日 20:35 |
> > | 收件人 | user-zh > | 抄送至 | |
> > | 主题 | Flink如何做到动态关联join多张维度表中的n张表? |
> > 请教下各位大佬,目前我们遇到一个场景:
> > 1、需要往DWD事实表里写入数据的同时,往Kafka里面写该DWD表的记录信息,该信息
> > 2、该Kafka信息会包含一个维度表数据类型的字符串数组
> >
> >
> 3、Flink在做实时消费Kafka中数据,根据类型数组,关联不同的维度表,如数组包含【1,2】,则Flink读取Kafka消息后,将DWD的数据关联维度表1和维度表2后,写入DWS表
> >
> >
> >
> >
> 想请问大佬如何实现根据该数组信息动态关联维度表,这些维度表数据量都挺大的,亿级别的数据,需要能满足维度表变化后,关联后的DWS数据也能变化,不知道是否有什么技术方案能实现,有的话麻烦大佬帮忙给个简单示例或者参考链接,感谢!
> >
> >
> >
> >
> >
> >
> >
> > |
> > |
> > 斗鱼
> > 1227581...@qq.com
> > |
> > &nbsp;


Re: Flink如何做到动态关联join多张维度表中的n张表?

2024-06-19 文章 xiaohui zhang
维表更新后要刷新历史的事实表吗?这个用flink来做的话,几乎不太可能实现,尤其是涉及到多个维表,相当于每次维表又更新了,就要从整个历史数据里面找到关联的数据,重新写入。不管是状态存储,还是更新数据量,需要的资源都太高,无法处理。
在我们目前的实时宽表应用里面,实时表部分一般都是流水类的,取到的维表信息,就应该是业务事实发生时的数据。
维表更新后刷新事实的,一般都是夜间批量再更新。如果有强实时更新需求的,只能在查询时再关联维表取最新值

王旭  于2024年6月16日周日 21:20写道:

> 互相交流哈,我们也在做类似的改造
> 1.不确定需要关联几张维表的话,是否可以直接都关联了,然后再根据驱动数据中的字段判断要取哪几张维度表的数据,类似left join
>
> 2.维表变化后对应的结果表也要刷新这个场景,你有提到维表数据是亿级别,可想而知事实表数据更大,如果要反向关联全量事实表的数据,感觉不太适合用流处理;如果只是刷新部分的话,倒是可以将n天内的数据暂存至外部存储介质中
>
>
>
>  回复的原邮件 
> | 发件人 | 斗鱼<1227581...@qq.com.INVALID> |
> | 日期 | 2024年06月16日 21:08 |
> | 收件人 | user-zh |
> | 抄送至 | |
> | 主题 | 回复:Flink如何做到动态关联join多张维度表中的n张表? |
>
> 大佬,目前我们还处在调研阶段,SQL或datastream都可以,目前我们DWD或维度表设计是存在ClickHouse/Doris,目前在设计未来的架构,还没实现,只是想向各位大佬取经,麻烦大佬帮忙指教下
>
>
> 斗鱼
> 1227581...@qq.com
>
>
>
>  
>
>
>
>
> -- 原始邮件 --
> 发件人:
>   "user-zh"
>                     <
> xwwan...@163.com>;
> 发送时间: 2024年6月16日(星期天) 晚上9:03
> 收件人: "user-zh"
> 主题: 回复:Flink如何做到动态关联join多张维度表中的n张表?
>
>
>
> 你好,请问你们是用flink sql api还是datastream api实现这个场景的
>
>
>
>  回复的原邮件 
> | 发件人 | 斗鱼<1227581...@qq.com.INVALID> |
> | 日期 | 2024年06月16日 20:35 |
> | 收件人 | user-zh | 抄送至 | |
> | 主题 | Flink如何做到动态关联join多张维度表中的n张表? |
> 请教下各位大佬,目前我们遇到一个场景:
> 1、需要往DWD事实表里写入数据的同时,往Kafka里面写该DWD表的记录信息,该信息
> 2、该Kafka信息会包含一个维度表数据类型的字符串数组
>
> 3、Flink在做实时消费Kafka中数据,根据类型数组,关联不同的维度表,如数组包含【1,2】,则Flink读取Kafka消息后,将DWD的数据关联维度表1和维度表2后,写入DWS表
>
>
>
> 想请问大佬如何实现根据该数组信息动态关联维度表,这些维度表数据量都挺大的,亿级别的数据,需要能满足维度表变化后,关联后的DWS数据也能变化,不知道是否有什么技术方案能实现,有的话麻烦大佬帮忙给个简单示例或者参考链接,感谢!
>
>
>
>
>
>
>
> |
> |
> 斗鱼
> 1227581...@qq.com
> |
>