CQL概念

CQL概念CQL 概念

1. CQL概念:CQL(continuous query language)是一个基于SQL的声明式语言, 它用于在流(streams)和可更新关系(updatable relation)上进行可持续查询。

 

2. CQL 定义了两种数据类型语言:stream 和 relation。CQL中的relation与传统relation相比,CQL中的relation增加了时间概念。

 

3. CQL 定义了三种操作类型:stream-to-relation,relation-to-relation,relation-to-stream。

  • stream-to-relation: 由流产生关系。CQL使用从SQL-99派生出来的窗口特定语言去处理s-r操作。其中SQL-99是一个SQL的标准。目前所有在CQL上的s-r操作都给予滑动窗口的概念。CQL中的滑动窗口的操作分为三类:time-based sliding window(基于时间的滑动窗口),tuple-based window(基于行的滑动窗口)和partitioned window(基于属性划分的滑动窗口)。其中partitioned window,即根据属性A1,A2…Ak将流S逻辑划分成几个子流,类似于SQL中的Group By。
  • relation-to-relation: 由关系产生关系。CQL使用SQL来表示r-r操作。但从技术上讲,CQL不是直接导入现有的传统关系操作,因为CQL中的关系增加了时间概念。所以,CQL在两种关系间做了映射。若Or表示传统关系R1,R2…Rn上的操作,则CQL上的关系操作Oc则可表示为,在时间t产生的关系R(t)= Or(R1(t),R1(t),…Rn(t))
  • relation-to-stream: 由关系产生流。CQL定义了三种具体的r-s操作,分别是Istream,Dsream和Rstream。Istream(insert stream),Dsream(delete stream),Rstream(relation stream)

4. CQL 处理过程举例:

    s-s:由一个流产生一个新流:

  1.     将流转化为关系 turn the stream into a relation
  2.     处理该关系 perform a relation filter
  3.     将关系结果转换回流形式 turn the relation back into a stream 

    从该例中可以看出CQL充分利用SQL操作,利用流和关系之间的转化来解决在流和关系上进行可持续查询的问题。

 

5. 一般定义可以可持续查询语言的步骤:

  1. 找到一个关系查询语言。Take a relational query language
  2. 将对关系的引用替换为对流的引用。 Replace references to relations with references to streams
  3. 注册流处理器的查询。 register the query with the stream processor
  4. 等待结果。 wait the answers to arrive

  注意聚合,子查询,窗口机制,流与关系的混合查询等这些较复杂问题。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/213150.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午6:27
下一篇 2026年3月18日 下午6:27


相关推荐

  • 计算机网络协议详解怎么写_自考短线好还是长线好

    计算机网络协议详解怎么写_自考短线好还是长线好计算机网络协议详解:本篇文章主要总结一些常见的网络基础概念以及Linux系统中的网络相关设置方法,具体包括OSI七层协议、TCP/IP协议相关内容。

    2022年10月2日
    9
  • 计算机病毒教学评课,计算机病毒评课稿.pdf

    计算机病毒教学评课,计算机病毒评课稿.pdf计算机病毒评课稿教学对象及学情分析:本课主要是针对高一计算机学生。他们能够自主完成一定的操作,但对于信息安全没有足够的认识,此时这方面的知识和技能正是学生感兴趣的,同时也是学生必须得掌握的。二、教学目标。(1)知识目标:掌握计算机病毒的概念和如何发现计算机病毒,熟悉计算机病毒的传染途径和危害性,知道如何防治计算机病毒。(2)能力目标熟悉并掌握一些杀毒软件的使用方法如360杀毒、瑞星等,并且当…

    2022年5月10日
    43
  • es6数组处理方法整理

    es6数组处理方法整理数组常用.push().pop().unshift().shift().splice(i,n)删除,原数组被从i删除n个元素,返回被删掉的元素.slice(start,end)获取子数组,原数组不变,返回切出来的元素.concat().split()字符串变数组.sort()排序.reverse()翻转遍历处理.map(callback)遍历处…

    2022年5月24日
    42
  • fiddler抓取不了PC端微信小程序的包解决方法

    fiddler抓取不了PC端微信小程序的包解决方法fiddler 抓取不了微信小程序的包最近突然遇到微信抓取不到小程序包 之前都是好的 但突然就凉凉了 经过不懈的查找终于在某个大佬的文章找到解决方法 原址在这里 https mbd baidu com ma s VwHQ8Rom 以下是自己的操作记录 打开小程序 然后打开任务管理器找到小程序的应用 右键点击小程序 或者 MiniPrograms 打开文件所在位置 在 Plugins 下有个 WMPFRuntime 包先将小程序和微信都关闭掉 然后将 WMPFRuntime 包内的文件都删除掉 关闭电脑防火

    2026年3月16日
    3
  • laravel查询构造器DB还是ORM,这两者有什么区别,各该用在什么场景中

    laravel查询构造器DB还是ORM,这两者有什么区别,各该用在什么场景中

    2021年11月9日
    43
  • 收藏几款好用的网页下载工具(网页下载器)「建议收藏」

    收藏几款好用的网页下载工具(网页下载器)「建议收藏」收藏几款好用的网页下载工具(网页下载器)引言webzipTeleportUltraTeleportUltra小飞兔下载MihovPictureDownloaderWinHTTrackHTTrack仿站小工具引言有的人利用网页下载工具下载网站到本地进行慢慢的欣赏,有的人利用下载工具创建垃圾站。不管你是出于什么样的目的,下面这些工具软件你可以会需要。webzip一款国外的网页下载器,把一个网站下载并压缩到一个单独的ZIP文件中,可以帮您将某个站台全部或部份之资料以ZIP格式压缩起来,可供你日后

    2022年6月11日
    1.0K

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号