記事の対象者と解消できるお悩み
【対象者】
初中級データアナリスト
【興味関心】
- 人々の行動変化
- 顧客動向
- 需要予測
- 店舗運営
- マーケティング戦略
- リモートワークの影響
【解消できるお悩み】
- コロナ禍で、人々の行動はどう変化したのか知りたい
- 顧客の来店数が減っているが、その原因を分析したい
- 今後の需要を予測し、適切な在庫管理や生産計画を立てたい
- 店舗の営業時間やレイアウトを、人々の行動変化に合わせて最適化したい
- リモートワークの普及が、オフィス需要に与える影響を知りたい
記事作成者
【人物】株式会社志庵 代表取締役 佐藤 光 起業6年目
【経歴】株式会社光通信➜光通信同期と起業➜データアナリスト転職➜SaaSで2度目起業
【会社実績】
SaaS 資金調達無しARR2億円
SaaS GMV200億円
【内容】自社AaaSであるStruccle、webスクレイピング、BigQueryに関する記事を作成
各種用語
- ARR(Annual Recurring Revenue)
- サブスクリプションサービスの年間売上※当社はSaaS売上
- Struccle(ストラクル)
- 株式会社志庵が独自開発しているAaaS
- AaaS(アース)
- Data Analytics as a Serviceの意
- SaaS(サース)
- Software as a Serviceの意
- GoogleCloudPlatform
- Googleが提供するクラウドプラットフォーム。この中に様々なサービスが存在する。
- GCP(ジーシーピー)
- GoogleCloudPlatformの略
- BigQuery(ビッグクエリ)
- 上記GCPの中に含まれるデータ分析基盤サービス
- SQL(エスキューエル)
- データベースを操作するプログラミング言語
- クエリ
- SQLで記述した命令文
- クエリ例)
- SQL構文のクエリ⬇
SELECT item_name, price FROM sales_table where price >= 1000;
- 上記クエリ(命令文)の意味としては「売上テーブル(sales_table)から価格(price)が1000円以上の商品名(item_name)と価格(price)を抽出する」
- SQL構文のクエリ⬇
- ペタバイト
- データの単位 ペタバイト=1000テラバイト=約100兆行のデータ
概要
新型コロナウイルスのパンデミックは、私たちの生活様式を大きく変えました。特に、都市部における人々の移動や活動は大きな影響を受け、その変化はビジネスにも大きな影響を与えています。人々の移動パターンを把握することは、小売業、飲食業、観光業など、多くの業界において、需要予測、店舗運営、マーケティング戦略などに役立ちます。
Googleは、人々の移動傾向を分析するためのデータ「Google Community Mobility Reports」を公開しています。このデータは、Googleマップの利用状況などから集計されたもので、様々な場所(小売店・娯楽施設、公園、職場、住宅など)への訪問状況の変化を把握することができます。今回は、このGoogleモビリティデータをBigQueryを使って分析し、コロナ禍が都市の動向にどのような影響を与えたのかを可視化してみましょう。BigQueryの強力な分析機能と可視化ツールとの連携により、大量のモビリティデータから、人々の行動変化を捉え、ビジネスに役立つインサイトを得ることができます。
目次
- BigQueryでモビリティデータ分析を行うメリット
- 分析に使用するBigQueryのデータセット
- BigQueryでモビリティデータを可視化する手順
- BigQueryを使ったモビリティデータ分析例
- FAQ:BigQueryに関するよくある質問
- まとめ:BigQueryでモビリティデータを分析し、未来のビジネス戦略に役立てよう!
1. BigQueryでモビリティデータ分析を行うメリット
BigQueryは、モビリティデータ分析に最適なツールです。その理由は、以下の様なメリットがあるからです。
- 大規模データの高速処理: 膨大なモビリティデータを高速に分析・処理できるため、可視化に必要なデータ集計を効率的に行えます。
- 様々なデータソースとの連携: 公開データ、自社データ、外部データなど、様々なデータソースと連携できるため、モビリティデータと他のデータを組み合わせて、より多角的な分析と可視化を行うことができます。
- 豊富な分析機能: SQL、機械学習、統計分析など、高度な分析機能を利用できるため、複雑なデータ加工や分析にも対応できます。
- 可視化ツールとの連携: Data Studio、Tableau、Lookerなど、様々な可視化ツールと連携できるため、分析結果を分かりやすく表現することができます。
- コストパフォーマンスの高さ: 従量課金制なので、必要な時に必要なだけ利用でき、コストを抑えられます。
- 高いセキュリティ: Google Cloudの強固なセキュリティ基盤により、安心してデータを管理できます。
2. 分析に使用するBigQueryのデータセット
今回の分析では、BigQueryの公開データセット「Google Community Mobility Reports」を使用します。このデータセットには、世界各国の地域における、小売店・娯楽施設、公園、職場、住宅などへの訪問状況の変化を記録したデータが含まれています。 baseline となる期間と比較した、各カテゴリへの訪問状況の変化率が日別に記録されています。
3. BigQueryでモビリティデータを可視化する手順
BigQueryでモビリティデータを可視化する手順は以下の通りです。
3.1 1. データ確認
まず、データセットの内容を確認します。BigQueryコンソールのUIでデータセットのスキーマを確認したり、サンプルデータをプレビューしたりすることで、データの構造や内容を理解することができます。`global_mobility_report.v2` データセットには、 `mobility_report` テーブルが含まれており、国、地域、日付、カテゴリ別のモビリティデータが記録されています。
3.2 2. データ加工
必要に応じて、データを加工します。例えば、特定の国や地域、期間、カテゴリに絞り込んだり、日別の変化率を週平均や月平均に集計したりします。BigQueryは、SQLを使ってデータ加工を行うための様々な関数を提供しています。
3.3 3. 可視化ツールとの連携
BigQueryの分析結果を可視化するには、可視化ツールと連携する必要があります。Data Studio、Tableau、Lookerなど、BigQueryと連携できる可視化ツールは数多く存在します。それぞれのツールの特徴を理解し、目的に合ったツールを選びましょう。
3.4 4. グラフの作成
可視化ツールにBigQueryの分析結果を読み込み、グラフを作成します。折れ線グラフ、棒グラフ、ヒートマップなど、様々なグラフを作成することで、モビリティデータの変化を視覚的に分かりやすく表現することができます。可視化ツールは、ドラッグ&ドロップで簡単にグラフを作成できる機能を提供しているため、プログラミングの知識がなくても利用できます。
3.5 5. 考察と分析結果の活用
作成したグラフから、コロナ禍が都市の動向にどのような影響を与えたのかを考察します。例えば、ロックダウン期間中の小売店・娯楽施設への訪問状況の変化、リモートワークの普及による職場への訪問状況の変化、公園への訪問状況の変化などを分析し、レポートにまとめます。分析結果を基に、今後のビジネス戦略、マーケティング戦略、都市計画などに役立てることができます。
4. BigQueryを使ったモビリティデータ分析例
今回はBigQuery公開データセット bigquery-public-data.covid19_google_mobility.mobility_report を用いて、コロナ禍が都市の動向に与えた影響を分析します。
このデータセットには、Googleが提供する 「コミュニティ モビリティ レポート」 のデータが格納されています。
これは、食料品店や公園、職場など、様々な場所における人々の滞在時間の変化を示すデータであり、コロナ禍における人々の行動変容を理解する上で貴重な情報源となります。
BigQuery分析例:都市別・期間別モビリティ変化
主要都市における、コロナ禍前後のモビリティ変化を比較分析します。
ここでは小売店・娯楽施設(retail_and_recreation_percent_change_from_baseline)、食料品店・薬局(grocery_and_pharmacy_percent_change_from_baseline)、公園(parks_percent_change_from_baseline)、職場(workplaces_percent_change_from_baseline)、居住地(residential_percent_change_from_baseline)のモビリティ変化を、2020年7月(2020-07)と2021年7月(2021-07)で比較します。
SELECT
sub_region_1,
sub_region_2,
EXTRACT(YEAR FROM date) AS year,
AVG(CASE WHEN EXTRACT(MONTH FROM date) = 7 THEN retail_and_recreation_percent_change_from_baseline ELSE NULL END) AS avg_retail_and_recreation,
AVG(CASE WHEN EXTRACT(MONTH FROM date) = 7 THEN grocery_and_pharmacy_percent_change_from_baseline ELSE NULL END) AS avg_grocery_and_pharmacy,
AVG(CASE WHEN EXTRACT(MONTH FROM date) = 7 THEN parks_percent_change_from_baseline ELSE NULL END) AS avg_parks,
AVG(CASE WHEN EXTRACT(MONTH FROM date) = 7 THEN workplaces_percent_change_from_baseline ELSE NULL END) AS avg_workplaces,
AVG(CASE WHEN EXTRACT(MONTH FROM date) = 4 THEN residential_percent_change_from_baseline ELSE NULL END) AS avg_residential
FROM `bigquery-public-data.covid19_google_mobility.mobility_report`
WHERE country_region_code = 'US'
AND sub_region_1 IS NOT NULL
AND sub_region_2 IS NOT NULL
AND EXTRACT(YEAR FROM date) IN (2020, 2021)
GROUP BY 1, 2,3
ORDER BY year, sub_region_1, sub_region_2
【BigQuery SQL解説】
- EXTRACT()関数で、日付(date)から年(year)と月(month)を抽出します。
- CASE文とWHEN句を用いて、7月のモビリティデータのみを抽出します。
- AVG()関数で7月における各指標の平均値を計算します。
- WHERE句で国コード(country_region_code)、年(year)を指定して、分析対象を絞り込みます。
- GROUP BY句で州(sub_region_1)、都市(sub_region_2)と年(year)ごとに集計します。
- ORDER BY句で年(year)の昇順に並べ替えます。
【BigQuery分析での活用例】
- コロナ禍前後における、各場所への人々の移動の変化を比較することで、都市における人々の行動変容を可視化できます。
- 飲食店や小売店への訪問の減少、公園利用の増加、在宅勤務の増加といった傾向を把握し、都市計画やビジネス戦略に役立てることができます。
BigQuery分析例:曜日別モビリティ変化の傾向
コロナ禍で、曜日ごとの人々の行動パターンに変化があったのかを分析します。
ここでは、ロサンゼルス郡(Los Angeles County)における、2020年7月(2020-07)と2021年7月(2021-07)の、小売店・娯楽施設へのモビリティ変化を曜日(day_of_week)ごとに集計し、比較します。
WITH mobility_by_day_of_week AS (
SELECT
FORMAT_DATE('%A', date) AS day_of_week,
EXTRACT(YEAR FROM date) AS year,
AVG(retail_and_recreation_percent_change_from_baseline) AS avg_retail_and_recreation
FROM `bigquery-public-data.covid19_google_mobility.mobility_report`
WHERE country_region_code = 'US'
AND sub_region_1 = 'California'
AND sub_region_2 = 'Los Angeles County'
AND EXTRACT(YEAR FROM date) IN (2020, 2021)
AND EXTRACT(MONTH FROM date) = 7
GROUP BY 1, 2
)
SELECT
day_of_week,
AVG(CASE WHEN year = 2020 THEN avg_retail_and_recreation ELSE NULL END) AS avg_retail_and_recreation_2020,
AVG(CASE WHEN year = 2021 THEN avg_retail_and_recreation ELSE NULL END) AS avg_retail_and_recreation_2021
FROM mobility_by_day_of_week
GROUP BY 1
ORDER BY
CASE
WHEN day_of_week = 'Monday' THEN 1
WHEN day_of_week = 'Tuesday' THEN 2
WHEN day_of_week = 'Wednesday' THEN 3
WHEN day_of_week = 'Thursday' THEN 4
WHEN day_of_week = 'Friday' THEN 5
WHEN day_of_week = 'Saturday' THEN 6
WHEN day_of_week = 'Sunday' THEN 7
END
【BigQuery SQL解説】
- WITH句でmobility_by_day_of_weekという共通テーブル式を定義し、曜日(day_of_week)、年(year)、小売店・娯楽施設への平均モビリティ変化(avg_retail_and_recreation)を集計します。
- FORMAT_DATE(‘%A’, date)で、日付から曜日の名前を取得します。
- WHERE句で、国コード(country_region_code)、州(sub_region_1)、都市(sub_region_2)、年(year)、月(month)を指定して、分析対象を絞り込みます。
- CASE文とWHEN句を用いて、2020年と2021年のデータを分けて集計します。
- ORDER BY句で、曜日を月曜日から日曜日までの順番に並べ替えます。
【BigQuery分析での活用例】
- コロナ禍前後における曜日別のモビリティ変化を比較することで、人々の行動パターンの変化をより詳細に把握できます。
- 平日と週末のモビリティ変化の差を比較することで、在宅勤務の普及による影響などを分析することができます。
注意点
- これらのクエリは、BigQuery公開データに基づいています。データの正確性や最新性については、実際のBigQuery公開データをご自身でご確認ください。
- 当該分析は、様々な要因を総合的に判断する必要があります。これらのクエリは分析の一例であり、意思決定の根拠として単独で使用すべきではありません。
クエリ参考記事
5. FAQ:BigQueryに関するよくある質問
Q1. BigQueryの無料枠を超えて利用すると、どのくらい費用がかかりますか?
A1. 無料枠を超えた場合、従量課金制で料金が発生します。料金は、処理したデータ量やストレージ容量などによって異なります。詳しくは、BigQueryの料金ページをご確認ください。
Q2. BigQueryで使えるSQLは、他のデータベースと同じですか?
A2. BigQueryは標準SQLをサポートしており、他のデータベースで学んだSQLの知識を活かすことができます。ただし、BigQuery独自の関数や構文も存在するため、BigQueryのドキュメントで詳細を確認することをおすすめします。
Q3. SQLの学習には、どのような教材がありますか?
A3. SQLの学習には、オンライン学習サイト、書籍、動画教材など、様々な教材があります。初心者向けの教材から、上級者向けの教材まで、レベルに合わせて選ぶことができます。Googleが提供するBigQueryのチュートリアルもSQLの学習に役立ちます。
6. まとめ:BigQueryでモビリティデータを分析し、未来のビジネス戦略に役立てよう!
BigQueryは、モビリティデータ分析に最適なツールです。BigQueryの高速な処理性能、豊富な分析機能、そして可視化ツールとの連携を活用することで、人々の移動傾向を分析し、ビジネスに役立つインサイトを得ることができます。この記事で紹介した分析手順や分析例を参考に、BigQueryを使ったモビリティデータ分析に挑戦し、未来のビジネス戦略に役立てましょう!
BigQuery導入サポート、転職検討中の方はお問い合わせフォームからご相談くださいませ。
誠心誠意精一杯対応いたします。
【参考URL】
GoogleCloudPlatform:https://console.cloud.google.com/welcome/new
BigQuery:https://cloud.google.com/bigquery?hl=ja
BigQueryリリース情報:https://cloud.google.com/bigquery/docs/release-notes
BigQuery料金:https://cloud.google.com/bigquery/pricing
BigQuery料金無料枠:https://cloud.google.com/bigquery/pricing?hl=ja#free-tier
Google Cloud活用事例:https://cloud.google.com/customers/index.html?hl=ja#
Looker Studio:https://cloud.google.com/looker-studio?hl=ja
Looker Studioサンプル:https://cloud.google.com/bigquery/docs/visualize-looker-studio?hl=ja