オールアバウトTech Blog

株式会社オールアバウトのエンジニアブログです。

【ログ物語】第1章 ~ログ物語の始まり~

こんにちは!オールアバウトでデータエンジニアをしている@ondaljhです。

オールアバウトはコンテンツマーケティングプラットフォームPrimeAdというサービスを提供しています。 今回のブログでは本サービス運営上でのログにまつわるお話を4回の連載企画でお届けします。

前提

本題に入る前に、今回の連載記事はADNWの中でも、効果測定のためのログやデータの集計に関する内容がメインになります。まずはどのような目的で、どのような方を対象に書いていくのかを明記したいと思います。

連載記事の目的

データエンジニアってどんなことやってるの?と思ってる方々に、実務者が今までの経験に基づいて説明することで、データエンジニアの業務について少しでも理解していただくことを目的としています。 一言でデータエンジニアといっても、ビジネス毎に扱ってるアーキテクチャやデータは異なるため、細かいところは現場毎で異なりますが、データパイプラインを構築する上での基本的な概念はそれほど変わらないと思うので、ADNWのデータエンジニアとして書いていきます。また、集計データはADNWの機械学習にも使われていますが、今回の連載では割愛させていただきます。

閲覧してほしい対象読者

  • データエンジニアって、何やってる人?と思ったことがある方
  • データパイプラインについて興味ある方
  • ADNWのログ・集計について興味ある方

持ってたほうがいい知識

  • ADNWの基本知識
  • RDBMSの基本知識
  • SQLの基本知識

上記知識がなくても読むには問題ないと思いますが、専門用語などが出てくるかと思いますので、専門用語の説明がない場合にはご了承ください。

全体構成

第1章.ログ物語の始まり

  • 1.PrimeAdでのデータパイプラインの概要
  • 2.ログのライフサイクル
  • 3.ログの種類

第2章.ログ/収集の仲間

  • 1.ログ収集
  • 2.業務データ

第3章.ログ/二つの塔

  • 1.正規化
  • 2.集計

第4章.ログ/データの帰還

  • 1.データ可視化
  • 2.レポートツールへのデータ連携
  • 3.データマート

これから「第1章.ログ物語の始まり」が始まります!

第1章.ログ物語の始まり

1.PrimeAdでのデータパイプラインの概要

PrimeAdとは

オールアバウトが提供しているコンテンツマーケティングプラットフォームで、約100のメディアと提携した広告配信からレポーティングまでをサービスしているプラットフォームです。 詳細はPrimeAdを参照ください!

データパイプライン

一般的にデータパイプラインとは、データ分析基盤、また機械学習基盤にとって、要望を満たすデータを収集、整形、準備、提供する一連のプロセスを指します。PrimeAdでのデータパイプラインも似たようなもので、PrimeAdでのADNWから発生するログの収集からデータの正規化、集計、可視化までがパイプラインによってつながっています。

2.ログのライフサイクル

PrimeAdでのライフサイクルを図式化すると下記のようになります。

f:id:allabout-techblog:20200225114059p:plain
ログのライフサイクル

一見するととても複雑に見えるかもしれません。 ですが、ところどころ切り取ってみれば難しい話ではないので、一つ一つ説明していきます。 ※各プロセスの詳細は第2回以降からになりますので、今回は概略だけ書かせていただきます。

ログの誕生

最初の方にも書いてありますが、ここで扱ってるログはあくまでも「ADNWでのログ」となります。 ご存じの方も多いかと思いますが、ログにはいろんな種類があり、種類ごとに生成されるタイミングが異なります。 基本的にはビーコンとして、ブラウザ上で発生するアクションデータがログとして生まれます。

例えば下記のようなものです。
PV(Page View) : ブラウザであるページが表示されたタイミング
Imp(Impression) : ブラウザであるページが表示される際に、ADNW等を経由して広告が表示されたタイミング
Click : ブラウザであるページからイメージリンクやテキストリンク等がクリックされたタイミング

ログの収集

f:id:allabout-techblog:20200218110929p:plain
ログの収集

PrimeAdではログ収集の際に、fluentdを使っています。各ウェブサーバーへアクセスが発生するたびに、アクセスログをポーリングしていたfluentdが検知し、ログ転送サーバーへ転送します。ログ転送サーバーはさらにログをログ集約・フィルタサーバーに転送し、ログ集約・フィルタサーバーはそのログをデータウェアハウス(以下、DWH)の一種であるTreasureData(以下、TD)へ転送します。 この辺の詳細は第2回で書いていきます。

ログの正規化と集計

f:id:allabout-techblog:20200117190002p:plain
ログの正規化と集計

正規化とは

データ等々を一定のルールに基づいて変形し、利用しやすくすること。 非常に多くの分野で使われている言葉で、分野によって意味も大きく異なります。 ※出典 Wikipedia

例えば、あるウェブページに対して、普段はURLにトレイリングスラッシュがついてるが、何らかの理由でURLにトレイリングスラッシュがなかった場合、トレイリングスラッシュを付ける等を指します。
正規化前のURL : https://allabout.co.jp/gm/gc/475094
正規化後のURL : https://allabout.co.jp/gm/gc/475094/

これにより、正規化前のログでは下記のURLは別々のものとして扱われていましたが、正規化後のログでは同じURLとして扱うことができるようになります。

https://allabout.co.jp/gm/gc/475094/
https://allabout.co.jp/gm/gc/475094

集計

正規化されたデータをベースに様々な切り口で数値の合計値をMySQLへ格納しています。 ここで言ってる切り口は、「ディメンション」を指してます。また、合計値は「指標」を指してます。 ディメンションと指標について、グーグルアナリティクスではこのような説明をしています。

  • ディメンション : データの属性です。たとえば、ディメンション「市区町村」はセッションの性質を表し、「横浜」、「川崎」などセッションが発生した市区町村を指定します。ディメンション「ページ」は、閲覧されたページの URL を表します。
  • 指標 : データを定量化したものです。指標「セッション」はセッションの合計数です。指標「ページ/セッション」は、セッションあたりの平均閲覧ページ数です。

PrimeAdではADNWの効果測定として様々なディメンションで各種データを集計しています。

正規化と集計の詳細は第3回で書いていきます。

集計データの活用

f:id:allabout-techblog:20200225114131p:plain
集計データの活用

集計処理で個別のログではなくなったデータを活用する段階です。 ADNWの効果測定として集計されたデータは直接BIツールで参照されたり、PrimeAdのウェブレポートとして活用されるため、関連システムへ連携されたりします。 この辺の詳細は第4回で書いていきます。

ここまでがPrimeAdでのログのライフサイクルになります。

3.ログの種類

第1回の最後として、PrimeAdのADNWとしてのログの種類を簡単に紹介します。

種類 概要
広告リクエス ユーザーがサイトへアクセスし、ADNWが呼ばれたことの情報を持つログ
広告インプレッション 実際に表示された広告の情報を持つログ
広告クリック ユーザーがクリックした広告の情報を持つログ
広告コンテンツPV 実際に表示された広告コンテンツ記事の情報を持つログ
読了率 ユーザーが広告コンテンツページをどこまで読んだかの情報を持つログ
滞在時間 ユーザーが広告コンテンツページへ滞在した時間の情報を持つログ

各ログの詳細情報をここに記載するのはできませんが、上記以外にも色々の種類のログを収集しています。 ※PV、CV等のADNW用語については割愛させていただきます。

まとめ

連載の第1回として、PrimeAdでのデータパイプライン、ADNW上でのログのライフサイクル、ログの種類などを簡略に紹介させていただきました。次回は集計で使われる業務データについて、また、ログ収集についてもう少し具体的に書いていきたいと思います。