Skip to end of metadata
Go to start of metadata

Observablehq D3 显示美国 Covid-19每日检测数曲线

本线状图用于显示每天美国 COVID-19 的每天测试量的线状图曲线我们使用的是在线 JSON 数据,数据是通过 AWS 进行读取的。

你可以直接访问下面的链接来获得我们处理上传的数据。https://cdn.ossez.com/dataset/json/covid19/covid19-daily-tested-us.json


我们做数据分析的前提是数据来源相对可靠,如果数据来源不可靠,做数据分析也没有什么太大的价值。


相对每天的确诊总数来说这个更加有意思。因为用美国的检测量相对比较大,数据的波动也比较剧烈,从上面的曲线就可以看出来了。很多人都说美国疫情比较严重,确实是美国的疫情是相对人数非常多的,但是我们需要看到他们的检测量也是非常高的。从数据分析来看 ,美国 Covid-19 的检测能力是从 3 月8号 左右开始提升的,最开始的提升并不是非常高,但是到了 5 月份以后可以看到美国的检测能力是稳步提升的,一直到 5 月11 号左右,在美国的 Covid-19 检测能力已经接近 40 万每一天。


从这个曲线也可以看到,美国问题严重也是因为他们检查的数量多,检测能力比较强。对流行病来说,这种能力不是坏事。


虽然我们每天都会自动上传一些数据,但是你可能的更新数据每次都不一样。

我们主要也是希望通过这个平台来学习 D3 图表的使用。

你可以直接访问下面的链接: https://observablehq.com/@yuchenghu/us-covid-19-daily-tested-cases-covid-19


对代码修改后进行编译,需要注意的是我们数据是上传到 AWS 的 JSON 数据,数据的来源是从 https://covidtracking.com/api  下载后处理的。


下载的方式是通过 Spring Batch 构建一个批量处理程序,每天定时获得最新数据后存储到本地数据库中,然后从本地数据库中导出为 JSON 数据。我也认为这种处理方式过于繁琐,其实在内存中就可以实现了,在获得原数据的 API 后,你可以直接将源数据转换为对象。

使用本地数据库的原因是担心源 API 不能提供正常的访问服务,其实很多时候这种冗余也是没有太大必要的。更主要的是我们希望通过这个了解 Spring Batch 和 Hibernate JPA 的使用,这个对其他项目是非常有帮助的。



然后利用 gson 将对象转换为需要的字符串后输出成 JSON 就可以了。


如果你对 AWS  API 比较了解和熟悉的话,你可以利用 AWS 的API 直接将生成的 json 数据上传到 S3 上存储。



针对在一个已经部署比较好的和设计比较优化的技术架构上,上面的数据生成和处理基本上能够在 4 个小时内完成设计,部署,上传,分发。


Spring 的微服务对 Java 世界来说,还是起到了非常大的促进作用。

  • No labels