【发布时间】:2023-03-26 22:13:01
【问题描述】:
目前,我的团队有一个脚本,每晚都会克隆我们最新版本的代码,并在我们的计算集群上运行一组长时间运行的案例。每个案例在其各自的目录中输出一个performance.csv。这导致了一个庞大的目录结构,每个晚上都充满了 git 存储库,可以追溯到大约 2 年前。
我想将此性能数据存储在数据库中,以便我们了解我们的代码在性能方面随时间发生的变化。
我对数据库一无所知,也不确定制作表格的最佳方法是什么。
我编写了一个 python 脚本,它获取每个 git-repo 的所有性能数据并将其填充到一个没有索引或键的 sqlite 数据库中。
这是我的文件系统的简化示例
- projects/git/
- git_20200501/
|---- assessment/test01/performance.csv
|---- assessment/test02/performance.csv
|---- assessment/test03/performance.csv
- git_20200502/
|--- assessment/test01/performance.csv
|--- assessment/test02/performance.csv
|--- assessment/test03/performance.csv
- git_20200503
|--- assessment/test01/performance.csv
|--- assessment/test02/performance.csv
|--- assessment/test03/performance.csv
我使用 pandas 读取数据并添加了几列来帮助使每条记录都独一无二。生成的 dfs 看起来像这样
repo_root repo_hash repo_date path simulation_alive_time
/projects/git/git_20200501 8cdf06... 20200501 assessment/test01/perfomance.csv 0.000000
/projects/git/git_20200501 8cdf06... 20200501 assessment/test01/perfomance.csv 0.438507
/projects/git/git_20200501 8cdf06... 20200501 assessment/test01/perfomance.csv 0.614212
/projects/git/git_20200501 8cdf06... 20200501 assessment/test01/perfomance.csv 0.710791
/projects/git/git_20200501 8cdf06... 20200501 assessment/test01/perfomance.csv 0.808077
然后我只做一个嵌套的for循环;循环遍历所有 repos 及其后续性能 csvs 并将其附加到数据库中。
我这样做的方法是否正确?
【问题讨论】:
标签: python-3.x sqlite csv database-design