本文主要讨论如何使用 Alink 的 Kafka 连接组件(Kafka011SourceStreamOp 和 Kafka011SinkStreamOp)读取写入数据。如何你需要一个本地的 Kafka 数据源进行实验,可以参考我另外一篇文章,详细介绍了搭建 Kafka 及建立 Topic 的过程。
- 在 MacOS 上搭建 Kafka
https://zhuanlan.zhihu.com/p/100990121 - 在 Windows 上搭建 Kafka
https://zhuanlan.zhihu.com/p/101162159
首先,我们演示如何将流式数据写入 Kafka。
假设已经有一个 Kafka 的数据源(譬如:本地 Kafka 数据源,端口为 9092),并且 Kafka 中已经有一个 topic,名称为 iris,则 Kafka 写入组件 Kafka011SinkStreamOp 可以如下设置:
sink = Kafka011SinkStreamOp()\
.setBootstrapServers("localhost:9092")\
.setDataFormat("json")\
.setTopic("iris")
注意:Kafka 写入的数据只能为字符串,需要设置每条记录转化为字符串的方式,这里我们使用 Json 格式。
我们还需要构造一个获取流式数据的方式,最简单的方式是使用 CsvSourceStreamOp 组件,将 csv 数据(alink-release.oss-cn-beijing.aliyuncs.com)以流的方式读入。然后,再连接 Kafka 写入组件,开始执行流式操作。完整代码如下&