Kafka的作者Neha Narkhede在Confluent上发表了一篇博文,介绍了Kafka新引入的KSQL引擎——一个基于流的SQL。推出KSQL是为了降低流式处理的门槛,为处理Kafka数据提供简单而完整的可交互式SQL接口。KSQL目前可以支持多种流式操作,包括聚合(aggregate)、连接(join)、时间窗口(window)、会话(session),等等。
与传统SQL的主要区别
KSQL与关系型数据库中的SQL还是有很大不同的。传统的SQL都是即时的一次性操作,不管是查询还是更新都是在当前的数据集上进行。而KSQL则不同,KSQL的查询和更新是持续进行的,而且数据集可以源源不断地增加。KSQL所做的其实是转换操作,也就是流式处理。
KSQL的适用场景
1.实时监控
一方面,可以通过KSQL自定义业务层面的度量指标,这些指标可以实时获得。底层的度量指标无法告诉我们应用程序的实际行为,所以基于应用程序生成的原始事件来自定义度量指标可以更好地了解应用程序的运行状况。另一方面,可以通过KSQL为应用程序定义某种标准,用于检查应用程序在生产环境中的行为是否达到预期。
2.安全检测
KSQL把事件流转换成包含数值的时间序列数据,然后通过可视化工具把这些数据展示在UI上,这样就可以检测到很多威胁安全的行为,比如欺诈、入侵,等等。KSQL为此提供了一种实时、简单而完备的方案。
3.在线数据集成
大部分的数据处理都会经历ETL(Extract——Transform——Load)这样的过程,而这样的系统通常都是通过定时的批次作业来完成数据处理的,但批次作业所带来的延时在很多时候是无法被接受的。而通过使用KSQL和Kafka连接器,可以将批次数据集成转变成在线数据集成。比如,通过流与表的连接,可以用存储在数据表里的元数据来填充事件流里的数据,或者在将数据传输到其他系统之前过滤掉数据里的敏感信息。
4.应用开发
对于复杂的应用来说,使用Kafka的原生Streams API或许会更合适。不过,对于简单的应用来说,或者对于不喜欢Java编程的人来说,KSQL会是更好的选择。
KSQL架构
KSQL是一个独立运行的服务器,多个KSQL服务器可以组成集群,可以动态地添加服务器实例。集群具有容错机制,如果一个服务器失效,其他服务器就会接管它的工作。KSQL命令行客户端通过REST API向集群发起查询操作,可以查看流和表的信息、查询数据以及查看查询状态。因为是基于Streams API构建的,所以KSQL也沿袭了Streams API的弹性、状态管理和容错能力,同时也具备了仅一次(exactly once)语义。KSQL服务器内嵌了这些特性,并增加了一个分布式SQL引擎、用于提升查询性能的自动字节码生成机制,以及用于执行查询和管理的REST API。
相关推荐
KSQL 引擎——一个基于流的 SQL。推出 KSQL 是为了降低流式处理的门槛,为处理 Kafka 数据提供简单而完整的可交互式 SQL 接口。KSQL 目前可以支持多种流式操作,包括聚合(aggregate)、连接(join)、时间窗口...
KSQL - Apache Kafka的流式SQL引擎
KSQL是一个用于Apache kafka的流式SQL引擎,KSQL降低了进入流处理的门槛,提供了一个简单的、完全交互式的SQL接口,用于处理Kafka的数据,可以让我们在流数据上持续执行 SQL 查询,KSQL支持广泛的强大的流处理操作,...
sql衍生出得ksql 可以做到实时的数据监测
KSQLURL格式,KSQL规范,数据库对象,系统表,临时表使用方法
KSQL对金蝶产品实现多数据库支持非常重要。所有与金蝶ERP产品支持的数据库通讯的应用程序都通过向数据库服务器发送KSQL语句来实现通讯,与应用程序的用户界面无关。 KSQL是SQL92的子集。它抽取了SQL92的部分语法来...
资源来自pypi官网。 资源全名:ksql-0.10.2.tar.gz
BOS V6.2开发指南_KSQL
智能文本挖掘服务端扩展文本处理专用SQL———KSQL
KSQL参考手册.doc
ksql, 使用SQL查询 Kubernetes API对象 :一个简单的工具,用于对Kubernetes资源进行交互式数据库查询。的先决条件:npm install qnpm install alasqlnpm install node-kubernetes-client
Linux下连接金仓数据库(ksql)并完成查询、插入、修改表数据实例,修改后可用于oracle及mysql
kafak ksql 函数, 基于Confluent的ksqlDB各个函数的用法使用,本文档对官方英文文档进行了汉化和补充,翻译并测试。
KSQL是一个用于Apachekatkatm的流式SQL引擎。KSQL降低了进入流处理的门槛,提供了一个简单的、完全交互式的SQL接口,用于处理Kafka的数据。你不再需要用Java或Python这样的编程语言编写代码了!KSQL是开源的(Apache...
适用于KSQL的深度学习UDF,适用于Apache Kafka的流式SQL 重要说明:这是KSQL项目的分支,以演示如何构建用户定义的函数(UDF)。 这些项目添加了H2O深度学习模型。 有关KSQL的最新版本,文档和示例,请访问。 ...
KSQL是ApacheKafka的数据流SQL引擎,它使用SQL语句替代编写大量代码去实现流处理任务。 KSQL基于Kafka的StreamAPI构建,它支持过滤、转换、聚合、连接、加窗操作和Sessionization(即捕获单一会话期间的所有的流事件...
参考:如何设置本地开发环境安装Node.js 安装纱$ npm install -g yarn安装依赖JavaScript库$ yarnInstall.sh如何在本地启动使用环境变量KSQL_SERVER指定您的KSQL服务器如果未设置环境变量KSQL_SERVER ,它将连接到...
KSQL/ksqlDB 的深度学习 UDF,用于 MQTT 物联网传感器数据的流式异常检测 我为传感器分析构建了一个 KSQL UDF。 它利用 new 对传入事件进行连续流处理。 如果您想构建自己的 UDF,请查看此博客文章,了解详细的...