簡介
在今年2月初,
SLS已經釋出針對新冠病毒肺炎疫情國内動态展示分析 APP,目前該能力全面開放給政府、社群、第三方平台和開放者進行廣泛應用,完全免費開放。還沒有關注過的同學可以通過以下連結了解背景:
最近,随着新冠病毒肺炎疫情在全球爆發,
又推出了跟蹤關注全球範圍疫情動态的分析大盤。與國内大盤主要關注國内疫情(資料來源于央視新聞、人民日報、各省市衛健委公告)相比,國際疫情大盤則是跟蹤關注全球範圍的疫情動态,資料來源是被國際上廣泛引用的
約翰·霍普金斯大學開源資料集。
阿裡雲日志服務(SLS)是針對日志類資料的一站式服務,無需開發就能快捷完成海量日志資料的采集、消費、投遞以及查詢分析等功能,提升運維、營運效率。日志服務主要包括實時采集與消費、資料投遞、查詢與實時分析等功能,适用于從實時監控到資料倉庫的各種開發、運維、營運與安全場景。

作為日志分析中台,日志服務提供了一站式的資料采集、加工、查詢分析、AI計算、可視化,并支援互聯互通。
亮點
1. 提供規整的疫情資料,并每天定時同步更新
SLS 已經将疫情相關資料進行收集和規整,每天定時更新,并形成可視化平台覆寫全球各個國家/地區、省份/州的疫情資訊。你隻需要專注在資料的分析和展示,其它繁瑣的細節 SLS 都已經處理好。
2. 預定義豐富資料大盤、并支援自定義
内置多份資料大盤并支援自定義提供全球各個國家/地區、省份/州疫情态勢。支援互動式查詢分析、自定義報表、深鑽與告警等。
全球疫情态勢概覽
各國家/地區的疫情詳情
3. 資料平台開放,互聯互通
資料平台開放,互聯互通日志服務是開放的,可以和大量其他環境的系統、三方應用或開源進行對接。提供易擴充的資料分析、存儲、可視化平台能力,如DataV、Blink、OSS、流計算、Grafana、SOC等。
4. 完全免費
完全免費疫情服務應用以及相關資源資料,包括儀表盤、告警等功能完全免費。
資料
導入和規整
可能有一些同學隻關注對 COVID-19 疫情的資料分析,也想要上手試一試,但是對于如何從各個資料源擷取并處理資料不了解,又或者對 SLS 的 SQL 不是很熟練。為了幫助這部分同學友善快捷的實作資料分析,SLS 已經将疫情相關資料進行收集和規整,并且每天定時更新。你隻需要專注在資料的分析和展示,其它繁瑣的細節 SLS 都已經處理好。
資料樣例
type: Country/Region Cases
version: v2020-04-17T11:55:36
Last Update: 2020-04-09 01:12:20
Country/Region: China
Country/Region (ch): 中國
LatLng: 35.000074,104.999927
Confirmed: 83798
Confirmed Hist: [644, 923, 1409, 2079, 2882]
Confirmed Trend: {"2020-01-23": 644, "2020-01-24": 923, "2020-01-25": 1409, "2020-01-26": 2079, "2020-01-27": 2882}
New Confirmed Hist: [95, 279, 486, 670, 803]
New Confirmed Trend: {"2020-01-23": 95, "2020-01-24": 279, "2020-01-25": 486, "2020-01-26": 670, "2020-01-27": 803}
Deaths: 3352
Deaths Hist: [18, 26, 42, 56, 82]
Deaths Trend: {"2020-01-23": 18, "2020-01-24": 26, "2020-01-25": 42, "2020-01-26": 56, "2020-01-27": 82}
Recovered: 78556
Recovered Hist: [30, 36, 39, 49, 58]
Recovered Trend: {"2020-01-23": 30, "2020-01-24": 36, "2020-01-25": 39, "2020-01-26": 49, "2020-01-27": 58}
資料格式
各種疫情相關資料均放在一個日志庫 ncp 中,通過字段 type 作為類型區分:Global Cases, Country/Region Cases and Province/State Cases。通過 version 字段來标記資料版本,每一個版本都會包含完整的資料,用來實作資料的修正。
資料字段清單如下:
字段名 | 說明 | 樣例 |
---|---|---|
type | 資料類型 | Global Cases, Country/Region Cases 或者 Province/State Cases |
version | 資料版本 | v2020-01-26T12:30:00 |
Last Update | 最新來源新聞釋出時間 | 2020-01-26 18:23 |
Confirmed | 最新确診病例累計資料 | 1058 |
Confirmed Hist | 确診病例累計資料(從2020.01.23到目前的曆史資料數組) | [270, 444, 444, 549, 729, 1058] |
Confirmed Trend | 确診病例累計資料(從2020.01.23到目前的曆史趨勢資料字典) | {"2020-01-21": 1, "2020-01-22": 1, "2020-01-23": 1, "2020-01-24": 2, "2020-01-25": 2, "2020-01-26": 3} |
Recovered | 最新治愈病例累計資料 | 42 |
Recovered Hist | 治愈病例累計資料(從2020.01.23到目前的曆史資料數組) | [0, 28, 28, 31, 32, 42] |
Recovered Trend | 治愈病例累計資料(從2020.01.23到目前的曆史趨勢資料字典) | |
Deaths | 最新死亡病例累計資料 | 52 |
Deaths Hist | 死亡病例累計資料(從2020.01.23到目前的曆史資料數組) | [3, 17, 17, 24, 39, 52] |
Deaths Trend | 死亡病例累計資料(從2020.01.23到目前的曆史趨勢資料字典) | |
New Confirmed Hist | 疑似病例現有資料(從2020.01.23到目前的曆史資料數組) | [11, 0, 41, 0, 56, 127] |
New Confirmed Trend | 疑似病例現有資料(從2020.01.23到目前的曆史趨勢資料字典) | {"2020-01-21": 1, "2020-01-22": 1, "2020-01-23": 1, "2020-01-24": 2, "2020-01-25": 2, "2020-01-26": 7} |
分析展示
SLS 提供大規模日志實時
查詢與分析能力,其擁有以下優勢:
- 實時:寫入後可以立即被分析。
- 快速:一秒内,查詢(5個條件)可處理10億級資料,分析(5個次元聚合+GroupBy)可聚合億級别資料。
- 靈活:可以改變任意查詢和分析條件,實時擷取結果。
- 生态豐富:除控制台提供的報表、儀表盤、快速分析等功能外,還可以與Grafana、DataV、Jaeger等産品無縫對接,并支援Restful API,JDBC等協定。
如上文所說,SLS 提供的疫情資料通過 version 字段來标記資料版本。為了查詢出最新版本的資料,可以通過以下 SQL:
type : "Province/State Cases" | select .... from log l right join (select max(version) as version from log) r on l.version = r.version
在預定義的疫情大盤中,每一個儀表盤對應的都是一個 SQL 分析。以 Global Cases Trend(全球疫情趨勢)為例,為了分析全球累計确診、死亡、治愈,以及現存病例發展趨勢,我們可以通過以下 SQL 查詢,并将結果圖示儲存為儀表盤即可,友善快捷。
type : "Global Cases" | select date_format(date_parse(l.a, '%Y-%m-%d'), '%b %e') as "Date", l.b as "Confirmed", l.b - r2.b - r6.b as "Active Confirmed", r2.b as "Deaths", r6.b as "Recovered" from (select a,b from log l right join (select max(version) as version from log) r on l.version = r.version, unnest( cast( json_parse("Confirmed Trend") as map(varchar, bigint) ) ) as t(a,b)) l left join (select a,b from log l right join (select max(version) as version from log) r on l.version = r.version, unnest( cast( json_parse("New Confirmed Trend") as map(varchar, bigint) ) ) as t(a,b)) r on l.a = r.a left join (select a, b from log l right join (select max(version) as version from log) r on l.version = r.version, unnest( cast( json_parse("Deaths Trend") as map(varchar, bigint) ) ) as t(a, b)) r2 on l.a = r2.a left join (select a, b from log l right join (select max(version) as version from log) r on l.version = r.version, unnest( cast( json_parse("Recovered Trend") as map(varchar, bigint) ) ) as t(a, b)) r6 on l.a = r6.a order by l.a
使用方法
登入阿裡雲日志服務控制台,可以看到疫情分析的應用:
點選進入進行首次配置(一次性,後續資料會自動同步),之後即可直接使用日志服務提供的多份資料大盤,開啟互動式分析、可視化之旅。