BlankerL / DXY-COVID-19-Data

2019新型冠状病毒疫情时间序列数据仓库 | COVID-19/2019-nCoV Infection Time Series Data Warehouse
https://lab.isaaclin.cn/nCoV/
MIT License
2.15k stars 708 forks source link

【建议】每小时更新DXYArea-TimeSeries文件方式优化 #74

Open biluochun opened 4 years ago

biluochun commented 4 years ago
BlankerL commented 4 years ago

你好,感谢反馈。

如果我的理解有错误,可以在下方具体说一下你的需求。另外,每个人的需求都不完全一致,很难同时满足所有人的需求,我只能尽可能提供完整和开箱即用的数据,希望能够理解。

biluochun commented 4 years ago

当然这种存储方式的改变,会直接导致使用者更新使用逻辑,这是个弊端。可能是个大版本升级。 再次感谢,这么认真的答复;

biluochun commented 4 years ago

附上我的数据展示 增量的形式,更有优化空间 ^_^ (老了,老打错别字。。。)

BlankerL commented 4 years ago

感谢,随着爬虫持续运行,TimeSeries文件肯定会一直增大,而且未来会到多少也不好说。

如果有需要,我可以拆分成多个文件储存到数据仓库中,但如果是科研需求,应该对数据更新频率的要求很低,只需要下载一次json文件就足够他们所有的分析了。如果是用做前端展示,每个人对单个文件数据的更新频率的要求可能也不太相同。拆分成增量数据可能一定程度上可以减少每次下载数据的数据传输量(毕竟只有最后一天/月的数据在更新),我或许可以把历史数据放到release里供大家下载。

有一个比较尴尬的问题,就是历史数据可能有一小部分是有异常值的,目前也在 BlankerL/DXY-COVID-19-Crawler#34 收集异常值反馈,所以当异常值修正之后,又要重新发布release或者对过去的release文件进行修改,整体效率比单个TimeSeries文件低了不少。

我可以看看GitHub的API,关于自动发布release和修改历史release文件的部分,如果找到一个比较好的解决方案,会考虑按您的建议来处理的。

数据展示已经添加到了 BlankerL/DXY-COVID-19-Crawler 的README文件中。

Dobby233Liu commented 4 years ago

我或许可以把历史数据放到release里供大家下载。

But GitHub uses a S3 bucket to host the release assets, and the S3's download speed is very slow and breaks often in Mainland China (thanks to the MIIT's "great firewall"), unless you're on a proxy. Plus the TimeSeries JSON size is over 60MB as stated in the OP, so it's going to pain mainland researchers.


我可以看看GitHub的API,关于自动发布release和修改历史release文件的部分,如果找到一个比较好的解决方案,会考虑按您的建议来处理的。

but if you're still looking for the APIs, then I got some quick references:

kmod-midori commented 4 years ago

我个人认为完全可以只上传进行gzip后的时间序列数据,因为git本身是完整保存每个版本的,而不是保存diff,也就是说每次更新都需要上传/下载整个文件。 现在的文件大小已经超过GitHub可以正常diff的范围了。

BlankerL commented 4 years ago

我个人认为完全可以只上传进行gzip后的时间序列数据,因为git本身是完整保存每个版本的,而不是保存diff,也就是说每次更新都需要上传/下载整个文件。 现在的文件大小已经超过GitHub可以正常diff的范围了。

感谢建议,目前没有足够的时间来维护代码,git的数据也能正常更新,因此没有进行额外的操作。

由于我是GitHub的Pro账户,git仓库的容量应该有100GB,所以暂时没有达到瓶颈。如果需要clone,可以选择使用--depth 1参数防止将所有commit都下载下来。