AWSでコロナウィルス(COVID-19)のデータレイクが公開されたので試してみた

AWSでコロナウィルス(COVID-19)のデータレイクが公開されました。Athenaでコロナウィルス(COVID-19)のデータセットへ自由にアクセスできる環境が簡単に作れるので試してみました。
2020.04.10

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWSでコロナウィルス(COVID-19)のデータレイクが公開されました。

Athenaを使って自由にSQLクエリコロナウィルス(COVID-19)のデータセットへアクセスできる環境が提供されています。さっそく試してみました!

前提

今回の環境を構築するために、次の条件が必要です。

  • AWSアカウントがあること
  • CloudFormationスタックを作成できる権限があること
  • Glueを作成できる権限があること

使ってみる

公式ブログに記載されている、CloudFormationのクイック作成リンクをクリックして、CloudFormationを構築します。このCFnスタックはオハイオ(us-east-2)リージョンに構築されます。

できあがったCFnのリソースを見てみると、Glueテーブルがいっぱいできています。

作成されたGlueテーブルは、オハイオ(us-east-2)リージョンのAthenaから簡単にSQLクエリでアクセスできます。 オハイオリージョンで初めてAthenaを使う場合、SQLクエリの結果を保存するS3バケットを設定する必要があります。

別途適当なS3バケットを新しく作成した後に、SQLクエリの結果を保存する場所を設定してください。

Athenaの画面を見てみると、covid-19という名前のデータベースが作成されていて、いくつかのテーブルができていることがわかります。

具体的に1つのテーブル(enigma_jhuテーブル)の中身を見てみます。

このテーブルは世界中のprovinces, states, countriesで確認されたCOVID-19の症例データです。 アメリカでは州レベルまでブレークダウンされています。

テーブルの各項目の概要は次のような感じです。

項目名 概要
province_state 中国-省名、米国/カナダ/オーストラリア-市名/州/県名、その他-イベント名(例:クルーズ船「ダイヤモンド・プリンセス」)、その他の国-空白
country_region WHOに準拠した国名・地域名(更新予定)
last_update MM/DD/YYYY HH:mm (24 hour format, in UTC)
latitude 緯度
longitude 経度
confirmed 確認された症例数
deaths 死者数
recovered 回復者数

たとえばこんなSQLクエリを実行すると、日本の直近10件のデータがわかります。

SELECT country_region as "国名",
         last_update as "最終更新日時",
         confirmed as "症例数",
         deaths as "死者数",
         recovered as "回復者数"
FROM "covid-19"."enigma_jhu"
WHERE country_region='Japan'
ORDER BY last_update DESC limit 10;

そのほかにも、COVID-19についてテストされた人の数および陽性・陰性数やアメリカの病院のベッド等いろいろな情報が公開されているので、興味のある方はぜひAWSの公式ブログを御覧ください。

また、AthenaをデータソースとしてQuickSightで可視化できます。 自分で作らなくてもAWS公式がQuickSightダッシュボードを公開しているので、これで毎日の更新を追跡することもできます。

終わりに

SQLクエリさえ書ければ、Athenaを利用してCOVID-19のデータセットに簡単にアクセスして利用できます。

SQLクエリを書ける方は簡単に利用できるので、ぜひ試してみてください。

そして、コロナウィルスで大変な時期ではありますが、不要不急な外出はなるべく控えて、3密(密閉空間、密集場所、密接場面)は避けて、手をよく洗い、みんなでこの苦境を乗り越えていきましょう!