如何设置报表仪表盘的数据库

我是一个非常新手的网站开发人员,我目前正在从头开始建立一个网站。我已经完成了大部分的前端设置,但在后端和数据库方面我真的很吃力。

这个网站的重点是显示一个课程完成情况的图表(对于每个课程,它将显示多少百分比是完整的,多少总用户)。它将从SFTP服务器上的CSV文件中获取这些数据。我遇到的问题是,当我尝试直接访问数据时,它的加载速度非常慢。

这是我用来检索数据的代码。

Courses = ['']
Total =[0]
Compl =[0]
csvreal = pandas.read_csv(file)
for index, row in csvreal.iterrows():
    string =(csvreal.loc[[index]].to_string(index=False, header=False))
    if(Courses[i] !=string.split('  ')[0]):
        i+=1
        Courses.append(string.split('  ')[0])
        Total.append(0)
        Compl.append(0)
    if(len(string.split('  ')[2])>3):
        Compl[i]+=1
    Total[i]+=1

解释一下,CSV文件里有名册信息,即每一行都有课程名称,用户名称,完成日期和课程代码。课程名称是第一列,所以这就是为什么在代码中,你会看到string,split(‘ ‘)[0],因为它是字符串的第一部分。如果用户已经完成了它,那么第三列(完成日期)是空的,所以这就是为什么它检查它是否长于3个字符,因为如果它是,那么用户已经完成了它。

这完全需要太长的计算时间。大约30秒,大约7000个条目。最近CSV的大小增加到了36,000左右。

有人建议我用SQL建立一个数据库,每晚用cronjob解析数据,让网站从数据库中检索数据,而不是CSV。

任何关于从哪里开始的建议,或者如何做到这一点将非常感激。

解决方案:

这完全需要太长的计算时间。大约30秒,大约7000个条目。最近CSV大小增加到了36000左右。

建议我用SQL建立一个数据库,每晚有一个cronjob来解析数据,让网站从数据库中检索数据,而不是CSV。

在我建议使用数据库之前,你从SFTP服务器获取数据的连接速度如何?把它托管在本地机器上会不会更快?如果这不是问题,那么请看下文。

是的,在这种情况下,数据库会加快你的计算时间和检索时间。你需要设置一个SQL数据库,有办法把数据放进去,然后再检索。我在底部包含了一些资源,可以帮助你熟悉SQL。为了交互和操作数据库,将需要PHP的知识。

使用SQl对你来说,交互会简单得多。例如,你需要检查一个单元格是否为空。在SQL中,可以用;

SELECT * FROM table WHERE some_col IS NULL OR some_col = '';

https:/www.khanacademy.orgcomputingcomputer-programmingsql

https:/www.w3schools.comsql

https:/www.guru99.comintroduction-to-database-sql.html

给TA打赏
共{{data.count}}人
人已打赏
未分类

无法在KendoUI上选择树形视图。

2022-9-13 14:07:38

未分类

在c++中创建一个链接列表(stucts数组不能用)。

2022-9-13 14:07:40

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索