Skip to content

Latest commit

 

History

History
103 lines (52 loc) · 5.91 KB

sql-query-language-realtime-streaming-analytics.md

File metadata and controls

103 lines (52 loc) · 5.91 KB

实时流处理分析的类似 SQL 查询语言

原文:www.kdnuggets.com/2015/03/sql-query-language-realtime-streaming-analytics.html

作者:Srinath Perera(@srinath_perera

我上周在Strata+Hadoop World 2015参加了会议,确实对实时分析的兴趣达到了顶峰。

实时分析,或者人们称之为实时分析,有两种类型。

  1. 实时流处理分析(静态查询一次给出,不会改变,它们处理数据时无需存储。CEP、Apache Storm、Apache Samza 等是这方面的例子)

  2. 实时交互/临时分析(用户发出临时动态查询,系统响应)。Druid、SAP Hana、VoltDB、MemSQL、Apache Drill 是这方面的例子。

在这篇文章中,我专注于实时流处理分析。(临时分析无论如何都会使用类似 SQL 的查询语言。)

数据库大小时间分析

当谈到实时分析时,人们仍然只考虑计数用例。然而,这只是冰山一角。由于实时用例中数据的时间维度,您可以做的还有很多。让我们看看一些常见的模式。

  1. 简单计数(例如,故障计数)

  2. 使用窗口进行计数(例如,每小时的故障计数)

  3. 预处理:过滤、转换(例如,数据清理)

  4. 警报,阈值(例如,高温报警)

  5. 数据关联,检测丢失事件,检测错误数据(例如,检测失败的传感器)

  6. 连接事件流(例如,检测到足球的击打)

  7. 与数据库中的数据合并,收集,按条件更新数据,检测事件序列模式(例如,小交易后跟随大交易)

  8. 跟踪——在空间、时间等方面跟踪相关实体的状态(例如,航空公司行李的位置、车辆、野生动物追踪)

  9. 检测趋势——上升、转折、下降、异常值、复杂趋势如三重底等(例如,算法交易、SLA、负载均衡)

  10. 学习模型(例如,预测性维护)

  11. 预测下一个值和纠正措施(例如,自动驾驶汽车)

为什么我们需要类似 SQL 的查询语言用于实时流处理分析?

上述每一个都在用例中出现过,我们已经使用类似 SQL 的 CEP 查询语言实现了它们。了解实现 CEP 核心概念(如滑动窗口、时间查询模式)的内部细节,我认为每个流处理用例开发者都不应该重新编写这些。算法并非简单,而且很难做到准确!

相反,我们需要更高层次的抽象。我们应该一次性实现这些抽象,并重复使用它们。我们可以从 Hive 和 Hadoop 中学到的最佳教训就是它们正好为批量分析做了这些工作。我多次解释了 Hive 中的大数据,大多数人很快就能理解。Hive 已成为大多数大数据用例的主要编程 API。

以下是 SQL 类查询语言的一些理由。

  1. 实时分析很困难。每个开发者都不愿意手动实现滑动窗口和时间事件模式等。

  2. 对于熟悉 SQL 的人(几乎每个人都知道),它易于跟随和学习。

  3. SQL 类语言表达力强,简洁、甜美且快速!!

  4. SQL 类语言定义了涵盖 90% 问题的核心操作

  5. 专家们可以随时深入研究!

  6. 实时分析运行时可以更好地优化 SQL 类模型的执行。大多数优化已经被研究过,还有很多可以借鉴数据库优化的经验。

那么这些语言是什么呢?在复杂事件处理的世界里定义了很多(例如 WSO2 Siddhi、Esper、Tibco StreamBase、IBM Infosphere Streams 等)。SQL 流有一个完全符合 ANSI SQL 的版本。上周我在 Strata 会议上详细讨论了这个问题以及 CEP 如何满足要求。这里是幻灯片

可扩展的实时分析与声明式 SQL 类复杂事件处理脚本 来自 Srinath Perera

个人简介:Srinath Perera 是一位科学家、软件架构师和程序员,专注于分布式系统。

原文:srinathsview.blogspot.com/2015/02/why-we-need-sql-like-query-language-for.html

相关:

  • 采访:Ted Dunning,MapR 讲述大数据中实时性的真正含义

  • 2015 年大数据的 8 大趋势

  • 即将举行的分析、大数据、数据科学网络广播 – 3 月 10 日及以后


我们的前三大课程推荐

1. Google 网络安全证书 - 快速进入网络安全职业。

2. Google 数据分析专业证书 - 提升你的数据分析技能

3. Google IT 支持专业证书 - 支持你的组织 IT


更多相关话题