我有兴趣了解以下火花并行和分区的细节
我在一个表中有一个倾斜的数据,然后将它与其他小的表进行比较。我知道在连接的情况下加盐工作 - 即随机数附加到大表中的键,其中包含来自一系列随机数据的倾斜数据,并且小表中没有倾斜数据的行与相同范围的随机数重复. 因此,匹配发生是因为在偏斜特定键的重复值中会有一个命中我还读到在执行 groupby 时加盐是有帮助的。我的问题是当随机数附加到密钥时,它不会破坏组吗?如果是,则 group by 操作的含义已更改。
Flink 中关于事件时间处理的水印是什么?为什么需要它。?为什么在所有使用事件时间的情况下都需要它。在所有情况下,我的意思是如果我不进行窗口操作那么为什么我们仍然需要水印。我来自火花背景。在 Spark 中,仅当我们在传入事件上使用窗口时才需要水印。
我读过几篇文章,在我看来,水印和窗口似乎是一样的。如果有差异,请解释并指出
发表你的回复我做了更多阅读。下面是一个更具体的查询。
主要问题:- 当我们接受迟到时,为什么还需要乱序。
假设
您有一个 BoundedOutOfOrdernessTimestampExtractor,其边界为 2 分钟,滚动窗口为 10 分钟,该窗口从 12:00 开始,到 12:10 结束:
12:01, A
12:04, B
WM, 12:02 // 12:04 - 2 分钟
12:02、中
12:08、深
12:14、东
西 西、12:12
12:16、西
西、12:14 // 12:16 - 2 分钟
12:09、西
在上面的示例中,[12:02, C] 记录不会被删除,而是包含在窗口 12:00 -12:10 中并稍后进行评估。-因此,水印也可以是事件时间戳
仅当配置了可接受的迟到时间 5 分钟时,记录 [12:09, G] 才会包含在窗口 12:00 - 12:10 中。这可以处理延迟和无序事件
所以现在添加我上面的问题,outoforder 选项必须是某个值(0 除外)的 BoundedOutOfOrdernessTimestampExtractor 而不是事件时间戳 istelf 吗?
什么是乱序可以实现而 allowedlateness 不能实现的以及在什么情况下可以实现?
我试图理解下面的物理计划。但我有几个疑问
== Physical Plan ==
*(13) Project [brochure_click_uuid#32, brochure_id#88L, page#36L, duration#188L]
+- *(13) BroadcastHashJoin [brochure_click_uuid#32], [brochure_click_uuid#87], Inner, BuildRight
:- *(13) HashAggregate(keys=[brochure_click_uuid#32, page#36L], functions=[sum(duration#142L)])
: +- Exchange hashpartitioning(brochure_click_uuid#32, page#36L, 200)
: +- *(11) HashAggregate(keys=[brochure_click_uuid#32, page#36L], functions=[partial_sum(duration#142L)])
: +- Union
: :- *(5) Project [brochure_click_uuid#32, page#36L, CASE WHEN (event#34 = EXIT_VIEW) THEN null ELSE (unix_timestamp(_we0#143, yyyy-MM-dd'T'HH:mm:ss, Some(Asia/Calcutta)) - unix_timestamp(date_time#48, yyyy-MM-dd'T'HH:mm:ss, Some(Asia/Calcutta))) END AS duration#142L]
: : +- *(5) Filter ((isnotnull(event#34) && NOT (event#34 = EXIT_VIEW)) && isnotnull(CASE WHEN (event#34 = EXIT_VIEW) THEN …Run Code Online (Sandbox Code Playgroud)