更新时间:2024-08-05 GMT+08:00

Flink Join样例程序开发思路

场景说明

假定某个Flink业务1每秒就会收到1条消息记录,消息记录某个用户的基本信息,包括名字、性别、年龄。另有一个Flink业务2会不定时收到1条消息记录,消息记录该用户的名字、职业信息。

基于某些业务要求,开发的Flink应用程序实现功能:实时的以根据业务2中消息记录的用户名字作为关键字,对两个业务数据进行联合查询。

数据规划

  • 业务1的数据存储在Kafka组件中。向Kafka组件发送数据(需要有Kafka权限用户),并从Kafka组件接收数据。Kafka配置参见样例数据规划章节。
  • 业务2的数据通过socket接收消息记录,可使用netcat命令用户输入模拟数据源。
    • 使用Linux命令netcat -l -p <port>,启动一个简易的文本服务器。
    • 启动应用程序连接netcat监测的port成功后,向netcat终端输入数据信息。

开发思路

  1. 启动Flink Kafka Producer应用向Kafka发送数据。
  2. 启动Flink Kafka Consumer应用从Kafka接收数据,构造Table1,保证topic与producer一致。
  3. 从soket中读取数据,构造Table2。
  4. 使用Flink SQL对Table1和Table2进行联合查询,并进行打印。