行動データ収集のデータベース選定を考えてみた

行動データとはユーザーの動きを数値化したデータを言います。 何時何分にログインしたか、ログイン後にどのような画面を閲覧したか、何秒ぐらいページに滞在したか、どのリンクを押したか、商品を購入したか、、、etcなどリストアップすればキリがないほどたくさんあります。 思いつく限りでざっと行動データをリストアップしてみました。 ECサイトやLPサイトをイメージして作成したので、一例としてとらえていただければと思います。

ユーザー行動データ

行動データは収集するだけではなくしっかりと分析することでソフトウェア改善や機能追加、施策立案に繋げられると思います。 ソフトウェア設計はどのレベルまで行動データを収集したいか、によって変わるのではないか、と考えています。 例えばページスクロールをしてトリガー地点を通過する度にデータ収集する、ようなリアルタイムに近い情報収集を実現したい場合は、素早いデータ書き込みが求められるため、DBはRDBよりもredisのようなインメモリーDBにして、随時書き込むような設計にした方が良いかなと考えています。redisはアクセス、書き込みが早いのでAIとかデータ分析の現場で使われているイメージです。 図でRDBの場合とredisの場合を比較してみます。 パターン1はよくある構成です。リアルタイム性の高いDB書き込みがなければRDBで良いのかなと思います。 一方でリアルタイム性も考慮して行動データを収集する場合はパターン2が良いのかなと考えています。ちなみに弊社でも自社サービスにはパターン2の方式を採用していてredisを使っています。

行動データをリアルタイムで収集する場合の配置図
ユーザー行動データ収集を最適化するにはDB選定や設計が大事になってきますのでとても奥が深いなぁと感じます。