COVID-19.001.jpeg

直播回顾视频



直播内容回顾

1. ElasticTalk 简介

image.png

ElasticTalk 是一个围绕开源软件线上交流平台,致力于在社区推广优秀的开源软件,帮助小伙伴更好地学习和掌握相关技术。同时也会探讨开源软件商业化的问题,连手开源软件背后的公司共同探讨开源软件的生存之道。


2. ElasticStack 简介

image.png

ElasticStack 是一个依托于搜索引擎实现的实时大数据平台,其组成如下:


3. COVID-19 可视化作品分析

网上有许多优秀的关于 COVID-19 的可视化作品,我们分别作了展示和分析。

一类是新闻类,以腾讯新闻、丁香园、今日头条等为代表的,大家可以点击如下链接查看。

https://ncov.dxy.cn/ncovh5/view/pneumonia

image.png

一类是专业的可视化分析工具,比如 tableau,如下链接所示:

https://public.tableau.com/profile/.6862#!/vizhome/3_15798630731410/sheet0

image.png


再比如 Mapbox,如下链接所示:

https://www.mapbox.cn/coronavirusmap

image.png


另外还有清华大学出品的 COVID-19 Dashboard,都是特别优秀的作品。
https://ncov.deepeye.tech/

image.png



再有一个是日本的 dashboard(作者为 Bing Yang),其中桑基图的使用很直观。

https://japan-cov-19.now.sh/

image.png


https://www.ft.com/content/ea1563e8-725f-11ea-ad98-044200cb277f

image.png


从这些优秀的可视化作品中我们可以吸取灵感,用于自己 Dashboard 的制作。


4. COVID-19 Kibana

我们来看如何在 Elastic Stack 中做数据分析,以笔者有限的数据分析经验来看,一般数据分析分为如下三个阶段:

image.png

  1. 数据采集:该阶段最重要的是选择合适的数据源。
  2. 数据处理:该阶段需要处理转换采集来的数据,比如去除垃圾数据、更改数据结构等,使得输出的数据符合分析所需的数据模型。一般数据模型都是这个阶段确立的。该阶段是最耗时的阶段,一般占用整个分析工作大约 60%~70%的时间
  3. 数据分析:该阶段主要是分析数据,创造有价值的报表,得出有意义的结论。


4.1 数据源

此次 COVID-19 我们采用的数据源如下:

https://lab.isaaclin.cn/nCoV/


在此感谢 Isaac Lin 的分享。


4.2 数据处理工具

数据处理工具方面选择是自己写 python 脚本,由于是 api 请求,且我们需要将返回的 json 体切割成多条数据存入 es。像 logstash 之类的工具实现起来过于麻烦。

python 脚本请自行下载,不多做解释:

📎covid-19.py


使用方法如下:

ES_URL=http://127.0.0.1:9200 ES_USERNAME=elastic ES_PASSWD=abcdwsxsad python covid-19.py

测试的 python 版本是 3.6

该脚本作用如下:


4.3 数据可视化

Kibana 版本为 7.6.1 ,Dashboard 效果如下:


image.png

英文版:

COVID-19-en.PNG


这里主要使用 TSVB 和 Maps 来进行可视化,细节请看视频。

另外 TSVB 的使用可以参考如下文章。

https://www.elastic.co/blog/how-to-display-data-as-a-percentage-in-kibana-visualizations


我把 Kibana 的所有内容都 export 出来了,只要下载、解压并导入,应该就能在自己的环境中看到效果。

📎covid-19.ndjson.zip

image.png


4.4 架构图

image.png

  1. 通过 python 脚本拉取 api 数据,清洗处理后发送数据到 es
  2. es 和 kibana 是在 Elastic Cloud 上创建的服务,用起来还是很方便的


代码获取

https://github.com/rockybean/covid-19

PPT 下载



订阅邮件组 推荐

欢迎大家订阅 ElasticTalk 的邮件组,及时收到直播通知、视频回放和 PPT 等资料

https://tinyletter.com/elastictalk


微信

需要加微信群的请添加微信 rockybean 并备注 ET

公众号地址如下:

image.png

如有问题,欢迎留言讨论!