<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=445779107733115&amp;ev=PageView&amp;noscript=1">

BigQueryとデータポータルで構築する
SNS分析環境の構築方法をご紹介!

 2022.07.27  2022.08.12

近年、FacebookやTwitter、InstagramなどのSNSが若年層を中心に大きな流行・浸透を見せ、マーケティング等の用途にSNSのデータを分析したい!という要望をお持ちの企業様は多いのではないでしょうか。

Google Cloud(以下、GCP) のデータウェアハウスサービスであるBigQueryは、様々な構造化データを格納し、蓄積することのできるデータ分析向けのサービスです。本稿では、このBigQueryにSNSのデータを取得・蓄積し、同じくGoogleのサービスであるデータポータルを利用して可視化・分析する方法をご紹介します。

データ分析基盤の概要

本稿でご紹介する構成では、主に下記のサービスを利用しています。用途も合わせて簡潔に記載します。

  • Google BigQuery
    • 分析用データの蓄積先
  • Google Cloud Functions
    • データソースからのデータの取得およびデータウェアハウスへの転送
  • Google Natural Language API
    • 取得したデータの加工処理
  • Google Pub/Sub / Google Cloud Scheduler / Google Secret Manager
    • バッチ処理の起動および管理
    • セキュリティ面の管理
  • Google データポータル
    • データの可視化および分析

また、構成図は以下のとおりです。

BigQueryとデータポータルで構築するSNS分析環境の構築方法をご紹介!-1

データ・ドリブン時代の歩き方
GCP総合ブローシャー

Cloud Functions のサービス概要

次に、各サービスについて簡単に概要をご紹介します。

Google Cloud Functionsは、GCPのサーバーレスコンピューティングサービスです。文字通りサーバーレスでアプリケーションを実行できるサービスで、サーバーの構築や保守、負荷対策などの管理を一切必要とせず、実装したアプリケーションを利用することができます。

言語としてはJavaScriptやPython、PHPやRubyなど複数の開発言語に対応しており、Cloud Storage へのファイルアップロードや Pub/Sub、Firebase のイベントなど、任意のサービスの HTTP リクエスト経由でコードが実行される仕組みとなっています。

また、Cloud Functionsは従量課金制の料金体系を取っているため、関数がアイドル状態の場合、料金は発生しません。すなわち、処理をしているときだけ(処理時間分の)料金がかかる制度なため、料金面でも非常にリーズナブルな価格で利用することが可能です。

Natural Langaue API のサービス概要

Natural Language APIは、GCPにおける自然言語系機械学習サービス、Natural Language AIのうちの1つのサービスです。通常機械学習では目的のデータ分析に対し、学習モデルのトレーニングという作業が必要になります。しかしながらNatural Language APIでは、Googleにより予めトレーニングされた機械学習モデルを利用しての言語解析が可能です。

また、具体的な機能として、Natural Language APIは「感情分析、エンティティ分析、エンティティ感情分析、コンテンツ分類、構文解析」などの幅広い分類、分析に対応しています。

それぞれがどんな分析内容かは、大まかに以下の通りです。

  • 感情分析
    • 「score」、「magnitude」の2つの数値を表示し、この数値とタスクの目的から、テキストがポジティブかネガティブか、あるいはニュートラルなのかを分析する
  • エンティティ分析
    • 「どんな単語(name)」が「どんなタイプ(type)」であり、「文章中でどのくらい重要か(salience)」ということを分析する
  • エンティティ感情分析
    • 「感情分析」と「エンティティ分析」の2つを組み合わせた分析をする
  • 構文解析
    • 文章中の単語の品詞や修飾関係等を分析する
  • コンテンツ分類
    • テキストがどんなカテゴリに属していそうかを分類する

本稿でご紹介する構成では、「感情分析」「構文解析」を主に利用しています。

Google Cloud
Google Cloud 事例

BigQuery のサービス概要

Google BigQueryはGCPのデータウェアハウスサービスであり、データの蓄積や処理に特化したサービスです。テラバイトやペタバイトのような非常に膨大なデータに対しても、SQLを利用して簡単に処理をすることが可能です。データウェアハウスはRDBと比べ、データ分析をする事を前提として構成されており、一般的に次のような違いが特徴として挙げられます。

  • データウェアハウスではデータを時系列順に保持しており、蓄積されたデータはどんどん溜まり続ける(自動では削除されることがない)こと

RDBではその目的に応じて、古いデータを自動的に削除したり、キャッシュしたり、というのが一般的ですが、データウェアハウスサービスはデータの蓄積が目的のため、全てのデータを保持し続けます。BigQueryも例に漏れず、あらゆるデータソースから収集してきたデータを蓄積し、必要に応じてデータに処理をする事を目的としたサービスです。

また、BigQueryは蓄積したデータに対して縦方向に向かって処理をしていく「列指向」という概念のもと設計されており、通常のシステム(業務システムやアプリケーションをイメージください)で利用されるようなRDB、あるいは競合他社クラウドのデータウェアハウスサービスと比較しても、データに対して非常に高速な処理を実現しています。

BigQueryも先にご紹介したCloud Functionsと同じく従量課金制のサービスです。目的に応じてデータの処理内容が多くも少なくも変化する「データ分析」という領域に関しては、この従量課金制がよくマッチしており、他のクラウドサービスのデータウェアハウスと比べても、利用量に対して料金が安くなりやすいのも大きな特徴です。

Pub/Sub および Cloud Scheduler のサービス概要

Cloud Pub/Sub は、GCPの非同期メッセージサービスです。GCPの各サービスを組み合わせてシステムを構築する際に、各サービス間でメッセージの伝達を担う役割を持っています。主なユースケースとしてリアルタイムでのデータストリーミングによく用いられるサービスですが、Cloud Functionsのご紹介部分でも述べた通り、Cloud Functionsの起動トリガーとして利用することができます。

また、Cloud Schedulerとは、GCP内でのバッチ処理等を一元管理できる、スケジュール管理ツールです。予め決められた時間に、定期的にPub/Subにメッセージを飛ばす、といった動作を実現することができます。

本稿でご紹介する構成では、上記の2つを組み合わせ、Cloud Functions関数の起動トリガーとして利用しています。

データポータル のサービス概要

Google データポータルは、Googleが提供する基本無料のBIツールです。本稿で併せて紹介したBigQueryを始め、GoogleアナリティクスやGoogle広告などのデータも簡単に接続し、グラフや表の形で可視化することができます。本構成では使用していませんが、データポータルにもデータを統合する機能が存在し、テーブル結合に近い操作をGUI上で簡単に実施することができます。スケジュール管理を含めたメール配信機能や、レポート上のグラフや表を直接スプレッドシートにエクスポートする機能もあるため、可視化・分析したデータを他のチームや必要なメンバーに簡単に共有することができるサービスとなっています。

STEP1: Cloud Functionsを利用したデータの収集

ここからは、これまでご紹介してきましたサービスを組み合わせ、実際にSNSからデータを取得し、SNSデータ分析基盤を構築する方法を解説します。

まずはじめにSTEP1として、Cloud Functions上にPython等のプログラム言語を使い、各SNSごとに用意されたAPIを利用し、投稿されたデータを取得する関数(アプリ)を実装します。

APIの種類によっては、Google Cloud とは別に、予めSNS側でAPI利用の申請が必要なものも存在します。また、APIごとに例えば下記のような制限が存在するため、予め要件に適した実装ができるかどうか(欲しい・見たいデータが取得できるかどうか)を調査・確認した上で、目的のSNSのAPIを利用することをオススメします。

  • 件数制限
    • 1回の取得、もしくは1日の取得で何件の投稿を取得できるか
  • 取得期限
    • SNSにより、APIで取得できるデータは何日前まで遡れるか、が予め決まっています。

STEP2: Natural Language APIを利用したデータの加工

次にSTEP2として、STEP1で取得してきた投稿データに、Natural Language APIの機能を利用してデータ加工をします。

先にもご説明した通り、Natural Langaue APIには複数の分析機能が存在します。今回の実装では、そのうち感情分析・構文解析の機能をAPIとして呼び出し、取得したデータに対してCloud Functionsの関数の中で実行します。

より具体的には、取得した投稿データに対して下記のような結果が得られます。

  • 感情分析
    • 文章全体の感情を+1.0~-1.0の範囲で数値化します。
    • 数値が正ならポジティブ、負ならネガティブな感情を意味します。
  • 構文解析
    • 文章を品詞ごとに分解します。(形態素解析)
    • ワード検索用に、名詞、形容詞を抽出しています。

STEP3: データポータルを利用した可視化・分析

ここまでのステップで、SNSに投稿されたデータを目的のデータ分析に合わせた形式に処理することができました。最後にデータポータルとBigQueryとを接続し、例として下記のようなレポーティング・データ分析を実施することが可能です。

  • 商品名で投稿を検索し、良い口コミ・悪い口コミのどちらが多いのかを分析する
    • ECサイト等のレビューよりも、より生の声に近いデータを分析できます。
    • ユーザーの感情を数値化して可視化できます。
  • 感情分析の数値を利用し、投稿から製品の評判を調査する。
    • 故障などネガティブな投稿から、製品の不具合を早期に発見できます。
    • ポジティブな投稿から、ユーザーが気に入っているポイントを発見できます。
  • 構文解析の結果を利用し、商品の印象を調査する。
    • 特定の商品名と一緒にどのようなワードが投稿されているかを調べ、ユーザーの商品に対する印象を言語化できます。

まとめ

本稿でご紹介しました様に、GCPにはデータ分析基盤を構築するための様々なサービスが存在し、それらを組み合わせることで、SNS分析のようなニーズの高いデータ分析を実現できます。しかしながら、取得したデータの扱いがわからない、有用な結果が得られないなど、データ分析基盤の構築を進めて頂く上では、陥りがちないくつかのハードルが存在します。

DSKでは、企業が最も効率的に、素早く経営データをビジネスに活かせる様、データ分析基盤構築サービスを実施しています。

データ分析基盤構築サービスでは、弊社の誇るデータサイエンティスト・データエンジニア達がデータ分析における課題の設定、計画、データ収集、データの加工、集計、可視化まで一貫してサポート致します。

データ分析基盤のご導入をご検討の方は、無料相談を受け付けておりますので、是非一度DSKまでお問い合わせ下さい。

GCP 技術コンサルティング

RELATED POST関連記事


RECENT POST「Google Cloud(GCP)」の最新記事


Google Cloud(GCP)

BigQueryの外部データソース機能を活用したデータ分析基盤の構築方法をご紹介!

Google Cloud(GCP)

今話題のデータレイクとは?構築方法とDWHの違いを解説

Google Cloud(GCP)

データパイプラインを構築してデータ分析の自動化や効率化を実現

Google Cloud(GCP)

データ分析基盤とは?必要性や構成要素を解説!

BigQueryとデータポータルで構築するSNS分析環境の構築方法をご紹介!