从零开始实施推荐系统的落地部署——36.推荐系统案例(二十六)解决DLV的请求响应体过长和python连接kafka无数据问题
1.在华为云数据可视化DLV里,使用WT双轴线状图时,刚开始,显示数据化展示没有问题,等过了1—2天,出现异常。但是经查询发现mysql里的数据没有问题,考虑的是不是基础版的存储空间不够的原因,但是在文档找不到如何查询DLV的存储空间。只能提交工单,经华为云研发工程师确认,DLV查询请求返回的数据总大小是有限制的。控制的是每个请求响应体的长度,不是从数据条数限制的。而且跟DLV版本的无关。而采集的数据是股市交易在4小时里每3秒在获取一次数据,2天内获取9千多条数据。做展示的每3秒显示的效果图会导致请求项议题长度过长而无法获取数据。根据推算,1分钟有20条数据,1个小时就有20*60等于1200条数据,4小时的数据为4800条。所以解决的办法有2种:(1)统计每天的平均交易额度,这样能把4800条数据合为一条数据,这样就减少请求响应体长度,可展示20到30年的数据展示。但是有缺点是无法很好展示当天的变化效果图。如左下图所示(2)不需要减少响应体长度,只要控制时间范围设置为一天,缺点是只能显示当天的一天数据可视化效果图。如右上图所示。
2.现在有很多大数据的案例都是根据java或scala开发的,但是我想统一使用python来开发,之前选用python-kafka的第三方库在虚拟机上测试把数据写入到kafka,运行正常,没有报错。但是在kafka的消费端无数据。已经测试过kafka,确保kafka运行没有问题。
from kafka import KafkaProducer
producer = KafkaProducer(bootstrap_servers='192.168.56.112:9092',key_serializer=str.encode)
producer.send('test',da5)
在找不到原因的情况下,只好使用pykafka把数据写入到kafka消费端。代码如下:
class operateKafka:
def __init__(self):
myhosts = "kafka1.wuyi.com:9092"
client = KafkaClient(hosts=myhosts)
self.topic = client.topics['test']
在使用命令查看消费之前产生的数据./kafka-console-consumer.sh --bootstrap-server kafka1.wuyi.com:9092 --topic share --from-beginning
总结一下,虽然使用华为云的数据可视DLV制作大屏展示比较容易,而且不需要像flask等那样搭建网站,使用图表功能只要拖拽到指定的页面,通过简单的设置就可以做出漂亮的数据可视图表。但是我们还是要注意一下,它的请求响应体的长度不能过长,否则不能获取数据做展示。对于使用python连接kafka,但遇到像python-kafka那样找不到原因,那么就需要变通思维,换一种方式去解决。
- 点赞
- 收藏
- 关注作者
评论(0)