🛤️

株式会社イノベーションのデータ基盤アーキテクチャ

に公開

1. はじめに

この記事では、私たち株式会社イノベーションが構築・運用しているデータ基盤のアーキテクチャについて、設計の背景や意図、そして実際の運用で工夫している点をご紹介します。

2. アーキテクチャ設計の背景

  • 複数のプロダクトを展開しており、事業横断でのデータ活用が必要
  • 「属人化せずに、安定した運用ができる基盤」を目指す必要がある
  • Salesforceや広告媒体、プロダクトDBなど多様なソースからのデータ連携の必要がある
  • 分析だけでなく、プロダクト改善や営業施策にもつながる「信頼できる一元データ」の整備が急務

3. アーキテクチャ全体像と目的

この構成は、以下のような目的を持って設計されています。

3.1 Big Queryを採用した理由

スケーラブルでサーバーレス、クエリ性能も高いため、データ基盤の中心にBigQueryを選定しました。

  • bq load を使用した理由
    • CSV/スプレッドシートなど、多様なデータソースからの軽量なロードに適している
  • 3層構造を採用した理由
    • データレイク(stg)、データウェアハウス(dwh)、データマート(dm)のレイヤー分けにより、変換ロジックの内容の分離や再利用性、デバッグ性を高められる
    • データレイクの導入により、元データの保持が可能になり、過去データとの比較や変化の分析が容易
  • Dataform 採用の理由
    • SQL 基本でロジックを管理しつつ Git 管理により変更履歴の追跡、コードレビューが可能
    • レイヤー決めや命名ルールを通じた協業により属人化を防ぐ
    • 自動リネージ生成により、データの統合管理も効率化

3.2 Composer を使用している理由

  • Airflow 基盤であり、スケジュール管理や再起動性が確保できる
  • フルマネージドなため、インフラやパッチ管理などの負担が少ない
  • GCS, BigQuery, Dataform などとの連携性が高い

3.3 GCP関連のIaC化

  • Terraform を利用して、利用するアカウントやサービスの安定配置を行っている
  • GCPに対する設定を可視化し、レビューの策定が可能

3.4 データ連携の標準化と非エンジニア化

  • Autoro や Composer (Airflow) を使用して、全てのデータ連携を実行
  • Google Drive や スプレッドシート などの非実装的な連携元についても、定型化フローを立てて定期実行を可能に

4. 実際に運用してみての気づき・工夫

日々の運用を通じて見えてきた改善点や、継続的に工夫しているポイントを以下にまとめます。

  • テーブルのスキーマ変更への対応

    • schema drift (小さなカラム追加/削除)を見逃さないよう、schema check をロジック化
  • データカタログの作成

    • IF定義書を可視化することで、内部データの利用効率化
    • アナリストが必要なスキーマを自動で引ける環境を構築
  • コスト監視の実施

    利用実態の可視化を目的に、事業部単位でのモニタリングを実施

    • プロジェクトやラベル単位でのコスト集計を行い、部門ごとの利用量を定期レビュー
  • Autoro 活用による、人を含んだ自動化

    • すべてを完全自動化できない場合に、人が関与するステップを少なくして定型化
  • Airflow 前処理の工夫

    • スプレッドシート連携におけるエンコード変換/フォーマット乱れを補正
  • 命名親和性やレイヤー分けの統一

    • Dataform での命名親和性やレイヤー分けをチーム内で統一することで、開発の属人化を防止

5. 今後の展望

今後さらにデータ基盤を活用しやすくするために、以下のような強化施策を検討しています。

  • ML・分析基盤の強化
  • よりリアルタイム性の高いデータ連携の仕組みを検討(Cloud Run Jobs など)
  • データカタログやリネージの可視化など、「使いやすい基盤」の方向へ強化
  • プロダクトや営業チームとの共創による、さらなるデータ活用の文化づくり

6. おわりに

私たちのデータ基盤はまだ成長途中ですが、「使われること」を第一に考えた設計と運用を意識しています。
この記事が、これからデータ基盤を構築される方や、運用中のチームの参考になれば幸いです。

株式会社イノベーション Tech Blog

Discussion