【大数据】KSQL初体验

2017年8月28日,Kafka的作者Neha Narkhede在Confluent上发表了名为《Introducing KSQL: Open Source Streaming SQL for Apache Kafka》的博文介绍了Kafka新引入的KSQL引擎——一个基于kafka数据的流处理SQL。KSQL降低了流式处理的门槛,为处理Kafka数据提供简单而完整的可交互式SQL接口。ksql是开源的(Apache 2许可)、分布式、可扩展的、可靠的、实时的;目前可以支持多种流式操作,包括聚合、连接、时间窗口、会话等等,相信随着时间的推移,会支持更多操作。在博文中,作者用了兴奋一词,对于不擅编程的我来说,同样兴奋不已。直接引用网络一篇博文内容的翻译,《重磅开源KSQL:用于Apache Kafka的流数据SQL引擎》(注:若有侵权,请作者联系删除),博文的核心是向大家解释了KSQL的适用场景,核心对象,以及与传统数据库对比的最大区别。

1

KSQL的适用场景

实时监控

安全检测

在线数据集成

应用开发

2

KSQL的核心抽象

流(Stream):流是没有边界的结构化数据,数据可以被源源不断地添加到流当中,但流中已有的数据是不会发生变化的,即不会被修改也不会被删除。

表(Table):表就是流的视图,或者说它代表了可变数据的集合。它与传统的数据库表类似,只不过具备了一些流式语义,比如时间窗口,而且表中的数据是可变的。KSQL将流和表集成在一起,允许将代表当前状态的表与代表当前发生事件的流连接在一起。

3

Kafka+KSQL要颠覆传统数据库

传统关系型数据库以表为核心,日志只不过是实现手段。而在以事件为中心的世界里,情况却恰好相反。日志成为了核心,而表几乎是以日志为基础,新的事件不断被添加到日志里,表的状态也因此发生变化。将Kafka作为中心日志,配置KSQL这个引擎,这样无论是公司中的各种数据库、搜索索引,还是其他数据服务系统,以往我们需要的丰富数据和ETL都可以通过创建物化视图来实现,而且视图也会持续不断地得到更新。诸如监视、安全、异常和威胁检测、分析和对故障的响应等应用场景都可以在实时的情况下进行,而不会有延迟。这一切都是可以基于Kafka数据通过KSQL来实现。

LinkedIn在2010年左右随着Kafka的兴起,有了建设以Kafka为中心的流式数据中心的构想,Kafka作为全局数据管道,每个系统都向这个中心管道发送或者获取数据,下图是“流数据平台”架构图。相信随着KSQL的正式推出,会有更多的基于Kafka的流式数据中心的架构在实践中应用,建设和使用成本也会大大降低。随着大家对数据实时性的要求越来越高,流数据中心架构会逐步替代以往以ETL过程为核心的离线数据中心架构。

安装过程按照quick-start上的步骤即可,主要在编译源码过程中遇到的几个问题:

1、源码编译过程首先遇到无法找到tools.jar,原因是centos7自带的JDK和jre安装在同一个目录,被替换掉了,建议卸载自带的jdk,重新安装

2、遇到下载一些maven仓库jar包被拒或者超时的问题,建议多试几次。

3、建议对几个项目分开进行编译,但之间有依赖关系,按照如下顺序进行。

编译源码成功!

点击流分析的demo暂未体验。

总结:KSQL的推出对与我来说同样是兴奋的。首先,降低开发人员与数据人员之间的耦合性,当前很多大数据处理技术都是基于编码来对数据进行加工和处理,使不同技术偏好的人员更专注于处理业务;其次,流数据中心的流行会更进一步,KSQL降低了准入成本。

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180126G03ADF00?refer=cp_1026

同媒体快讯

相关快讯

扫码关注云+社区