CODE大全
您的位置 : 首页 > 前端在线资源 >

KSQL架构原理解析

发布时间:『 2018-01-14

KSQL是可用于Apache Kafka的流式SQhttp://www.bdx-leb.com/a0ff/61b8fe335d2b.htmlL。我们在前面已经介绍过它《Apache Kafka的流式SQL引擎KSQL简介》。本文来探讨一下它的http://www.bdx-leb.com/7e64/68b9f66de31b.html相关架构设计和实现原理。

KSQL的核心

KSQL是基于Kafka的Streams API进行构建的,所以它的两个核心http://www.bdx-leb.com/b6a5/bae075060082.html概念是流(Stream)和表(Table)。流是没有边界的结构化数据,数据可以被源源不断地添加到流当中http://www.bdx-leb.com/f885/a51140ced7b9.html,但流中已有的数据是不会发生变http://www.bdx-leb.com/57c2/b6fe18d61a69.html化的,即不会被修改也不会被删除。表就是流的视图,或者说它代表了可变数据的集合。它与传统的数据库表类似,只不过具备了一些流式语义,比如时间窗口,而且表中的数据是可http://www.bdx-leb.com/e946/445f68d5c1c6.html变的。KSQL将流和表集成在一起,允许将代表当前状态的表与代表当前发生事件的流连接在一起。

KShttp://www.bdx-leb.com/2c85/c315d9fdf9aa.htmlQL架构

ksql架构

KSQL是一个独立运行的服务器,多个KSQL服务器可以组成集群,可以动态地添加服务器实例。集群具有容错机制,如果一个服务器失效,其他服务器就会接管它的工作。KSQL命令行客户端通过REST API向集群发http://www.bdx-leb.com/1add/3fa9151506ea.html起查询操作,可以查看流和表的信息、查询数据以及查看查询状态。因为是基于Streams API构建的,所以KSQL也沿袭了Streams API的http://www.bdx-leb.com/4771/ad604200b17f.html弹性、状态管理和容错能力,同时也具备了仅一次(exactly once)语义。KSQL服务器内嵌了这些特性,并增加了一个分布式SQL引擎、用于提升查询性能的自动字节码生成机制,以及用于执行查询和管理的REST API。

Kafka+KSQL颠覆传统数据库

ksql

传统关系型数据库以表为核心,日志只不过是实现手段。而在以事件为中心的世界里,情况却恰好相反。日志成为了核心,而表几乎是以日志为基础,新的事件不断被添加到日志里,表的状态也因此发生变化。将Kafka作为中心日志,配置KSQL这个引擎,我们就可以创建出我们想要的物化视图,而且视图也会持续不断地得到更新。

KSQL目前还处http://www.bdx-leb.com/db94/640dcd2b5a77.html于开发者预览阶段,作者还在收集社区的反馈。未来计划增加更多的特性,包括支持更丰富的SQL语法,让KSQL成为生产就绪的系统。

参考资料

Introducing KSQL: Open Source Streaming SQL for Apache Kafka Exactly-once Semantics are Possible: Here’s How Kafka Does it

——— 全文完 ———
上一篇:Docker安装KSQL 下一篇:没有了
Powered by 张鑫旭 | 鄂ICP备14009759号-2 | 网站留言 Copyright © 2014-2016 张鑫旭 版权所有