CQL开发

需求:对Storm进行CQL二次开发

CQL,持续查询语言,用于数据流上的查询语言。

相对于标准SQL,CQL加入了窗口的概念,使得数据可以一直保存在内存中,由此可以快速进行大量内存计算

特点:

  • 使用简单

语法与标准SQL类似

  • 功能丰富

包含标准SQL的各类基本表达式,特别针对流处理场景增加了窗口、窗口前过滤、窗口后过滤、并发度设置等功能,满足多种实时业务处理场景。

  • 易于拓展

提供了拓展接口,用户可以自定义输入、输出、序列化、反序列化等。

  • 易于调试

提供了详细的异常码说明。

常用概念

  • window

窗口是流处理中解决事件的无边界及流动性的一种重要手段,把事件流在某一个时刻变成静态的视图,以便进行类似数据库表的各种查询操作。

// -----------------
// 查询结果只包含 name、score 以及内置字段 objectId、createdAt 和 updatedAt
// 默认返回 100 条数据,使用 limit 来更改
select name,score from GameScore

// 根据 name 查找
select * from GameScore where name='dennis'

// 根据 name 和 score 同时查找
select * from GameScore where name is exists and score > 80 and score <= 100

// 分页查找,从第 100 条开始向后查找 10 条数据
select * from GameScore limit 100,10

// 根据 score 和 name 排序
select * from GameScore order by score,+name desc

// -----------------
// 插入一条数据
insert into GameScore(name, score) values('leancloud', 100)

// -----------------
// 更新一条数据,必须提供 objectId
update GameScore set score=90 where objectId='558e20cbe4b060308e3eb36c'

// -----------------
// 删除一条数据,必须提供 objectId 
delete from GameScore where objectId='558e20cbe4b060308e3eb36c'

建议

CQL 最终还是转换成 REST API 里查询部分提到的各种 where 条件,因为多了一层转换,理论上会比直接使用 where 查询慢一点。并且 CQL 对长度有所限制,要求在 4096 字节以内。

此外,我们推荐查询语句都采用占位符的方式,使用占位符的查询语句将有机会被缓存复用,避免重复解释的开销

详细指南:https://www.leancloud.cn/docs/cql_guide.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值