Upgrade to Pro — share decks privately, control downloads, hide ads and more …

大規模のユーザー行動データの高速分析に特化した 分散OLAPデータベース「mila」

大規模のユーザー行動データの高速分析に特化した 分散OLAPデータベース「mila」

DEIM2026 発表のスライドです
https://pub.confit.atlas.jp/ja/event/deim2026

Avatar for Sota Sato

Sota Sato

March 03, 2026

Other Decks in Technology

Transcript

  1.   |  © PLAID, Inc. ⽬次 2 2 • 「mila」の概要と開発の背景 • 汎⽤DWH(BigQuery)

    で⽣じたオーバーヘッド • ユーザー⾏動分析におけるクエリの最適化 • ベンチマークでの他DBとの⽐較 • まとめと今後の展望
  2.   |  © PLAID, Inc. 分散 OLAP データベース 「mila」 4 4 プレイドで開発中の分析⽤データベース

    • OLAP(Online Analytical Processing) データベース ◦ ⼤量のデータを瞬時に集計‧解析することに特化 ◦ 例 - BigQuery, Snowflake, Redshift, Clickhouse, StarRocks, Druid 「mila」の特徴 • 同じユーザーのデータを必ず同じノードで処理する ◦ 分散システムで⽣じうるシャッフルと再計算を抑える • ユーザー⾏動データ分析⽤のProduct (KARTE)での分析クエリに特化
  3.   |  © PLAID, Inc. ユーザー⾏動分析におけるデータと分析の特徴 5 5 ユーザー⾏動データ分析のProduct (KARTE)の概要: ⾃社サイト上のカスタマーデータを収集し、データ分析を可能にする ユーザーリスト

    施策分析 * 他にもwebサイト⾃体を作る機能や、ユーザーの⾏動に応じたシナリオを設計するなどさまざま機能があります https://karte.io/ 例:
  4.   |  © PLAID, Inc. ユーザー⾏動分析におけるデータと分析の特徴 6 6 Write : ⼤量のユーザー軸のデータ (KARTE

    : 平均 40,000リクエスト/sec) 例 - ユーザーAがサイトをX秒⾒ている Read : ユーザー軸の複雑な分析 例 - 直近24時間を閲覧したユーザーで、来訪回数が5回以上のユーザー ユーザーの⾏動をトラッキング 分析 BigQuery
  5.   |  © PLAID, Inc. 分析におけるコストと実⾏時間の増加 8 8 データ量の増加(全体で8PB)にともない、データ分析パフォーマンスが劣化 既存のOLAP DBを検証するが、コスト‧パフォーマンス要件を満たさない 分析

    -> ユーザーの⾏動分析に特化したDBの内製を検討 BigQuery ユーザーの⾏動をトラッキング 分析に2~3⽇かかることも 年間の分析のコストが数億円を超える
  6.   |  © PLAID, Inc. データの分散処理 • BigQueryでは、同⼀ユーザーのデータであったとしても分散処理をする* ◦ データは分散ストレージ上に細かく分割されて配置され、各ワーカーにロードされる 分散処理によるコスト •

    ユーザ単位でデータをまとめる際に、ノード間でのデータの転送(シャッフル)が発⽣ • 中間結果を再計算するオーバーヘッドが⽣じる 分散処理によるシャッフルと再計算 10 10 * S. Melnik et al., "Dremel: Interactive Analysis of Web-Scale Datasets," VLDB 2010.
  7.   |  © PLAID, Inc. 「mila」のコンセプト:データ配置の局所化 12 12 Node Node Node Node

    Node Node mila BQ user A のデータ user B のデータ user C のデータ
  8.   |  © PLAID, Inc. 「mila」のコンセプト:データ配置の局所化 13 13 ユーザー主軸のデータ配置 • 「同⼀ユーザーのデータは、必ず同じ物理ノードに配置する」 •

    制約を与えることで、ユーザー軸の分析に特化 ボトルネックの解消 • ノード内で計算が完結するため、ボトルネックだったデータ転送が抑えられる。 ◦ 中間結果の再計算もしなくて良い • BigQueryと⽐べてユーザー軸での分析が⾼速に
  9.   |  © PLAID, Inc. 補⾜ 14 14 他のDBでもShardingを使ってデータを固めて配置できるのではないか? -> 他のDBでも可能だが、集約のプッシュダウンが効かず、  前述のデータ転送や再計算のオーバーヘッドが⽣じることがある

    ホットスポット問題は起こりえるか? -> 特定のユーザーだけデータが多くなる、または特定のユーザーへのクエリが集中する、と⾔った ことが起こりにくいため「mila」ではホットスポットについて考慮していない
  10.   |  © PLAID, Inc. • FUNNEL関数  <- 今回お話しするクエリ • COUNT(Distinct) <-

    今回お話しするクエリ • Window関数 • etc 対象のクエリ 17 17
  11.   |  © PLAID, Inc. データセット • REES46 eCommerce データセット ベンチマーク⽅法 •

    3回クエリを実⾏し最速のタイムを採⽤ 実⾏環境 • GCP(GKE)上で実⾏ • マシンファミリー:n2d-standard • Pod数:3台 ◦ CPU / MEM :6core / 24GB ベンチマークの設定 26 26