django 大数据检测网站制作总结

本文总结了一个使用Django构建的大数据检测网站的开发经验,包括表设计优化、Django+Haystack+Elasticsearch全文检索的实现,以及如何进行去重复查询和原生SQL查询返回前端。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近的一个项目,用django做的一个检测网站,主要是检测网络流量的,月均10多亿的数据.这对表的设计和数据库查询有很大的要求,路上踩了很多坑,这里总结下.具体代码就不贴了,事关公司机密,这里主要写下思路.

1.表设计

因为有20多个字段,一开始是用mysql 3张表来存储,之间通过外键相连,便于前端展示,后来实际检测的时候,发现慢的要死,2W多数据就要1min,这还了得.后来全部重新设计了,用一张表来存储,到达一定数据量时就分表存储.检测速度上去了,后端的查询代码就要好好考虑了.

 而且最后还给一些字段加了普通索引,一般都是对where, group by, order by 后面的字段加索引的,具体说起来语句如:

create index id_sip on testresult( sip(200));

但索引不是越多越好,还得看具体情况.

2.django + haystack + elasticsearch 实现全文检索

一开始是用django+haystack+whoosh来实现的,但数据量到了十几万的时候,建个索引就要半个钟,果断不能忍,后来换成solr,发现效果还是不理想,最后换成elasticsearch才搞好的.这里总结下遇到的坑:

(1)elasticsearch在win7下安装的在查询时,haystack连接不到elasticsearch,老是报错,而且每次elasticsearch都要手动开启(可能自身配置的问题吧).后来换成ubuntu 16.04后一切正常,因时间关系,也懒的改了,毕竟在ubuntu上部署了.

(2)具体配置如下:

settings.py:

HAYSTACK_CONNECTIONS = {
    'default': {
        'ENGINE': 'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine',
        'URL': 'http://127.0.0.1:9200/',
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值