Kafka Streams开发人员指南之流领域特定语言(Streams DSL)

原文地址

流领域特定语言

Kafka Streams DSL(域特定语言)构建在Streams Processor API之上。 这是大多数用户推荐的,特别是初学者。 大多数数据处理操作都可以用几行DSL代码来表示。

概述

与处理器API相比,只有DSL支持:

  • 内置KStream,KTable和GlobalKTable形式的流和表的抽象。 拥有流和表的一流支持是至关重要的,因为在实践中,大多数用例不仅需要流或数据库/表,而且还需要两者的组合。 例如,如果您的用例是创建实时更新的客户360度视图,那么您的应用程序将会将许多与客户相关的事件输入流转换为包含不断更新的360度视图的输出表 客户的观点。
  • 具有无状态变换(例如map和filter)以及诸如聚集(例如count:计数和reduce:减少),连接(例如,leftJoin:左连接)和窗口化(例如session window:会话窗口)的有状态变换的声明性,函数式编程风格。

使用DSL,您可以在应用程序中定义处理器拓扑(即逻辑处理计划)。 完成这个步骤是:

  1. 指定一个或多个从Kafka主题读取的输入流
  2. 在这些流上组合转换
  3. 结果输出流写回到Kafka主题,或通过交互式查询(例如,通过REST API)将应用程序的处理结果直接公开给其他应用程序。

在应用程序运行之后,定义的处理器拓扑结构被连续地执行(即处理计划付诸实施)。 下面提供了使用DSL编写流处理应用程序的分步指南。

有关可用API功能的完整列表,请参阅Kafka Streams Javadocs

查看更多

猜你喜欢

转载自my.oschina.net/jast90/blog/1618719
DSL