Kafka与MySQL的组合使用

这是做的数据采集实验,我们在做的时候,要先把zookeeper和kafka服务启动,可以参考我上一篇.https://blog.csdn.net/hhjdshz/article/details/123881242?spm=1001.2014.3001.5501

 学生表student

sno

sname

ssex

sage

95001

John

M

23

95002

Tom

M

23

  1. 读取student表的数据内容,将其转为JSON格式,发送给Kafka;

在导入kafka包之前,我们要安装Python 第三方库 kafka-Python包

​
python -m pip install  requests  --force-reinstall -i https://pypi.doubanio.com/simple/ pip

​

完整代码

#从导入kafka 生产者的包
from kafka import KafkaProducer
import json
import pymysql.cursors
# 连接kafka
producer=KafkaProducer(bootstrap_servers='localhost:9092', value_serializer=lambda v: json.dumps(v).encode('utf-8'))
# 连接自己的mysql数据库
connect=pymysql.Connect(host='localhost', port=3306, user='root',  passwd='123456',  db='valentines', charset='utf8')
# 获取游标对象
cursor = connect.cursor()
# 查询数据
sql = "select * from student"
#执行SQL语句
result = cursor.execute(sql)
#fetchall查询所有结果
data = cursor.fetchall()
for msg in data:
    val = {}
    val ['sno']=msg[0]
    val ['sname']=msg[1]
    val ['ssex']=msg[2]
    val ['sage']=msg[3]
    producer.send('json_topic', val)
    #提交事务
    connect.commit()
    print(val )
connect.close()

2.再从Kafka中获取到JSON格式数据,打印出来;

完整代码:

from kafka import KafkaConsumer
import json
import pymysql.cursors

consumer = KafkaConsumer('json_topic', bootstrap_servers=['localhost:9092'], group_id=None, auto_offset_reset='earliest')

for msg in consumer:
    msgs = str(msg.value, encoding="utf-8")
    python_data = json.loads(msgs)
    print(python_data)

  • 7
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Kafka数据写入MySQL是指将从Kafka消息队列中获取的数据写入MySQL数据库中。在实际应用中,这种方式常用于数据的实时处理和持久化存储。 在将数据写入MySQL之前,我们需要先搭建好Kafka集群和MySQL数据库,并确保它们的连接和配置正确。接下来,可以采取以下几个步骤将数据从Kafka写入MySQL: 1. 创建一个Kafka消费者来消费Kafka消息队列的数据。 2. 接收Kafka消息,将其转换为MySQL数据库所需的格式。这个格式一般是以表格的形式组织,并遵循MySQL的数据类型。 3. 连接MySQL数据库,并创建一个MySQL客户端。 4. 在MySQL客户端中执行插入操作,将从Kafka消息队列中获取的数据插入到MySQL数据库的对应表中。 5. 确认数据插入成功后,可以关闭与MySQL数据库的连接,释放资源。 在实际操作中,需要注意以下几点: 1. 数据写入MySQL时要保证数据一致性和正确性,可以对数据进行校验和去重,避免重复写入或丢失数据。 2. 可以按批次进行数据写入,提高效率,减少数据库连接和插入操作的次数。 3. 对于大规模的数据写入,可以考虑使用MySQL的批量插入功能,例如使用多值的INSERT语句或LOAD DATA INFILE命令。 4. 需要在代码中处理可能出现的异常情况,例如连接错误、插入失败等,并进行相应的处理和日志记录。 总之,通过合理配置和编程,将Kafka数据写入MySQL可以实现实时数据处理和持久化存储的需求,适用于很多场景,如日志分析、实时计算等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值