PIXIV MEETUP 2023の発表資料です。
https://conference.pixiv.co.jp/2023/meetup#main-session
pixiv Inc.ピクシブのデータインフラと組織構造@kashira
View Slide
ProfilekashiraCTO室プラットフォーム開発部エンジニアデータインフラの整備や、データマネジメントを担当
このプレゼンで話すこと● ピクシブのデータインフラ● データ利活用の組織構造● データインフラの将来の展望
データインフラ
プロダクト数が多い!2023年8月31日時点https://www.pixiv.co.jp/service/約330名(正社員数)で16プロダクトを運営している全員が開発する訳ではないが、単純計算で1プロダクトあたり約20人で運営
全社共通のデータインフラドメインコーポレートインフラマーケティングデータを1つのデータインフラに集約
BigQueryの利用状況● データ量: 約7.8PiB● データアップロード量/日: 約6.9TiB/日● テーブル数: 約180,000テーブル● ジョブ数/日: 約52,000件/日※2023年9月時点のデータ
Lookerの利用状況● 月間利用者数(MAU): 248人● アクティブ率(MAU/正社員数): 74%● モデル数: 1522個● ダッシュボード数: 1368個● スケジュール数: 220個※2023年8月時点のデータ
全社のデータインフラ
データインフラの全体像
全社のデータ利活用を支えるデータインフラDBデータexport分析loadextractTransform※機械学習などの特殊な要件は別で基盤で処理※全社的によく利用されるものをピックアップ
データ基盤チームの仕事
BigQueryの管理● ストレージの管理・モニタリング● スロット(≒ 仮想CPU) 周りの管理・モニタリング● 機密情報周りの管理・モニタリング● 権限のポリシー設計● コスト管理
Looker● コスト管理● CI/CDの管理● インスタンスとBigQueryの接続周りの管理
Airflow + Embulk(bq-batch)● Airflow管理● テンプレートの作成● 使い方のドキュメントを作成● CI/CDの管理● ライブラリの更新
データ基盤チームはデータを管理していない
データ整備に必要なインフラを管理
じゃあ、誰がデータを管理しているの?
データ利活用の組織構造
データ基盤ドメインコーポレートインフラマーケティングよくある組織構造横断組織: データ分析チーム・データエンジニアリングチーム
データ基盤ドメインコーポレートインフラマーケティング中央のデータ組織がデータ利活用の主役横断組織: データ分析・データエンジニアリングチーム主役
データ組織が主役の場合ドメインチーム(分析の依頼人)分析チームデータ整備チーム分析依頼データ連携依頼データ加工データ分析データ仕様の問い合わせ
データ組織中心の体制はピクシブには合わない
なぜか?
(再掲) 社員に対してプロダクト数が多い!2023年8月31日時点https://www.pixiv.co.jp/service/約330名(正社員数)で16プロダクトを運営している= 1プロダクトあたり約20人で運営
プロダクトの数が多い● データ分析はドメイン知識が最重要● 正社員が約330名に対して、プロダクトの数が16個○ 必要とするドメイン知識も様々○ イラスト、小説、EC、3D、BtoBなどなど● 中央の分析者のみで分析するのは難しい
もし、ピクシブのデータ利活用の主役が中央のデータ組織だったら
IFの世界● 利用者は簡単に分析結果が得られる● → でもデータ分析には時間がかかる● -> 分析依頼が多くなると返答が遅くなる● → 利用者体験が悪化、解決にはデータ人材が必要● -> でも人はそんなに取れない...● → 困った 😭
コミュニケーションがボトルネックドメインチーム(分析の依頼人)分析チームデータ整備チーム分析依頼データ連携依頼データ加工データ分析データ仕様の問い合わせ
じゃあ、どうしたのか?
ドメインチームを主役に
データ基盤ドメインコーポレートインフラマーケティングドメインチームがデータ利活用の主役横断組織主役
ピクシブではドメインチームが主役ドメインチームデータ分析データ加工データ連携データ生成全部やります!!
ドメインチームが主役だと● 伝言ゲームが少なく、分析のための準備時間が短い !!● ボトルネックが無くスケールしやすい● データの民主化を目指す
ただし、課題も沢山ある...
乗り越えるべき課題も沢山ある● データ利活用をするための認知負荷が高い● データ利活用の環境構築まで手が回らない● 作業者がデータの専門家ではない場合も多い● データガバナンスの統制が難しい
ドメインチームに丸投げすればいいわけではない
ドメインチームをサポートする体制が重要になる
ドメインチームをサポートする体制が重要ドメインチーム1 ドメインチーム2 ドメインチーム3全社プラットフォームノウハウの共有・共通ルールの作成のための定例データ利活用の推進・コンサル
ドメインチームのサポート体制
データ利活用の組織の登場人物● データエンジニアリング互助会● データ駆動推進室● データ基盤チーム3つのチーム・組織がドメインチームをサポート!
ピクシブのデータ組織構造
データエンジニアリング互助会の役割● 社内でデータ利活用に携わる仲間と知見を交換・集約できる場● データに興味がある人達で運営○ 体制図上のチームではない● ベストプラクティスを共有し、分析環境を健全に保つ● 互いに助け合う文化の醸成・維持も担うhttps://inside.pixiv.blog/2022/07/28/130000
データエンジニアリング互助会の内容● 9部署15人が良く参加するメンバー● 議題○ 更新されたドキュメントの確認○ 他部署や全社的なルールに関する討論○ 現在進行中の案件の共有
● データ利活用をするための認知負荷が高い● データ利活用の環境構築まで手が回らない● 作業者がデータの専門家ではない場合も多い● データガバナンスの統制が難しい乗り越えるべき課題対策
データ駆動推進室の役割● データドリブンな意思決定による業務の効率化を推進● ドメインチームが自走してデータ利活用するためのサポート● データインフラを整備しても使われない● ドキュメント整備や社内教育活動が必要
● データ利活用をするための認知負荷が高い● データ利活用の環境構築まで手が回らない● 作業者がデータの専門家ではない場合も多い● データガバナンスの統制が難しい乗り越えるべき課題対策対策
データ基盤チームの役割● データ利活用を自己完結できるデータインフラを提供● データ利活用のハードルをインフラ面から下げる● データマネジメント関連の作業も担当
結果どうだったか?
⭕ 上手くいった所● データの繋ぎこみ、分析がチーム内で素早く完結する● スケールしやすい● エンジニアの分析への関心度が高い● コスト最適化しやすい● インフラのナレッジが溜まりやすい
△ まだ対策が必要な所● データ品質管理が難しい● ナレッジの共有が難しい● ビジネス職にはハードルが高い● データ基盤チームがボトルネックになりやすい
データ品質管理が難しい● データ品質を保つのはそもそも大変● + データ利活用する人がデータの専門家でないことが多い● 啓蒙もベストプラクティスも工数も足りない
データ品質管理への対策● データオーナーを立てる● 全社的なデータ品質チェックの追加● データリネージの導入● (やりたい) データカタログのテンプレート整備● (やりたい) dbtでのテストの強制
ナレッジ共有が難しい● データ利活用する人が各部に分散している● 大抵一人で作業を進めるケースが多い● データエンジニアリング互助会の取り組みでは不十分● 特に基礎的な部分が足りていないケースが多い
ナレッジ共有への対策● データ基盤チーム・データ駆動推進室が旗振り役となる● 読書会を様々な部署を巻き込んで実行する● 今は以下の2つの読書会を開催している○ Fundamentals of Data Engineering○ LEAN ANALYTICS
ビジネス職にはハードルが高い● エンジニアであればドキュメントを見るだけ、データ利活用が出来るインフラを整備している● ビジネス職オンリーのチームは難しい● ビジネス職には必要なスキルの難易度が高い○ SQL、Git、Python
ハードルを下げるための対策● (やりたい) トレーニングの強化● (やりたい) データ連携を簡略化するツールの提供
データ基盤チームがボトルネック● データツールは進化が早い● ツール導入の遅れはデータ利活用の遅れに● でも全社共通インフラでは導入のコストが大きい
ボトルネックへの対策● データ基盤チームの責務を無闇に増やさない● 共通ルール・共通処理を無闇に増やさない● 移行作業ではドメインチームにも手伝ってもらう
データ基盤チームとしての将来の展望
データ基盤チームの将来の展望● データ整備のサイクルタイムを短く● 全社のデータ品質・メタデータの強化● データインフラをProduct化
データ整備のサイクルタイムを短く● データ整備にかける時間を短縮!● dbtとFivetranを絶賛導入検討中● 合わせてデータ品質の向上に着手Modern Data Stackの導入
データ品質・メタデータの強化● dbt移行に合わせてテスト・メタデータを強化● データカタログのテンプレートポリシーの策定● 全社的なデータ品質チェックの更なる追加
データインフラをProduct化● 定常的にフィードバックを受け取れる仕組みの整備● 社内に向けたマーケティング● KPIの策定● コスト最適化● 価値の可視化
まとめ
ドメインチームをサポートする体制が重要ドメインチーム1 ドメインチーム2 ドメインチーム3データ基盤チームデータエンジニアリング互助会データ駆動推進室
ご清聴ありがとうございました