KSQL介绍:面向Apache Kafka的开源Streaming SQL引擎

KSQL是面向Apache Kafka的开源Streaming SQL引擎,它提供了简单、完全交互的SQL界面,用于处理Kafka数据流,无需编写Java或Python代码。KSQL支持实时监控、实时分析、安全和异常检测以及联机数据整合等功能,适用于实时业务监控、安全检测和数据整合等场景。KSQL的核心抽象包括STREAM和TABLE,简化了数据流应用程序的开发,允许处理Kafka中的数据流和表。
摘要由CSDN通过智能技术生成

本文转自:云头条(YunTouTiao)公众号。

英文原文:https://www.confluent.io/blog/ksql-open-source-streaming-sql-for-apache-kafka/


我非常高兴地宣布KSQL,这是面向Apache Kafka的一种数据流SQL引擎。KSQL降低了数据流处理这个领域的准入门槛,为使用Kafka处理数据提供了一种简单的、完全交互的SQL界面。你不再需要用Java或Python之类的编程语言编写代码了!KSQL具有这些特点:开源(采用Apache 2.0许可证)、分布式、可扩展、可靠、实时。它支持众多功能强大的数据流处理操作,包括聚合、连接、加窗(windowing)和sessionization(捕获单一访问者的网站会话时间范围内所有的点击流事件)等等。


一个简单的例子



查询流式数据意味着什么?这与SQL数据库相比怎样?


可以说它实际上与SQL数据库大不一样。大多数数据库用于对存储的数据执行按需查找和改动。KSQL还无法执行查询,它所做的是连续转换――也就是说,数据流处理。比如设想一下:我有来自用户的点击流和帐户信息表(这些信息关于不断更新的那些用户)。KSQL让我可以对该点击流和用户表进行建模,并将两者连接起来,尽管那两者当中的一个是无限的。


所以,KSQL对Kafka话题中的数据流执行连续查询――随着新数据不断流入,转换在连续进行。相比之下,针对关系数据库的查询是一次性查询――对数据集运行一次即可完成,就像针对数据库中有限行的SELECT语句。


KSQL适用于什么?


很好,现在你可以连续查询无限数据流。那有什么好处呢?


1.实时监控遇上实时分析


CREATE TABLE error_counts AS

SELECT error_code, count(*)FROM monitoring_stream

WINDOW TUMBLING (SIZE 1 MINUTE)

WHERE type = 'ERROR'


这方面的一个用途是,定义实时计算的自定义业务级别度量指标,你可以监控并发出警报,就像监控CPU负载那样。另一个用途是,在KSQL中为应用程序定义正确性概念,并核实它在生产环境中运行时满足这个概念。我们一提到监控,常常想到跟踪低级别性能统计数字的计数器(counter)和计量器(gauge)。这些种类的计量器常常可以告诉你CPU负载很高,但其实无法告诉你应用程序是否在做它应该做的事情。KSQL允许针对应用程序生成的原始事件流定义自定义度量指标,无论它们是日志事件、数据库更新还是其他任何类型的事件。


比如说,一个Web应用程序可能需要核实:每当新客户注册,就发送欢迎电子邮件,创建新的用户记录,并对其信用卡计费。这些功能可能分散在不同的服务或应用程序中,你需要监控,确保对每个新客户而言,每个操作都在某个服务级别协议(SLA)里面(比如30秒)。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值