記事の対象者と解消できるお悩み
【対象者】
初中級データアナリスト
【興味関心】
- 位置情報を使ったデータ分析
- 商圏分析
- 出店戦略
- マーケティング最適化
- 顧客ターゲティング
- 物流効率化
【解消できるお悩み】
- 顧客がどこから来店しているのか知りたい
- 最適な出店場所を見つけたい
- 地域特性に合わせたマーケティング施策を展開したい
- ターゲット顧客を効率的に絞り込みたい
- 配送ルートを最適化して、物流コストを削減したい
記事作成者
【人物】株式会社志庵 代表取締役 佐藤 光 起業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 Cloudのデータウェアハウス「BigQuery」は、地理空間データを扱うための強力な機能「BigQuery GIS」を提供しています。BigQuery GISは、地理空間データ型、関数、演算子などをサポートしており、SQLを使って簡単に地理空間分析を行うことができます。この記事では、BigQuery GISを使って、地図データと位置情報を活用した分析を行う方法を、具体的な例を交えながら解説します。データ分析初心者の方でも、BigQuery GISを使えば、地理空間データ分析の基礎を理解し、実践的な分析スキルを習得できるでしょう。
目次
- BigQuery GISとは?
- BigQuery GISで地理空間分析を行うメリット
- 地理空間分析に役立つBigQueryの無料公開データセット
- BigQuery GISでよく使う関数
- BigQuery公開データで実践!地理空間分析例
- FAQ:BigQueryに関するよくある質問
- まとめ:BigQuery GISで地理空間データを分析し、ビジネスに役立てよう!
1. BigQuery GISとは?
BigQuery GISは、BigQueryで地理空間データを分析するための機能です。BigQuery GISは、地理空間データ型(GEOGRAPHY)、関数、演算子などをサポートしており、SQLを使って簡単に地理空間分析を行うことができます。地理空間分析とは、位置情報を含むデータを分析することを指し、例えば、以下のような分析を行うことができます。
- 2地点間の距離計算
- 特定のエリア内のデータ抽出
- 位置情報に基づいたクラスタリング
- 空間データの可視化
2. BigQuery GISで地理空間分析を行うメリット
BigQuery GISで地理空間分析を行うメリットは、以下の点が挙げられます。
- 大規模な地理空間データの高速処理: BigQueryの高速なクエリ処理能力により、大規模な地理空間データを高速に分析できます。
- 標準SQLの利用: 標準SQLで地理空間分析を行うことができるため、GISソフトなどの専門ツールを新たに学習する必要がありません。
- 豊富な関数と演算子: 距離計算、面積計算、交差判定など、地理空間分析に必要な関数が豊富に用意されています。
- 他のBigQuery機能との統合: BigQuery MLやData Studioなどの他のBigQuery機能と統合することで、より高度な分析や可視化を行うことができます。
- コストパフォーマンスの高さ: BigQueryは従量課金制なので、必要な時に必要なだけ利用でき、コストを抑えられます。
3. 地理空間分析に役立つBigQueryの無料公開データセット
BigQueryには、地理空間分析に役立つ様々な無料公開データセットが用意されています。以下は、その一例です。
- geo_us_boundaries: アメリカ合衆国の州、郡、郵便番号などの境界線データです。
- OpenAQ: 世界中の大気質データを収集したデータセットです。大気質測定地点の位置情報が含まれています。
- NOAA Global Surface Summary of the Day Weather Data: NOAA(アメリカ海洋大気庁)が提供する、世界各地の地上気象観測データです。気象観測所の位置情報が含まれています。
4. BigQuery GISでよく使う関数
ここでは、BigQuery GISでよく使われる関数をいくつか紹介します。
4.1 ST_DISTANCE
2つの地理空間オブジェクト間の距離を計算します。単位はメートルです。
構文:
ST_DISTANCE(geography_1, geography_2)
例: 2つの地点間の距離を計算する
SELECT ST_DISTANCE(ST_GEOGPOINT(-73.985130, 40.758896), ST_GEOGPOINT(-122.419418, 37.774929)) AS distance;
4.2 ST_GEOGPOINT
経度と緯度から地理空間ポイントを作成します。
構文:
ST_GEOGPOINT(longitude, latitude)
例: 経度 -122.419418、緯度 37.774929 の地理空間ポイントを作成する
SELECT ST_GEOGPOINT(-122.419418, 37.774929) AS point;
4.3 ST_CONTAINS
ある地理空間オブジェクトが別の地理空間オブジェクトに完全に含まれているかどうかを判定します。含まれている場合は TRUE、そうでない場合は FALSE を返します。
構文:
ST_CONTAINS(geography_1, geography_2)
例: あるポリゴンが別のポリゴンに完全に含まれているかどうかを判定する
SELECT ST_CONTAINS(ST_GEOGFROMTEXT('POLYGON((-122.4 37.8, -122.3 37.8, -122.3 37.7, -122.4 37.7, -122.4 37.8))'), ST_GEOGPOINT(-122.35, 37.75)) AS is_contained;
4.4 ST_INTERSECTS
2 つの地理空間オブジェクトが交差するかどうかを判定します。交差する場合は TRUE、そうでない場合は FALSE を返します。
構文:
ST_INTERSECTS(geography_1, geography_2)
例: あるポリゴンと別のポリゴンが交差するかどうかを判定する
SELECT ST_INTERSECTS(ST_GEOGFROMTEXT('POLYGON((-122.4 37.8, -122.3 37.8, -122.3 37.7, -122.4 37.7, -122.4 37.8))'), ST_GEOGFROMTEXT('POLYGON((-122.3 37.9, -122.2 37.9, -122.2 37.8, -122.3 37.8, -122.3 37.9))')) AS intersects;
5. BigQuery公開データで実践!地理空間分析例
ここでは、BigQueryの無料公開データセット「Chicago crim」使って、地理空間分析の例をいくつか紹介します。
BigQuery分析例:シカゴの犯罪発生状況をヒートマップで可視化
まず、犯罪発生地点の密度をヒートマップで可視化します。
SELECT
st_geohash(st_geogpoint(longitude, latitude), 10) AS geohash,
COUNT(*) AS crime_count
FROM bigquery-public-data.chicago_crime.crime
WHERE longitude IS NOT NULL AND latitude IS NOT NULL
GROUP BY 1
【BigQuery SQL解説】
- ST_GEOGPOINT(longitude, latitude) で、犯罪発生地点を地理空間ポイントデータに変換します。
- ST_GEOHASH 関数で、地理空間ポイントデータを指定された精度(ここでは10)のジオハッシュに変換します。
- ジオハッシュは、緯度経度を表す短い文字列で、地理空間データを効率的に処理するために使用されます。
- COUNT(*) で、各ジオハッシュ内の犯罪発生件数をカウントします。
- GROUP BY 1で、ジオハッシュで集計します。
【BigQuery分析での活用例】
- ジオハッシュと犯罪発生件数を組み合わせることで、犯罪発生の集中エリアをヒートマップとして可視化できます。
- ヒートマップは、犯罪発生のホットスポットを視覚的に把握するのに役立ちます。
- 犯罪発生の集中エリアと、そのエリアの環境要因(例:商業施設、公園、交通量)を分析することで、犯罪発生と環境要因との関係性を明らかにすることができます。
BigQuery分析例:時間帯別・犯罪種別の発生件数
次に時間帯別にどの犯罪種別が多いのかを分析します。
SELECT
primary_type,
EXTRACT(HOUR FROM date) AS hour,
COUNT(*) AS crime_count
FROM bigquery-public-data.chicago_crime.crime
GROUP BY 1, 2
ORDER BY 1, 2
【BigQuery SQL解説】
- EXTRACT(HOUR FROM date) で、犯罪発生日時の時間帯を抽出します。
- COUNT(*) で、犯罪種別と時間帯ごとの犯罪発生件数をカウントします。
- GROUP BY 句で、犯罪種別と時間帯ごとに集計します。
- ORDER BY 句で、犯罪種別と時間帯順に並べ替えます。
【BigQuery分析での活用例】
- 犯罪種別ごとに発生しやすい時間帯を特定することで、犯罪発生メカニズムの解明や、効果的な犯罪予防対策の立案に役立ちます。
- 特定の時間帯に発生しやすい犯罪と、その時間帯の地域特性(例:人通り、照明状況)との関係を分析することで、犯罪が発生しやすい場所や状況を特定することができます。
注意点
- これらのクエリは、BigQuery公開データに基づいています。データの正確性や最新性については、実際のBigQuery公開データをご自身でご確認ください。
- 当該分析は、様々な要因を総合的に判断する必要があります。これらのクエリは分析の一例であり、意思決定の根拠として単独で使用すべきではありません。
6. FAQ:BigQueryに関するよくある質問
Q1. BigQueryの無料枠を超えて利用すると、どのくらい費用がかかりますか?
A1. 無料枠を超えた場合、従量課金制で料金が発生します。料金は、処理したデータ量やストレージ容量などによって異なります。詳しくは、BigQueryの料金ページをご確認ください。
Q2. BigQueryで使えるSQLは、他のデータベースと同じですか?
A2. BigQueryは標準SQLをサポートしており、他のデータベースで学んだSQLの知識を活かすことができます。ただし、BigQuery独自の関数や構文も存在するため、BigQueryのドキュメントで詳細を確認することをおすすめします。
Q3. SQLの学習には、どのような教材がありますか?
A3. SQLの学習には、オンライン学習サイト、書籍、動画教材など、様々な教材があります。初心者向けの教材から、上級者向けの教材まで、レベルに合わせて選ぶことができます。Googleが提供するBigQueryのチュートリアルもSQLの学習に役立ちます。
6. まとめ:BigQuery GISで地理空間データを分析し、ビジネスに役立てよう!
BigQuery GISは、地理空間データを分析するための強力なツールです。BigQuery GISを使うことで、位置情報を含むデータを分析し、ビジネスに役立つ様々な情報を引き出すことができます。この記事で紹介した分析例を参考に、BigQuery GISを使った地理空間分析に挑戦し、新たなビジネスチャンスを発見しましょう!
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