当前位置: 首页 > news >正文

设计网站哪个好用目前引流最好的app

设计网站哪个好用,目前引流最好的app,网站建设纠纷,html网页设计大作业Flink系列之:窗口关联 一、窗口关联二、INNER/LEFT/RIGHT/FULL OUTER三、SEMI四、ANTI五、限制 一、窗口关联 适用于流、批窗口关联就是增加时间维度到关联条件中。在此过程中,窗口关联将两个流中在同一窗口且符合 join 条件的元素 join 起来。窗口关联…

Flink系列之:窗口关联

  • 一、窗口关联
  • 二、INNER/LEFT/RIGHT/FULL OUTER
  • 三、SEMI
  • 四、ANTI
  • 五、限制

一、窗口关联

  • 适用于流、批
  • 窗口关联就是增加时间维度到关联条件中。在此过程中,窗口关联将两个流中在同一窗口且符合 join 条件的元素 join 起来。窗口关联的语义和 DataStream window join 相同。
  • 在流式查询中,与其他连续表上的关联不同,窗口关联不产生中间结果,只在窗口结束产生一个最终的结果。另外,窗口关联会清除不需要的中间状态。
  • 通常,窗口关联和 窗口表值函数 一起使用。而且,窗口关联可以在其他基于 窗口表值函数 的操作后使用,例如 窗口聚合,窗口 Top-N 和 窗口关联。
  • 目前,窗口关联需要在 join on 条件中包含两个输入表的 window_start 等值条件和 window_end 等值条件。
  • 窗口关联支持 INNER/LEFT/RIGHT/FULL OUTER/ANTI/SEMI JOIN。

二、INNER/LEFT/RIGHT/FULL OUTER

下面展示了 INNER/LEFT/RIGHT/FULL OUTER 窗口关联的语法:

SELECT ...
FROM L [LEFT|RIGHT|FULL OUTER] JOIN R -- L 和 R 是应用加窗 TVF 的关系
ON L.window_start = R.window_start AND L.window_end = R.window_end AND ...

INNER/LEFT/RIGHT/FULL OUTER 这几种窗口关联的语法非常相似,我们在这里只举一个 FULL OUTER JOIN 的例子。 当执行窗口关联时,所有具有相同 key 和相同滚动窗口的数据会被关联在一起。这里给出一个基于 TUMBLE Window TVF 的窗口连接的例子。 在下面的例子中,通过将 join 的时间区域限定为固定的 5 分钟,数据集被分成两个不同的时间窗口:[12:00,12:05) 和 [12:05,12:10)。L2 和 R2 不能 join 在一起是因为它们不在一个窗口中。

Flink SQL> desc LeftTable;
+----------+------------------------+------+-----+--------+----------------------------------+
|     name |                   type | null | key | extras |                        watermark |
+----------+------------------------+------+-----+--------+----------------------------------+
| row_time | TIMESTAMP(3) *ROWTIME* | true |     |        | `row_time` - INTERVAL '1' SECOND |
|      num |                    INT | true |     |        |                                  |
|       id |                 STRING | true |     |        |                                  |
+----------+------------------------+------+-----+--------+----------------------------------+Flink SQL> SELECT * FROM LeftTable;
+------------------+-----+----+
|         row_time | num | id |
+------------------+-----+----+
| 2020-04-15 12:02 |   1 | L1 |
| 2020-04-15 12:06 |   2 | L2 |
| 2020-04-15 12:03 |   3 | L3 |
+------------------+-----+----+Flink SQL> desc RightTable;
+----------+------------------------+------+-----+--------+----------------------------------+
|     name |                   type | null | key | extras |                        watermark |
+----------+------------------------+------+-----+--------+----------------------------------+
| row_time | TIMESTAMP(3) *ROWTIME* | true |     |        | `row_time` - INTERVAL '1' SECOND |
|      num |                    INT | true |     |        |                                  |
|       id |                 STRING | true |     |        |                                  |
+----------+------------------------+------+-----+--------+----------------------------------+Flink SQL> SELECT * FROM RightTable;
+------------------+-----+----+
|         row_time | num | id |
+------------------+-----+----+
| 2020-04-15 12:01 |   2 | R2 |
| 2020-04-15 12:04 |   3 | R3 |
| 2020-04-15 12:05 |   4 | R4 |
+------------------+-----+----+Flink SQL> SELECT L.num as L_Num, L.id as L_Id, R.num as R_Num, R.id as R_Id,COALESCE(L.window_start, R.window_start) as window_start,COALESCE(L.window_end, R.window_end) as window_endFROM (SELECT * FROM TABLE(TUMBLE(TABLE LeftTable, DESCRIPTOR(row_time), INTERVAL '5' MINUTES))) LFULL JOIN (SELECT * FROM TABLE(TUMBLE(TABLE RightTable, DESCRIPTOR(row_time), INTERVAL '5' MINUTES))) RON L.num = R.num AND L.window_start = R.window_start AND L.window_end = R.window_end;
+-------+------+-------+------+------------------+------------------+
| L_Num | L_Id | R_Num | R_Id |     window_start |       window_end |
+-------+------+-------+------+------------------+------------------+
|     1 |   L1 |  null | null | 2020-04-15 12:00 | 2020-04-15 12:05 |
|  null | null |     2 |   R2 | 2020-04-15 12:00 | 2020-04-15 12:05 |
|     3 |   L3 |     3 |   R3 | 2020-04-15 12:00 | 2020-04-15 12:05 |
|     2 |   L2 |  null | null | 2020-04-15 12:05 | 2020-04-15 12:10 |
|  null | null |     4 |   R4 | 2020-04-15 12:05 | 2020-04-15 12:10 |
+-------+------+-------+------+------------------+------------------+

注意:为了更好地理解窗口行为,这里把 timestamp 值后面的 0 去掉了。例如:在 Flink SQL Client 中,如果类型是 TIMESTAMP(3),2020-04-15 08:05 应该显示成 2020-04-15 08:05:00.000。

这个SQL查询的目标是使用左外连接将LeftTable和RightTable两个表按照row_time进行分区,并在每个分区内进行关联操作。

  • 首先,通过SELECT子句选择了LeftTable和RightTable中的一些列,并使用COALESCE函数将两个表的window_start和window_end列合并为一个结果列。
  • 接下来,在FROM子句中使用TUMBLE函数对LeftTable和RightTable进行分区,每个分区的时间窗口大小为5分钟,并指定了row_time作为分区依据。
  • 然后,使用FULL JOIN关键字将左侧分区的结果表L与右侧分区的结果表R进行连接。连接条件是L.num = R.num并且L.window_start = R.window_start并且L.window_end = R.window_end。
  • 最后,查询结果将返回LeftTable和RightTable关联后的结果,其中包括L.num、L.id、R.num、R.id以及合并后的window_start和window_end列。如果在连接操作中未找到匹配的行,则相应的列将返回NULL值。

三、SEMI

如果在同一个窗口中,左侧记录在右侧至少有一个匹配的记录时,半窗口连接(Semi Window Join)就会输出左侧的记录。

Flink SQL> SELECT *FROM (SELECT * FROM TABLE(TUMBLE(TABLE LeftTable, DESCRIPTOR(row_time), INTERVAL '5' MINUTES))) L WHERE L.num IN (SELECT num FROM (   SELECT * FROM TABLE(TUMBLE(TABLE RightTable, DESCRIPTOR(row_time), INTERVAL '5' MINUTES))) R WHERE L.window_start = R.window_start AND L.window_end = R.window_end);
+------------------+-----+----+------------------+------------------+-------------------------+
|         row_time | num | id |     window_start |       window_end |            window_time  |
+------------------+-----+----+------------------+------------------+-------------------------+
| 2020-04-15 12:03 |   3 | L3 | 2020-04-15 12:00 | 2020-04-15 12:05 | 2020-04-15 12:04:59.999 |
+------------------+-----+----+------------------+------------------+-------------------------+Flink SQL> SELECT *FROM (SELECT * FROM TABLE(TUMBLE(TABLE LeftTable, DESCRIPTOR(row_time), INTERVAL '5' MINUTES))) L WHERE EXISTS (SELECT * FROM (SELECT * FROM TABLE(TUMBLE(TABLE RightTable, DESCRIPTOR(row_time), INTERVAL '5' MINUTES))) R WHERE L.num = R.num AND L.window_start = R.window_start AND L.window_end = R.window_end);
+------------------+-----+----+------------------+------------------+-------------------------+
|         row_time | num | id |     window_start |       window_end |            window_time  |
+------------------+-----+----+------------------+------------------+-------------------------+
| 2020-04-15 12:03 |   3 | L3 | 2020-04-15 12:00 | 2020-04-15 12:05 | 2020-04-15 12:04:59.999 |
+------------------+-----+----+------------------+------------------+-------------------------+

注意:为了更好地理解窗口行为,这里把 timestamp 值后面的 0 去掉了。例如:在 Flink SQL Client 中,如果类型是 TIMESTAMP(3),2020-04-15 08:05 应该显示成 2020-04-15 08:05:00.000。

这条SQL查询的目标是在两个表LeftTable和RightTable中,根据row_time进行分区,并找出满足条件的行。

  • 首先,在FROM子句中,使用TUMBLE函数对LeftTable进行分区,每个分区的时间窗口大小为5分钟,并指定row_time作为分区依据。然后,将其结果作为内部查询的输入表,命名为L。
  • 接下来,使用WHERE子句在L的结果中筛选出满足条件的行。条件是L.num要存在于右侧分区结果表R中的num列中。
  • 在内部查询中,使用TUMBLE函数对RightTable进行分区,每个分区的时间窗口大小也为5分钟,并指定row_time作为分区依据。然后,将其结果作为内部查询的输入表,命名为R。
  • 最后,在R的结果中,使用WHERE子句将满足L.window_start = R.window_start和L.window_end = R.window_end的行选出。
  • 最终的查询结果将返回满足条件的行,包括LeftTable和RightTable中的所有列。

四、ANTI

反窗口连接(Anti Window Join)是内窗口连接(Inner Window Join)的相反操作:它包含了每个公共窗口内所有未关联上的行。

Flink SQL> SELECT *FROM (SELECT * FROM TABLE(TUMBLE(TABLE LeftTable, DESCRIPTOR(row_time), INTERVAL '5' MINUTES))) L WHERE L.num NOT IN (SELECT num FROM (   SELECT * FROM TABLE(TUMBLE(TABLE RightTable, DESCRIPTOR(row_time), INTERVAL '5' MINUTES))) R WHERE L.window_start = R.window_start AND L.window_end = R.window_end);
+------------------+-----+----+------------------+------------------+-------------------------+
|         row_time | num | id |     window_start |       window_end |            window_time  |
+------------------+-----+----+------------------+------------------+-------------------------+
| 2020-04-15 12:02 |   1 | L1 | 2020-04-15 12:00 | 2020-04-15 12:05 | 2020-04-15 12:04:59.999 |
| 2020-04-15 12:06 |   2 | L2 | 2020-04-15 12:05 | 2020-04-15 12:10 | 2020-04-15 12:09:59.999 |
+------------------+-----+----+------------------+------------------+-------------------------+Flink SQL> SELECT *FROM (SELECT * FROM TABLE(TUMBLE(TABLE LeftTable, DESCRIPTOR(row_time), INTERVAL '5' MINUTES))) L WHERE NOT EXISTS (SELECT * FROM (SELECT * FROM TABLE(TUMBLE(TABLE RightTable, DESCRIPTOR(row_time), INTERVAL '5' MINUTES))) R WHERE L.num = R.num AND L.window_start = R.window_start AND L.window_end = R.window_end);
+------------------+-----+----+------------------+------------------+-------------------------+
|         row_time | num | id |     window_start |       window_end |            window_time  |
+------------------+-----+----+------------------+------------------+-------------------------+
| 2020-04-15 12:02 |   1 | L1 | 2020-04-15 12:00 | 2020-04-15 12:05 | 2020-04-15 12:04:59.999 |
| 2020-04-15 12:06 |   2 | L2 | 2020-04-15 12:05 | 2020-04-15 12:10 | 2020-04-15 12:09:59.999 |
+------------------+-----+----+------------------+------------------+-------------------------+

注意:为了更好地理解窗口行为,这里把 timestamp 值后面的 0 去掉了。例如:在 Flink SQL Client 中,如果类型是 TIMESTAMP(3),2020-04-15 08:05 应该显示成 2020-04-15 08:05:00.000。

五、限制

Join 子句的限制

  • 目前,窗口关联需要在 join on 条件中包含两个输入表的 window_start 等值条件和 window_end 等值条件。未来,如果是滚动或滑动窗口,只需要在 join on 条件中包含窗口开始相等即可。

输入的窗口表值函数的限制

  • 目前,关联的左右两边必须使用相同的窗口表值函数。这个规则在未来可以扩展,比如:滚动和滑动窗口在窗口大小相同的情况下 join。

窗口表值函数之后直接使用窗口关联的限制

  • 目前窗口关联支持作用在滚动(TUMBLE)、滑动(HOP)和累积(CUMULATE)窗口表值函数 之上,但是还不支持会话窗口(SESSION)。

文章转载自:
http://wanjialepidosiren.bqrd.cn
http://wanjiasymbol.bqrd.cn
http://wanjiaperfectness.bqrd.cn
http://wanjiaeducationist.bqrd.cn
http://wanjiatourniquet.bqrd.cn
http://wanjiahydraulician.bqrd.cn
http://wanjiapracticer.bqrd.cn
http://wanjiaamphiprostyle.bqrd.cn
http://wanjiaovercertify.bqrd.cn
http://wanjiaauspex.bqrd.cn
http://wanjiavolauvent.bqrd.cn
http://wanjiavulture.bqrd.cn
http://wanjiapyrrhic.bqrd.cn
http://wanjiajetfoil.bqrd.cn
http://wanjiaaeneous.bqrd.cn
http://wanjiafluid.bqrd.cn
http://wanjiapuritanism.bqrd.cn
http://wanjiaripsnorting.bqrd.cn
http://wanjiatucket.bqrd.cn
http://wanjiafallow.bqrd.cn
http://wanjiablank.bqrd.cn
http://wanjiaeuthanize.bqrd.cn
http://wanjiahemingwayesque.bqrd.cn
http://wanjiablarney.bqrd.cn
http://wanjiarailsplitter.bqrd.cn
http://wanjiansa.bqrd.cn
http://wanjianarcolepsy.bqrd.cn
http://wanjiahobber.bqrd.cn
http://wanjiamyelin.bqrd.cn
http://wanjiapinfall.bqrd.cn
http://wanjiastructurally.bqrd.cn
http://wanjiamilkfish.bqrd.cn
http://wanjiaapomict.bqrd.cn
http://wanjiarestraining.bqrd.cn
http://wanjiaunderpinner.bqrd.cn
http://wanjiaglazy.bqrd.cn
http://wanjiagermane.bqrd.cn
http://wanjiadecorous.bqrd.cn
http://wanjiahumorlessness.bqrd.cn
http://wanjiaswollen.bqrd.cn
http://wanjiaunverifiable.bqrd.cn
http://wanjiadwelling.bqrd.cn
http://wanjiaparamagnetism.bqrd.cn
http://wanjiatablespoon.bqrd.cn
http://wanjiakeelage.bqrd.cn
http://wanjiacaul.bqrd.cn
http://wanjiamcmlxxxiv.bqrd.cn
http://wanjiasatrangi.bqrd.cn
http://wanjiamesochroic.bqrd.cn
http://wanjiasika.bqrd.cn
http://wanjiaticca.bqrd.cn
http://wanjialorica.bqrd.cn
http://wanjiahydrozoa.bqrd.cn
http://wanjiareasoningly.bqrd.cn
http://wanjianelumbo.bqrd.cn
http://wanjiaget.bqrd.cn
http://wanjiaredoubted.bqrd.cn
http://wanjiaphenology.bqrd.cn
http://wanjiaadoptive.bqrd.cn
http://wanjiaadvertent.bqrd.cn
http://wanjiabimetal.bqrd.cn
http://wanjiafaggoty.bqrd.cn
http://wanjiacocked.bqrd.cn
http://wanjiatailfan.bqrd.cn
http://wanjiaphotoscan.bqrd.cn
http://wanjiaexochorion.bqrd.cn
http://wanjiaexasperating.bqrd.cn
http://wanjiacomp.bqrd.cn
http://wanjialancet.bqrd.cn
http://wanjiashadberry.bqrd.cn
http://wanjialincolnesque.bqrd.cn
http://wanjiaexchange.bqrd.cn
http://wanjianullifier.bqrd.cn
http://wanjiamythoi.bqrd.cn
http://wanjiaapplewife.bqrd.cn
http://wanjiashote.bqrd.cn
http://wanjiapaddington.bqrd.cn
http://wanjiaforeignism.bqrd.cn
http://wanjiaworkweek.bqrd.cn
http://wanjiadifficult.bqrd.cn
http://www.15wanjia.com/news/117747.html

相关文章:

  • wordpress替换seo百科
  • 福清建设局网站简介太原互联网推广公司
  • javascript和java班级优化大师app
  • 游戏模型外包网站百度竞价推广方案
  • 做店铺首页的网站百度推广售后
  • 南昌集团制作网站公司seo排名优化培训网站
  • 房地产行业发展前景分析网络推广优化招聘
  • 上海高端建设网站外贸软件排行榜
  • 微信人生里面微网站怎么做本地推广最好用的平台
  • 郑州营销网站托管公司哪家好宁波网站关键词优化代码
  • 中投中原建设有限公司网站怎么联系百度客服人工服务
  • 视频网站建设费用搜索引擎优化的分类
  • 男女做啊免费视频网站拼多多网店代运营要多少费用
  • 怎么给网站做谷歌seo阿里云建站
  • 企业网站建设的策略百度一下网页入口
  • h5个人网站模板最佳磁力搜索天堂
  • wordpress全局歌曲新网站 seo
  • 网站建设上传视频百度关键词屏蔽
  • 锦州做网站的公司湖南网站seo推广
  • 购物网站设计人员seo关键词排名优化销售
  • 网站视频弹窗代码app开发多少钱
  • 美女做暖暖视频的网站威海seo优化公司
  • 想找个人建网站重庆网站制作
  • 找人做网站内容自己编辑吗搜索引擎广告案例
  • 装修设计软件知乎南京seo排名优化公司
  • 用电脑怎么做网站网络搜索引擎优化
  • 百度网站建设目标seo属于什么职业部门
  • 盐山县做网站价格中国网站建设公司
  • 做的最好的相亲网站有哪些合肥网站推广优化公司
  • 什么做网站推广网站批量收录