概述
目标读者
本文档专供需要对Streaming进行CQL二次开发的用户使用。本指南主要适用于具备SQL开发经验和Java开发经验的开发人员。
简介
CQL(Continuous Query Language), 持续查询语言, 用于数据流上的查询语言。相对于标准的SQL,CQL加入了窗口的概念,使得数据可以一直保存在内存中,由此可以快速进行大量内存计算,CQL的输出结果为数据流在某一时刻的计算结果。
CQL具有如下几个特点:
- 使用简单: CQL语法和标准SQL语法类似,只要具备SQL基础,都可以快速进行开发。
- 功能丰富: CQL除了包含标准SQL的各类基本表达式等功能之外,还特别针对流处理场景增加了窗口,窗口前过滤,窗口后过滤,并发度设置等功能,满足多种实时业务处理场景。
- 易于拓展: CQL提供了拓展接口,以支撑日益复杂的业务场景,用户可以自定义输入、输出、序列化、反序列化等并结合已有功能来满足灵活的业务场景。
- 易于调试: CQL提供了详细的异常码说明,降低了用户对于各种错误的处理难度,提升了易用性。
基本概念
Window
窗口(window)是流处理中解决事件的无边界(unbounded)及流动性的一种重要手段,把事件流在某一时刻变成静态的视图,以便进行类似数据库表的各种查询操作。
表达式
符号和运算符的一种组合,CQL解析引擎处理该组合以获取单个值。简单表达式可以是常量、变量或者函数,可以用运算符将两个或者多个简单表达式联合起来构成更复杂的表达式。
keytab文件
存放用户信息的密钥文件。应用程序采用此密钥文件在FusionInsight HD中进行API方式认证。