Flink流计算中SQL表的概念和原理

本文介绍了Flink 1.7版本中流计算中的动态表和SQL查询概念。动态表是流处理中不断接收并扩展的数据状态表,随时间更新,其时间属性在处理中起到关键作用。动态查询则是对这些动态表的连续查询,每次结果可能不同。文中还探讨了如何利用时间属性进行数据存取和查询,以及资源与准确性的平衡。
摘要由CSDN通过智能技术生成

前言


Fink在新发布的1.7版本中,不断完善和加强了SQL&Table API方面的功能支持。这使得在流计算过程中,用户同样能够运用熟悉的SQL语句来做数据处理,查询。但是相比于窗体的RDBMS而言,流计算过程中的SQL处理难免让人觉得不是很好理解,毕竟数据不是fixed-sized的,而是连续不断的。所以本文,笔者来聊聊这个略显抽象的概念:流计算过程中的表以及SQL查询的含义。

动态表和动态查询的概念


在流处理过程中,数据是连续的,所以当我们把这些连续接收到的数据记录汇聚到一起然后做呈现的时候,它其实是一种“动态”表。当不断有新的数据来到的时候,这个动态表就不断扩增。所以动态表在这里更恰当的比喻应该是一种状态表信息。当然鉴于这个表的空间有限(状态数据存储受限),后面来的数据要么会覆盖早期相同的数据,要么这个表中过期的数据会被移除。以此维护这个状态表的数据信息。当然,在流式计算中,每一条数据都有一个自带天然属性的信息,就是时间,它可以是process time,又或者说是event time。以下是一张历史访问频率动态表的数据内容信息,它在Flink内部是以State(3个字段域组成)的形式驻留。

SELECT * FROM RatesHistory;

rowtime currency   rate
======= ==
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值