SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers Summit 2023 KANSAI セッションレポート(AD)

ヤフーに学ぶ! データ活用の流れやデータ可視化の開発コストを下げるコツとは?

【Session3】ヤフーで取り組むデータ可視化の流れ(FaaSで小さく始めるデータ準備から、Nuxtでのツール開発まで)

  • このエントリーをはてなブックマークに追加

 日本最大級のポータルサイト「Yahoo! JAPAN」を運営し、広告事業やeコマース事業、会員サービス事業などを展開しているヤフー。それらのサービスで蓄積したビッグデータを社内外のアナリストがサービス横断で分析できるよう「ヤフー・データソリューション」を提供している。その中には「DS.INSIGHT」と「DS.GALLERY」というデータ可視化サービスがある。この2つのサービスの開発に携わったヤフー 大阪オフィス所属 データソリューション事業の猪目美紗氏が同サービスの概要とデータ活用の流れ、データ可視化の開発運用コストを下げるコツなどについて解説した。

  • このエントリーをはてなブックマークに追加

記事の情報は登壇当時のものになります。

データを可視化するDS.INSIGHT・DS.GALLERY、具体的な使い方

 ヤフーが展開するヤフー・データソリューションとは、ヤフーのさまざまなサービスで取得・蓄積したビッグデータを分析できるサービスである。その中には可視化までしてくれるサービスがある。それが「DS.INSIGHT」と「DS.GALLERY」である。

 「DS.INSIGHT」はヤフーのビッグデータを分析できるデスクリサーチツールで、「企業や教育機関に提供している」と猪目氏は説明する。一方の「DS.GALLERY」は、会員登録が不要で、データ可視化コンテンツを一般向けに提供しているサービスである。

ヤフー株式会社 データソリューション事業 エンジニア 猪目美紗氏
ヤフー株式会社 データソリューション事業 エンジニア 猪目美紗氏

 具体的にどんなデータが可視化されるのか。ここで猪目氏はまず、DS.INSIGHTのデモを実施。基本画面で検索窓にキーワードを入力すると、そのワードと一緒に検索されたキーワード(共起キーワード)がマップ形式で表示されるのだ。それらのキーワードについて性別や地域別割合という切り口でも見ることができる。

 地域別の面白い事例として、「豚まん」と「肉まん」と言うキーワードを使って分析の例を紹介。肉まんは関東、豚まんは関西でより多く検索されていることがはっきりと日本地図に示された。そのほかにも検索数の推移グラフなども用意されており、例えば先の「肉まん」や「豚まん」は、「冬になると上昇するワード」と猪目氏は話す。

 DS.GALLERYでは、最近急上昇しているトレンドワードをチェックできる。それらのトレンドワードの性別や年代別の割合も表示。カテゴリーごとのランキングも見ることができる。「毎週更新。カテゴリー30種の中で3つのカテゴリーをピックアップしています」と猪目氏。すべてのカテゴリーを見たい場合は、DS.INSIGHTへの登録が必要だ。

 このようなデータ活用の仕組みをヤフーではどう作ったのか。データはユーザーのアクションから生まれる。ページの閲覧やリンククリック、検索、購入などのユーザーのアクションがログとして記録され、ロギングAPIによってデータレイクに送られる。データレイクとは「ヤフーの多種多様かつ膨大なデータをまとめて保管しておくストレージ。ヤフーではApache Hadoopを使用している」と猪目氏は説明する。

 アナリストはデータレイクのデータを活用することもできるが、ヤフーではデータをより活用しやすく整理した、データハウスやデータマートも用意。データソリューションでは分析用にTeradata、可視化ツール用にオブジェクトストレージ、Apache Cassandraなどを使用している。

 可視化ツールとは、データを理解しやすいようにグラフ化やダッシュボード化をするためのツール。ヤフーが提供しているのが、DS.INSIGHTやDS.GALLERYである。アナリストはこれらの可視化ツールを使って分析をすることになるが、ヤフーでは可視化ツールを社内外のアナリストに提供している。またアナリストがデータベースから直接データを取得して分析する場合は、「Tableauがよく使われている」と猪目氏は語る。

DS.INSIGHTとDS.GALLERYの画面
DS.INSIGHTとDS.GALLERYの画面

3パターンある可視化ツールに至るデータの流れ

 このようにヤフー・データソリューションでは、DS.INSIGHT、DS.GALLERY、ユーザーによる可視化の3パターンの可視化ツールに至るデータの流れを用意している。DS.INSIGHTは、Nuxtで作られた動的Webアプリケーションなので、BFF(Backends For Frontends)でデータ取得APIを叩く構成になっている。データ可視化には主にHighchartsというグラフを簡単に記述できるJavaScriptのライブラリを使っている。「開発自体はTypeScriptで行っています」(猪目氏)

 次のDS.GALLERYは、FaaS(Function as a Service)で集計プログラムを定期実行している。DS.GALLERYは週1回と月1回の更新なので、それに合わせてこのプログラムを更新する。出力データはCMSに配置し、サイトから読み込む構成になっている。この仕組みの良い点は、データをあらかじめ用意しているので、シンプルな構成になっていること。そしてサーバーのメンテナンスも不要なことである。

 では、具体的にDS.INSIGHTのシステム構成はどのようになっているのか。DS.INSIGHTはユーザーの興味関心を分析する機能、位置情報に関する分析をする機能、世の中のトレンドを分析する機能など、さまざまな機能が提供されている。各機能は個別のNuxtプロジェクトで構成されており、各BFFが裏側にあるAPI群を叩くという形を取っている。「一言で言うと、DS.INSIGHTはNuxtプロジェクトの集合体」と猪目氏は言い切る。

 このように、機能ごとにリポジトリやメンバーも分かれている構成にするメリットは、フットワーク軽く新機能の追加や修正が可能になること。8月下旬に急上昇トピックやトレンドを可視化分析できる「DS.INSIGHT Trend」がリリースされた。もしDS.INSIGHTが巨大なホストプロジェクトにすべての機能が入り、そこでリポジトリをすべて管理している構成であれば、「このようにフットワーク軽くリリースできず、今も開発中だったかもしれない」と猪目氏は明かす。

 一方で、各機能を個別のNuxtプロジェクトとして開発するので、システム内で統一感がなくなるのでは」という懸念もある。それについて猪目氏は、「デザインシステムを用意することで、全プロジェクト一貫性のあるデザインを実現している」と言う。

DS.INSIGHTのシステム概要
DS.INSIGHTのシステム概要

データ可視化の開発運用コストを下げるためのポイント

 「次にデータ可視化の開発運用コストを下げるために、私が普段気をつけていることを話したい」と前置きし、猪目氏は開発運用コストを下げるためのポイントの解説へと移った。

 1つ目は、データ更新頻度の検討である。データ更新頻度が低ければ開発コストは小さくなり、高くなると、開発運用コストは大きくなる。例えばデータ更新が不要で、その場限りのスナップショットでOKな場合は、1回データをダウンロードして、その場限りの可視化だけで済む。だが週1回など定期的な更新、さらにリアルタイムな更新が必要になるなど、更新頻度が上がれば上がるほど、集計ミスの確率も上がる。その分、システム障害が発生する確率も上がる。「要件を満たす限りでデータ更新頻度を下げることを勧めます」と猪目氏は指摘する。

 また更新頻度だけではなく、更新タイミングにも気をつけたい。データ更新のタイミングは、データ集計の失敗が起こるタイミングでもあるからだ。「データ更新のタイミングは、できるだけユーザーに影響がない、かつ運用担当者が万一失敗してもすぐに対応できるタイミングを選ぶのが良いと思います」(猪目氏)

 2つ目は、使うデータ量の検討。使うデータ量が少なければ少ないほど、開発運用コストは小さくなり、多ければ多いほど開発運用コストは大きくなる。「DS.GALLERYのように、例えば少量のデータで簡易的な可視化であれば、決まったデータを読み込む静的Webサイトで十分かもしれません」(猪目氏)

 一方、DS.INSIGHTのように大量のデータから複雑な絞り込みや検索にも対応しなければならないような構成にするのであれば、裏でAPIリクエストを行う動的Webアプリケーションを開発することになる。「私は両方の開発に携わったことがあるが、作業はすごく大変になる。これもできるだけ要件を満たせる範囲で、可能なら静的Webサイトでいけるか考えてみてはどうか」と猪目氏は話す。

 データ量が少なければ可視化ツールにExcelを使うこともできる。一方、データ量が多くなると、TableauのようなBIツールが必要になり、利用料もかかる。またBIツールを活用すると、使える人も限られてくる。「できるだけ活用するデータ量も減らすことを考えるコトも必要だと思います」(猪目氏)

 3つ目は、データの見せ方。一般的なグラフで良ければ開発運用コストは小さくてすむが、ダッシュボード化するなど少しリッチに見せたい、今までにない可視化表現を創造したいと、より特殊な見せ方が求められるようになると開発運用コストも大きくなっていくからだ。「できるだけ一般的なグラフで表現することを検討することをお勧めします」(猪目氏)

 もう一つ、見せ方で大事になるのはユーザーに合わせた可視化表現をすること。DS.GALLERYは一般向けなので、楽しさ重視の見せ方となっており、DS.INSIGHTはデータ活用したい人向けなので、機能重視の見せ方となっている。

 またデータ可視化をする際に、忘れがちだが気をつけたいポイントがある。

 まずは、データの調達について。データの収集・加工から行うのは大変なので、「すぐに使えるデータやAPIがないか、社内外で探してみましょう」と猪目氏。次に、データ取得APIの利用料についても気をつけたい。従量課金制APIをライブ接続すると、利用料が高額になるからだ。「定期実行で節約することをお勧めします」(猪目氏)

 さらにDS.INSIGHTやDS.GALLERYのように社外公開する場合は、社外秘データが含まれていないかはもちろん、差別用語、アダルトワードなど公開NGワードが含まれていないかをチェックすることも重要になると猪目氏は言う。

 「データ可視化の実現方法は多種多様です。企画の段階から要件を絞り込んで、できるだけ小さく初めて見ることが大事だと思います」(猪目氏)

ユーザーに合わせた可視化表現の例
ユーザーに合わせた可視化表現の例

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加

提供:LINEヤフー株式会社

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/18383 2023/10/11 12:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング