从现有的CEP(Complex Event Processing)框架,像强大得Esper,我们学到很多工作完全可以通过写sql来完成的,不需要编写任何的代码。所以对于流处理我认为也需要这样的类似sql查询语言。目前像Storm这样的流处理平台框架强迫使用者去实现像silding window,一些query pattern的操作。我认为并不是每一个案例开发者都喜欢重写这些东西。
所以我们需要high level的抽象,我可以完全把一些算法封装好,直接拼装调用即可,或者直接支持sql语法。我们可以从Hive for Hadoop,Spark SQL,apache Flink中学习到很多。
下面列举一下为什么需要类似sql查询语言的原因:
1. 实时分析很复杂,业务开发人员很不情愿去实现一些像sliding window,或者时间事件模式的算法;
2. SQL简单,很容易理解和学习,开发成本低;
3. SQL语言简短通用,而且快
4. SQL自身的核心语法可以解决90%的问题
5. 历年来BI专家倾向的语言
6. 实时分析可以更好的优化SQL语言模型的执行计划,大部分的优化操作已经在研究,有些已经研究出来了可以直接拿过来用。
Why We need SQL like Query Language for Realtime Streaming Analytics?
时间: 2024-11-07 15:01:33