Slide 1

Slide 1 text

CA DATA NIGHT #10 Databricks 導入から Genie 活用まで、全部やった話 〜少人数で立ち上げたデータ基盤が、ゲーム運営の『攻め』を支える武器になるまで〜 株式会社 GOODROID バックエンドエンジニアチーム 上妻 靖広

Slide 2

Slide 2 text

自己紹介 上妻 靖広 (こうづま やすひろ) 所属: バックエンドエンジニアチーム 職種: サーバサイドエンジニア 2014 サイバーエージェント入社 (アメーバ事業本部に所属) ソーシャルゲーム開発に従事 2017 アドテク本部(現、AI事業本部)に異動 LINEボット等の開発・運用に従事 2020 技術本部(現、グループ IT推進本部)に異動 決済基盤の開発・運用に従事 2023 GOODROID に異動 ネイティブアプリの開発経て、サーバサイド業務に従事 現在に至る

Slide 3

Slide 3 text

Part 1 : 以前の状況 データと人間、随所で発生していた『滞留』 ツールのサイロ化が生む、現場への負荷とコミュニケーション摩擦

Slide 4

Slide 4 text

以前の課題:サイロ化されたツールがもたらす「負」のループ 【作業の滞留】  手動集計のループ 生データ出力(CSV)  手動転記 スプレッドシート集計  関数・マクロ 予算策定・スペンド分析  【コミュニケーションの滞留】  データ抽出依頼  プランナーデータ抽出依頼  データ抽出依頼  コミュニケーションコスト増  エンジニア(作業中断 )  SQL 抽出実行  プランナーへ納品  ツールごとの「 データのサイロ化 」が、 人間の作業とコミュニケーションをせき止めていた

Slide 5

Slide 5 text

Part 2 : 基盤構築 やり直し力と実行スピードを追求した設計 不変ソースによるデータ再構築設計とスキーマ自動推論による高速化

Slide 6

Slide 6 text

グループ別アクセス制御と 5つのスキーマ分類 【Unity Catalogによる一元管理】 個人ごとではなく、「エンジニア」や「プランナー」といった、職能グループ単位 で、安全に開発環境と本番環 境カタログの参照権限をシンプルに一元制御してます 【5つの用途別スキーマ分類】  S3 ソース  log_action (行動ログ)  cache_ranking (ランキングキャッシュ )  RDBMS ソース  rdbms_master (最新マスター直参照 )  rdbms_status (Snapshot での履歴管理)  rdbms_history (日付差分ロード) データの「 性質と取得元 」に合わせて入り口を美しく整理する

Slide 7

Slide 7 text

不変のソースによるデータの再構築・リセット機能の担保 【再現性重視】 不変のソースから再生可能 バグ混入や仕様変更等、過去に遡ってデータを再構築したい事 態に対応するため、S3 上の生ログや RDBMS 等の過去ソース を加工せずに永続保持 万が一、不具合が発生した場合は、テーブルを初期化して、不 変ソースからデータを再流入させる冪等設計 【全データ完全再構築時間】 2, 3時間程度 初期フェーズでデータ不具合が発生した際も、 安全に全データを復旧した実績あり 普段は差分取り込みで高速ロード 障害時は数時間程度で全データ再構築を可能にする安全設計

Slide 8

Slide 8 text

AI アシスタントの自動スキーマ推論活用による開発高速化 【本番運用フェーズ(安定 ETL 実行)】  安定稼働を重視 • 確定スキーマで、データの特性に合わせて並列ロード • 余計な自動処理を排した、堅牢なパイプライン設計 • 運用の予測可能性を最大化 設計準備はAI自動推論で極限までスマートに 本番運用では確定したスキーマ情報で堅牢に 【開発フェーズ( AI 自動スキーマ推論)】 実績 手作業で 1時間近くかかるスクリプト作成が、 数分〜十数分程度に短縮  テンプレート  AIアシスタント  スクリプト生成

Slide 9

Slide 9 text

サイロ化の解消:データの取得元に引きずられない一元管理 【再現性重視】 不変のソースから再生可能 バグ混入や仕様変更等、過去に遡ってデータを再構築したい事 態に対応するため、S3上の生ログやRDBMS等の過去ソースを 加工せずに永続保持 万が一、不具合が発生した場合は、テーブルを初期化して、不 変ソースからデータを再流入させる冪等設計 【全データ完全再構築時間】 2, 3時間程度 初期フェーズでデータ不具合が発生した際も、 安全に全データを復旧した実績あり 【以前:ツール別の分断と不便】  データのサイロ化 • RDBMS は個別の BI ツール、行動ログは Athena で分析 • スキャンコストや速度面の課題が顕在化 • ツール分断による複数ソースの横断紐付けの困難化 【現在: Databricks一元統合の成果】  Databricks Workflowsで一元管理 S3 も RDBMS もすべてが同じ場所で綺麗に結合 普段は差分取り込みで高速ロード 障害時は数時間程度で全データ再構築を可能にする安全設計 毎日新規レコード 億単位 累計レコード 数百億規模

Slide 10

Slide 10 text

 データの信頼性 安全な再現設計 不変ソースの永続保護とスナップショット 履歴管理により、障害時も柔軟にデータ を再構築できる安心感を確立した  開発効率の向上 スピード感の向上 Unity Catalog によるカタログアクセスの 一元的な権限管理と、自動スキーマ推論 機能の活用により、定義作成工数を大 幅に削減した  サイロ化解消 ツール分断の撲滅 Athena 等の複数ツールのサイロ化、ク エリコスト、および速度への懸念をクリア し、膨大なデータを自由に紐付けられる ようになった 安全で高速に繋がるデータ分析基盤が整い、 ここから業務への活用が始まる! まとめ:誰もが迷わず、安全に使えるデータプラットフォーム

Slide 11

Slide 11 text

Part 3 : 改善効果 どのような改善を行えたのか? 業務自動化の『守り』からデータ駆動の『攻め』のゲーム運営へ

Slide 12

Slide 12 text

改善①:データ抽出依頼の解消と双方の負荷軽減 Before 中継コストの発生  プランナー  データ抽出依頼  エンジニア 作業を中断し SQL を組み立てる  生データの引き渡し  プランナー After セルフサービス抽出  プランナー  Genie スペースへ自然言語で直接アクセス 【生データの自律取得】 エンジニアは、過去のクエリ定義をインプットした「Genie ス ペース」をあらかじめ提供するだけで完結 エンジニアを介さないデータ抽出が、 双方の本来のフォーカス を引き出す

Slide 13

Slide 13 text

改善②:手動コピペから並列抽出へのシフト Before 手動コピペ集計に拘束  CSV エクスポート  複雑な関数を組んで手動コピペ集計  毎回数時間の拘束 After システムへの処理移譲  Genie へデータ抽出を依頼  処理をバックグラウンドで進行  時間の圧倒的な有効活用 プランナーは並行して別のクリエイティブな業務を進行する ことが可能になった 集計のための拘束時間を解消し、 並行して別の業務を進行できる環境 を作る

Slide 14

Slide 14 text

改善③:プランナーが自ら実行するレベルデザインの調整 日常的な自律的キャッチアップ  プロデューサー視点 : 新機能・イベント施策の効果や DAU推移を日常的に把握  プランナー視点 : レベルデザイン通りのプレイかを毎日定点チェック 分析敷居の圧倒的な低下  SQL 不要の対話型 IF: チャット形式で会話するだけで直感的にデータを出力  多角的な可視化 : マトリックス表示や相関関係を即座に生成  自律的な仮説検証サイクルの構築  データは待つものではなく 自ら引き出してゲームバランスを最適化するツール へ

Slide 15

Slide 15 text

改善④:Slack 用 Genie アプリによる『データ民主化』 日常コミュニケーションの中でのデータ活用  Web ブラウザを開き、 Databricks にログインして操作する手間の撲滅  Slack チャンネルのスレッドから問いかけるだけで完結 職能を超えたリアルタイムなチャットアプリ CS/開発担当 : 「ユーザ: xxxxx の昨日のログインログとアイテム取得履歴を 出して」  Genie App がデータをテーブル形式で即レス返却 エンジニア : 「エラーコード:xxxxx の発生頻度と、主な発生モジュールを分 析して」  Genie App が発生推移と上位集計テキストを即レス返却 Databricks にログインする手間を省き、 誰もがいつものチャットツールからデータへアクセスできる状態 を作る

Slide 16

Slide 16 text

まとめ:データ活用プロセスの自律化がもたらした価値 【プロセス自律化:中継コストの解消】  エンジニアを介さないセルフサービス エンジニアを介さず、必要なデータを自ら直接抽出可能 な環境を実現  Slack 連携によるデータの民主化 他職種へデータアクセスの裾野が広がり、自律して数字 を動かせる仕組みを構築 【本来業務への集中:時間の創出】  手動作業をシステムへ完全移譲 コピペ集計による拘束時間を排除。処理を自動化し、ミス も撲滅  クリエイティブ業務への集中 浮いた時間をレベルデザインチェックや不具合特定など の本来の職能に充当 人手によるデータの中継や手動コピペを排除し 全員が自身の本来の職能にフォーカスする

Slide 17

Slide 17 text

Part 4 : 今後の展望と全体のまとめ 更なるデータ統合の拡張、ガバナンス強化、飾らない自律的な進歩へ

Slide 18

Slide 18 text

今後の展望 【データ統合の拡張】 一元化の推進 Lakeflow Connect を活用した Google Workspace 連携 非構造化データやゲーム外分析までカタ ログへ統合拡張 【ガバナンスと展開】 資産化の設計 ノートブック/ダッシュボード等のスクリプト のコード管理 ブラックボックス化を軽減し、職能に応じた 安全なアクセス制御を展開 【エージェントの自律化】 知能の進化 仕様や文脈を完全学習 自然言語で即答する「スーパーバイザー エージェント」で高度な意思決定を支援 データソースを広げ、 ノウハウを資産化 し エージェントをインテリジェントに進化させる

Slide 19

Slide 19 text

【サイロ化の解消】 データの統合 散在していた各データソースを一元管理 SQL 一発でログ、マスター、ステータスを 自在に結合し、横断的なクロス分析を可 能に 【定常業務の自動化】 自律化 抽出依頼の中継プロセスや手動コピペ 集計を解消 欲しい人が Genie からデータを直接引き 出せるセルフサービスデータアクセスを 確立 全体のまとめ 【データ主導の意思決定】 攻めの運用 分析の敷居を劇的に下げ、プランナー自 らが高度なクロス分析を回し、レベルデ ザインなどの仮説検証を日々迅速に行う アグレッシブな環境へ 美しいデータプラットフォームは 最高のエンターテインメントを作る武器 になる

Slide 20

Slide 20 text

ご清聴ありがとうございました!  エンジニア募集中! GOODROIDでは、ゲーム事業から広告、EC事業など幅広いドメインで活躍できるエンジニアを募集していま す。 「おもしろくあれ」を理念に、裁量を持って世の中にたくさんのサービスを届けたい方をお待ちしております! 詳細はこちら: https://goodroid.co.jp/