
# Flink Join样例程序开发思路
#### 场景说明
假定某个Flink业务1每秒就会收到1条消息记录，消息记录某个用户的基本信息，包括名字、性别、年龄。另有一个Flink业务2会不定时收到1条消息记录，消息记录该用户的名字、职业信息。
基于某些业务要求，开发的Flink应用程序实现功能：实时地以根据业务2中消息记录的用户名字作为关键字，对两个业务数据进行联合查询。
#### 数据规划
- 业务1的数据存储在Kafka组件中。向Kafka组件发送数据（需要有Kafka权限用户），并从Kafka组件接收数据。Kafka配置参见样例[数据规划](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050017.html#mrs_07_050017__s031845a508b842a8a885bdc2fecd3b2b)章节。
- 业务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. 从socket中读取数据，构造Table2。
4. 使用Flink SQL对Table1和Table2进行联合查询，并进行打印。
 
