Update April 09, 2018 :现在您还可以使用KSQL(Kafka的流式SQL引擎)来处理Kafka中的数据 . KSQL Build 在Kafka之上's Streams API, and it too comes with first-class support for 3028685 and 3028686 . Think of it like the SQL brother of Kafka Streams where you don' t必须用Java或Scala编写任何编程代码 .
1 回答
Update April 09, 2018 :现在您还可以使用KSQL(Kafka的流式SQL引擎)来处理Kafka中的数据 . KSQL Build 在Kafka之上's Streams API, and it too comes with first-class support for 3028685 and 3028686 . Think of it like the SQL brother of Kafka Streams where you don' t必须用Java或Scala编写任何编程代码 .
Kafka的Streams API(https://kafka.apache.org/documentation/streams/) Build 在Kafka 's producer and consumer clients. It'之上,比Kafka消费者客户端更强大,更具表现力 . 以下是Kafka Streams API的一些功能:
支持一次性处理语义(Kafka版本0.11)
支持容错状态处理,包括流joins,aggregations和windowing
支持event-time processing以及基于processing-time和ingestion-time的处理
拥有对streams and tables的一流支持,这是流处理与数据库相遇的地方;实际上,大多数流处理应用程序都需要流和表来实现它们各自的用例,所以如果流处理技术缺少两个抽象中的任何一个(比如说,不支持表),你就会被卡住或必须自己手动实现这个功能(祝你好运......)
支持interactive queries将最新处理结果公开给其他应用程序和服务)
更具表现力:它带有(1)函数编程风格DSL,其操作如
map
,filter
,reduce
以及(2)命令式样式Processor API例如进行复杂事件处理(CEP),以及(3)您甚至可以组合DSL和处理器API .有关Kafka Streams API的更详细但仍然是高级别的介绍,请参阅http://docs.confluent.io/current/streams/introduction.html,这也有助于您了解与较低级别Kafka客户端客户端的差异 . 这周还有Docker-based tutorial for the Kafka Streams API,I blogged about .
是的,Kafka Streams API既可以读取数据,也可以将数据写入Kafka .
是的,您可以编写自己的消费者应用程序 - 正如我所提到的,Kafka Streams API使用Kafka消费者客户端(以及 生产环境 者客户端)本身 - 但您必须手动实现Streams API提供的所有独特功能 . 请参阅上面的列表,了解“免费”获得的所有信息 . 因此,相当罕见的情况是用户会选择低级别的消费者客户端而不是更强大的Kafka Streams API .