SnowflakeのシェアリングデータベースにCOVID-19関連データが公開されています

2020.04.06

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

こんにちは、データアナリティクス事業本部プロダクト営業部プリセールススペシャリストの兼本です。

2020年3月26日にデータサービスおよびテクノロジー企業であるStarschema社が、SnowflakeのCloud Data Platform上にCOVID-19に関するパブリックデータセットを公開したとの発表がありました。

Snowflakeの特徴のひとつであるデータシェアリング機能を使用することで、Snowflake のアカウント間で安全にデータを共有できます。
単に共有するだけでなく、データのサブセットへのアクセスをデータ利用者(サブスクライバ)側に許可することで、各サブスクライバが個別のビューを作成することもできます。またデータ更新は即座に反映されるため、サブスクライバは常にアップデートされるデータを自社のデータベースにコピーしたりマージすることなく、スムーズに利用することができます。

データシェアリングの詳細については、以下のエントリも合わせてご覧ください。

以下はこのデータベースで提供されているデータです。

データ名称 データ提供元 テーブル名
US COVID-19 testing and mortality(COVID-19の検査と死亡率) The COVID Tracking Project CT_US_COVID_TESTS
Global data on healthcare providers(医療提供者に関するグローバルデータ) OpenStreetMap, via Healthsites.io HS_BULK_DATA
Global case counts(グローバル症例数) JHU CSSE JHU_COVID_19
US healthcare capacity by state, 2018(米国の州別医療キャパシティ、2018年) The Henry J. Kaiser Family Foundation KFF_HCP_CAPACITY
US policy actions by state(米国の州別政策行動) The Henry J. Kaiser Family Foundation KFF_US_POLICY_ACTIONS
US actions to mitigate spread, by state(米国の拡散緩和措置、州別) The Henry J. Kaiser Family Foundation KFF_US_STATE_MITIGATIONS
ICU beds by county, US(米国のICUベッド数(郡別)) The Henry J. Kaiser Family Foundation KFF_US_ICU_BEDS
Italy case statistics, summary(イタリアの事例統計、要約) Protezione Civile PCM_DPS_COVID19
Italy case statistics, detailed(イタリアの事例統計、詳細) Protezione Civile PCM_DPS_COVID19_DETAILS
WHO situation reports(WHO状況報告書) World Health Organization WHO_SITUATION_REPORTS

ほとんどはアメリカの状況を示すデータですが、HS_BULK_DATA やJHU_COVID_19 はグローバルデータが提供されていましたので、実際にこれらのデータを利用してみました。

データシェアリングの手続き

Snowflake上でシェアされているデータへのアクセスは、データの提供者に許可を得る必要があり、今回の場合は、以下のサイトでエントリをすることで、データへのアクセスをリクエストすることができます。

データシェアリングはデータ提供者が許可するだけで即座に使用することができます。ただし現在のバージョンでは、データ提供者と利用者のクラウドサービスとリージョンが同一である必要があります。
私が使用していたSnowflakeはAWSの東京リージョン(ap-northeast-1)で動作していたため、先方の準備に3日ほどかかりました。
おそらく次回以降東京リージョンで同じデータを利用される方は、すぐにデータにアクセスできると思います。

利用開始

データの利用が許可されたら、Snowflake側でデータシェアリングの設定を行います。

  • Snowflakeサービスにログインをして「共有」タブを開きますが、データシェアリングの設定は「ACCOUNTADMIN」ロールで行う必要があります。画面では「PUBLIC」ロールを使用しているため、データシェアリングの設定をすることができません。

  • 「ACCOUNTADMIN」ロールに切り替えます。

  • 共有タブを確認するとシェアされているデータベース(インバウンド)の一覧に「COVID19_BY_STARSCHEMA」という名称のデータベースがあります。これを選択して「安全な共有からデータベースを作成」ボタンを押下します。

  • 共有されたデータベースを使用するための名称とアクセス可能なロールを設定します。

  • 「データベースを作成」ボタンを押下すると最終確認の画面が表示され、「OK」を押下することでデータシェアリングの設定が完了します。データをコピーする必要がないため、作業は一瞬で終わります。

  • データベースの一覧を確認すると先ほど作成した「CM_COVID19」というデータベースが作成されていることが確認できます。

共有されたデータへのアクセス

共有されたデータは通常のデータベーステーブルと同様にSQLアクセスが可能です。ワークシートから以下のようなSQLを作成してデータにアクセスすることができます。

執筆時点では2020年4月5日までのデータが登録されており、常にデータがアップデートされていることが確認できました。

まとめ

いかがでしたか。
COVID-19に関しては世界各国で深刻な状況が続いており、早期の回復を願うばかりですが、このような状況では最新のデータをいかにスムーズに届けることができるかが重要です。
Snowflakeのデータシェアリング機能を使用することで、データをコピーすることなく許可されたユーザにのみ素早く最新のデータを届けることが可能となることがお分かりいただけたのではないでしょうか。

以上、最後までお読みいただきありがとうございました。