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

建站资讯互联网建筑公司

建站资讯,互联网建筑公司,在线做插画的网站,3建网站1、Flink SQL中的动态表和连续查询 1、动态表: 因为Flink是可以做实时的,数据是在不断的变化的,所以动态表指的是Flink中一张实时变换的表,表中会不断的有新的数据。但是这张表并不是真正的物理表。 2、连续查询: 连续…
1、Flink SQL中的动态表和连续查询
        1、动态表:

                因为Flink是可以做实时的,数据是在不断的变化的,所以动态表指的是Flink中一张实时变换的表,表中会不断的有新的数据。但是这张表并不是真正的物理表。

        2、连续查询:

                连续不断的查询,因为Flink中的数据是实时不断的,所以在SQL查询数据的时候,查询是连续不断的。

2、Flink SQL 的大致流程

        1、首先会将Flink中的流转化成一张动态表,在流上定义一张表,但是在流上定义的一张表内部没有物化。

         在使用SQL的前提就是需要有一张表,在Flink流中定义的定义的一张表,就是将Flink流中的数据给定义一下字段的名称,表的类型,数据类型等一些表该具备的条件,这让能使用SQL查询。

        2、此时就会在这张动态表上会做连续查询,将查询的结果再分装成一个动态表

对于连续查询也是需要维护转状态的,因为每次的查询都会使用到上一次查询的数据,所以查询的表数据(动态表)是存储在状态中的。但是Flink SQL 中的开窗是不需要进行维护状态的。

        3、然后在将生成的动态表转换成一个Flink中的流。

需要注意的是:

                1、首先动态表是一个逻辑概念,不是一张物理表,就类似MySQL中的视图,可以做查询但是不存储数据,因为是流处理,所以当流来一条数据,就处理一条数据,然后将处理的结果返回出去,所以是不存储数据

                2、在查询执行期间不一定物化动态表。

3、更新和追加查询:
        第一种查询,如下图所示:

                当第一条数据进入时,会产生一条数据,此时结果表中产生第一条数据,是属于insert,当流中的第二条数据进入时,因为在结果表中并没有这条数据,所以也是属于insert的操作,当第三条数据进入的时候,此时的结果表中的数据就发生改变,数据并不是在insert,而是在update

        第二种查询,如下图所示: 

                此时在Flink的SQL中做开窗查询,滑动的事件时间查询,此时结果表展示是每个窗口数据,只有insert的操作。

 虽然两种实力查询看起来非常的相似,但是它们在一个重要方面不同:

        第一个查询更新先前输出的结果,即定义结果表的 changelog 流包含 INSERT 和 UPDATE 操作。

        第二个查询只附加到结果表,即结果表的 changelog 流只包含 INSERT 操作。

两者都有其分别的的含义:

       1、 产生一个更新更改的查询通常必须维护更多的状态,因为需要使用到之前的数据

        2、将一个append-only的表转化成流与一个将已更新的表转化成的流是不相同的。

4、查询限制:
        1、状态大小

连续查询在无界流中的查询,通常的计算时间会比较长,随着时间的推移,所需要维护的状态就会越来大,随着时间的推移,就有可能会导致任务失败。

        2、计算更新

比如查询的计算量特别的大,对于这些需要重新计算和更新大量已经输出的结果表,如果随便的添加一行或者更新更新一行数据,那么计算压力会非常的大,有可能会导致任务失败。

5、表到流的转换:

        将动态表转化成一个流或将其写入到外部系统中,对这些更改进行编码。Flink的 Table API 和 SQL 支持三种方式来编码一个动态表的变化:

        1、Append-Only 流(仅追加流):

                指的是连续查询后的结果表中数据是通过insert操作追加的动态表转换成的流。

        2、ReTract 流(撤回流):retract 流包含两种类型的 message: add messages 和 retract messages 。

例如下图的表中显示的,当第一条和第二条数据数据进来的时候,此时的结果是还一条流,当第三条数据进来的时候,由于数据已经存在流中,此时就会产生两条结果,分别进行删除和更新,删除产生一个与存在流中相反的数据,与其抵消,然后再产生一个新的数据。例如图中原先流中的 + Mary 1已经存在,此时就会产生一个 - Mary 1与其抵消,然后在更新一个 + Mary 2发送到流中。

        3、Upsert流

upsert 流包含两种类型的 message: upsert messages 和delete messages。

是将动态中表中的数据写入到流中,当写入到流中的数据相同时,会自动的更新或插入数据。

        

               

http://www.yayakq.cn/news/395822/

相关文章:

  • 公司网站手机版模板wordpress custom fields
  • 网站里做个子网页怎么做优化设计六年级下册数学答案
  • 网站怎么才能吸引人景观设计公司名称
  • 申请收费网站空间网站建设公司如何生存
  • 建网站知识低调与华丽wordpress版
  • 网站建设廾金手指专业壹柒网络营销的多种形式和特点
  • asp网站转wap网站网络运营怎么学
  • 知名的食品行业网站开发wordpress恢复默认链接
  • 池州家居网站建设怎么样免费网络在线打电话
  • 视频变成网站怎么做邯郸市
  • 品牌建设成果镇江网站关键字优化公司
  • 做个人网站需要哪些跨境数据专线内部管理
  • 金融中介做网站需要企业做网站价格
  • 企业公司网站管理系统建设智能家居网站SWOT分析
  • 企业网站建设主要类型及选择腾讯网站建设推广
  • 京东建站模板wordpress nikkon
  • 网站模块图深圳做响应式网站制作
  • 盐亭做网站如何修改网站ico
  • 那些小网站是哪里人做的网站开发公用头部
  • 上海自建网站电脑网站建设方案
  • 涵江建设局网站司法网站建设运营情况
  • 做招聘网站没有数据wordpress制作游戏
  • 视频网站直播怎么做的论坛的网站开发项目
  • app开发与网站建设难度做网站优化就是发文章吗
  • 学院网站建设流程图沂水网站制作
  • 建站开发株洲网站建设制作
  • 旅游公司网站制作做网站想要中立
  • wordpress网站音乐播放网站建设费用评估
  • 东莞php网站建设价格大学网站建设招标
  • 建设企业网站模板线下推广小组所述的推广方案是针对哪两个团体